Function at 0x435110
Capabilities:
Clear file content

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov dword [ebp - 4], esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], edi
mov edx, dword [esi + 0x40]
test edx, edx
mov ebx, dword [esi + 0x3c]
je 0x435130
sub ebx, edx
jmp 0x435135
mov edx, dword [esi + 0x38]
sub ebx, edx
lea edx, [ebx + 4]
cmp edx, dword [esi + 0xf4]
ja 0x435573
movsx edi, byte [esi + 0x166]
lea edx, [edi - 1]
cmp edx, 7
ja case.default.0x435157
jmp dword [edx*4 + 0x4ec110]
mov edx, dword [esi + 0x40]
test edx, edx
je 0x435359
mov byte [edx + ebx], 0xd
mov edx, dword [esi + 0x40]
mov byte [edx + ebx + 1], 0xa
add ebx, 2
jmp case.0x435157.5
mov edx, dword [esi + 0x40]
test edx, edx
je 0x43536d
mov byte [edx + ebx], 0xd
inc ebx
jmp case.0x435157.5
mov edx, dword [esi + 0x40]
test edx, edx
je 0x435377
mov byte [edx + ebx], 0xa
inc ebx
jmp case.0x435157.5
mov edi, dword [esi + 0x40]
test edi, edi
je 0x435381
mov edx, dword [esi + 0x3c]
sub edx, edi
add edx, 0xfffffffe
mov byte [edi], dl
mov edi, dword [esi + 0x40]
shr edx, 8
mov byte [edi + 1], dl
mov edx, ebx
and edx, 0x80000001
jge 0x4351d6
sub edx, 1
or edx, 0xfffffffe
inc edx
test edx, edx
je case.0x435157.5
mov edx, dword [esi + 0x40]
mov byte [edx + ebx], 0
inc ebx
jmp case.0x435157.5
cmp dword [esi + 0x144], 0xb
jne 0x435200
and edi, 0xfffffffe
cmp edi, 4
je 0x4353b8
mov edi, dword [esi + 0x40]
test edi, edi
je 0x4354a7
mov edx, dword [esi + 0x3c]
sub edx, edi
add edx, 0xfffffffc
mov dword [ebp - 0x10], edx
test byte [esi + 0x17d], 0x20
je 0x43524d
mov eax, edx
mov ecx, edx
shr eax, 0x18
mov byte [edi], al
mov edi, dword [esi + 0x40]
mov dword [ebp - 0x1c], eax
mov eax, edx
shr eax, 0x10
mov byte [edi + 1], al
mov edi, dword [esi + 0x40]
shr ecx, 8
mov dword [ebp - 0x18], eax
mov byte [edi + 2], cl
mov edi, dword [esi + 0x40]
mov dword [ebp - 0x14], ecx
mov byte [edi + 3], dl
jmp 0x43527a
movzx edx, byte [ebp - 0x10]
mov byte [edi], dl
mov edi, dword [esi + 0x40]
movzx eax, byte [ebp - 0xf]
movzx ecx, byte [ebp - 0xe]
mov byte [edi + 1], al
mov edi, dword [esi + 0x40]
mov dword [ebp - 0x14], eax
movzx eax, byte [ebp - 0xd]
mov byte [edi + 2], cl
mov edi, dword [esi + 0x40]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], eax
mov byte [edi + 3], al
test byte [esi + 0x17d], 0x20
je 0x4352a5
mov edi, dword [esi + 0x3c]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov byte [edi], al
mov edi, dword [esi + 0x3c]
mov eax, dword [ebp - 0x14]
mov byte [edi + 1], cl
mov edi, dword [esi + 0x3c]
mov byte [edi + 2], al
mov edi, dword [esi + 0x3c]
mov byte [edi + 3], dl
jmp 0x4352c5
mov edi, dword [esi + 0x3c]
mov byte [edi], dl
mov edi, dword [esi + 0x3c]
mov edx, dword [ebp - 0x14]
mov byte [edi + 1], dl
mov edi, dword [esi + 0x3c]
mov edx, dword [ebp - 0x18]
mov byte [edi + 2], dl
mov edi, dword [esi + 0x3c]
mov edx, dword [ebp - 0x1c]
mov byte [edi + 3], dl
add ebx, 4
jmp case.0x435157.5
mov edx, dword [esi + 0x100]
cmp ebx, edx
jae case.0x435157.5
sub edx, ebx
push edx
push 0
push dword [esi + 0x3c]
call fcn.004cda30
add esp, 0xc
mov ebx, dword [esi + 0x100]
jmp case.0x435157.5
push 0x297
push str.for_put.c
push 2
push 8
call fcn.0040b430
add esp, 0x10
mov edx, dword [esi + 0x40]
test edx, edx
je 0x435562
mov eax, esi
mov ecx, ebx
call fcn.0043564c
and byte [esi + 0x17c], 0xbf
cmp eax, 0xffffffff
je 0x435544
test byte [esi + 0x17d], 8
je 0x43534a
push dword [esi + 0xec]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
je 0x43551f
and byte [esi + 0x17d], 0xf7
xor eax, eax
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x38]
mov byte [edx + ebx], 0xd
mov edi, dword [esi + 0x38]
mov byte [edi + ebx + 1], 0xa
add ebx, 2
jmp case.0x435157.5
mov edx, dword [esi + 0x38]
mov byte [edx + ebx], 0xd
inc ebx
jmp case.0x435157.5
mov edx, dword [esi + 0x38]
mov byte [edx + ebx], 0xa
inc ebx
jmp case.0x435157.5
mov edi, dword [esi + 0x38]
lea edx, [ebx - 2]
mov byte [edi], dl
mov edi, dword [esi + 0x38]
shr edx, 8
mov byte [edi + 1], dl
mov edx, ebx
and edx, 0x80000001
jge 0x4353a3
sub edx, 1
or edx, 0xfffffffe
inc edx
test edx, edx
je case.0x435157.5
mov edx, dword [esi + 0x38]
mov byte [edx + ebx], 0
inc ebx
jmp case.0x435157.5
mov edi, dword [esi + 0x40]
test edi, edi
je 0x4353c9
mov eax, dword [esi + 0x3c]
sub eax, edi
add eax, 0xfffffffc
jmp 0x4353cf
mov edi, dword [esi + 0x38]
lea eax, [ebx - 4]
movzx edx, byte [esi + 0x182]
test dl, 0x20
je 0x4353ed
and edx, 0xffffffdf
mov byte [esi + 0x182], dl
mov edx, eax
neg edx
mov dword [ebp - 0x1c], edx
jmp 0x4353f0
mov dword [ebp - 0x1c], eax
test byte [esi + 0x17d], 0x20
je 0x435418
lea ecx, [ebp - 0x19]
movzx edx, byte [ecx]
mov byte [edi], dl
movzx edx, byte [ebp - 0x1a]
mov byte [edi + 1], dl
movzx edx, byte [ebp - 0x1b]
mov byte [edi + 2], dl
movzx edx, byte [ebp - 0x1c]
mov byte [edi + 3], dl
jmp 0x435435
movzx edx, byte [ebp - 0x1c]
lea ecx, [ebp - 0x19]
mov byte [edi], dl
movzx edx, byte [ebp - 0x1b]
mov byte [edi + 1], dl
movzx edx, byte [ebp - 0x1a]
mov byte [edi + 2], dl
movzx edx, byte [ecx]
mov byte [edi + 3], dl
cmp dword [esi + 0x158], 0
je 0x435445
neg eax
mov dword [ebp - 0x1c], eax
jmp 0x435448
mov dword [ebp - 0x1c], eax
test byte [esi + 0x17d], 0x20
je 0x435479
mov edi, dword [esi + 0x3c]
movzx edx, byte [ecx]
mov byte [edi], dl
mov edi, dword [esi + 0x3c]
movzx edx, byte [ebp - 0x1a]
mov byte [edi + 1], dl
mov edi, dword [esi + 0x3c]
movzx edx, byte [ebp - 0x1b]
mov byte [edi + 2], dl
mov edi, dword [esi + 0x3c]
movzx edx, byte [ebp - 0x1c]
mov byte [edi + 3], dl
jmp 0x43549f
mov edi, dword [esi + 0x3c]
movzx edx, byte [ebp - 0x1c]
mov byte [edi], dl
mov edi, dword [esi + 0x3c]
movzx edx, byte [ebp - 0x1b]
mov byte [edi + 1], dl
mov edi, dword [esi + 0x3c]
movzx edx, byte [ebp - 0x1a]
mov byte [edi + 2], dl
mov edi, dword [esi + 0x3c]
movzx edx, byte [ecx]
mov byte [edi + 3], dl
add ebx, 4
jmp case.0x435157.5
test byte [esi + 0x17d], 0x20
lea edx, [ebx - 4]
mov dword [ebp - 0x10], edx
je 0x4354ea
mov edi, dword [esi + 0x38]
mov eax, edx
shr eax, 0x18
mov ecx, edx
shr ecx, 0x10
mov byte [edi], al
mov edi, dword [esi + 0x38]
mov dword [ebp - 0x1c], eax
mov eax, edx
shr eax, 8
mov byte [edi + 1], cl
mov edi, dword [esi + 0x38]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
mov byte [edi + 2], al
mov edi, dword [esi + 0x38]
mov byte [edi + 3], dl
jmp 0x43527a
mov edi, dword [esi + 0x38]
movzx edx, byte [ebp - 0x10]
movzx eax, byte [ebp - 0xf]
mov byte [edi], dl
mov edi, dword [esi + 0x38]
movzx ecx, byte [ebp - 0xe]
mov dword [ebp - 0x14], eax
mov byte [edi + 1], al
mov edi, dword [esi + 0x38]
movzx eax, byte [ebp - 0xd]
mov dword [ebp - 0x18], ecx
mov byte [edi + 2], cl
mov edi, dword [esi + 0x38]
mov dword [ebp - 0x1c], eax
mov byte [edi + 3], al
jmp 0x43527a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xf0], eax
mov eax, 0x26
and byte [esi + 0x17d], 0xf7
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xf0], eax
mov eax, 0x26
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov eax, esi
mov ecx, ebx
mov edx, dword [esi + 0x38]
call fcn.0043564c
jmp 0x435316
push 0x200
push esi
call fcn.00438e40
add esp, 8
test eax, eax
je 0x435144
push 4
push esi
call fcn.00438e40
add esp, 8
test eax, eax
je 0x435144
cmp ebx, dword [esi + 0xf4]
ja 0x4355b4
movsx edi, byte [esi + 0x166]
cmp edi, 1
je 0x43514b
mov edx, dword [esi + 0x18]
test edx, edx
je 0x43561a
test byte [edx + 0x44], 2
je 0x4355f0
mov ecx, 0x42
mov dword [edx + 0x38], ecx
mov edx, dword [esi + 0x18]
mov dword [edx + 0x3c], ecx
mov edx, dword [esi + 0x64]
test edx, edx
je 0x4355de
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x64], ecx
mov eax, 0x42
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov edx, 0x42
push edx
movzx ecx, byte [esi + 0x17c]
push edx
and ecx, 7
push ecx
push 0xffffffffffffffff
push esi
call fcn.0043da80
add esp, 0x14
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
push esi
mov edx, 0x42
push edx
push edx
push 1
call fcn.00409370
add esp, 0x10
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret