Function at 0x443338
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x56c
mov eax, dword [0x5836e0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
push edi
mov dword [ebp - 0x568], eax
mov eax, dword [ebp + 0x10]
push 0x208
mov dword [ebp - 0x56c], eax
lea eax, [ebp - 0x410]
push ebx
push eax
mov dword [ebp - 0x540], ebx
call fcn.004f5a90
mov edi, 0x100
lea eax, [ebp - 0x104]
push edi
push ebx
push eax
call fcn.004f5a90
push edi
xor edi, edi
lea eax, [ebp - 0x510]
push edi
push eax
call fcn.004f5a90
push 0x104
lea eax, [ebp - 0x208]
push edi
push eax
call fcn.004f5a90
add esp, 0x30
or eax, 0xffffffff
mov dword [ebp - 0x548], eax
mov dword [ebp - 0x558], eax
mov dword [ebp - 0x544], eax
push edi
push edi
push 3
push edi
push 1
push SysReAllocString
push esi
mov dword [ebp - 0x564], eax
mov dword [ebp - 0x560], eax
mov dword [ebp - 0x55c], eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x4438f6
and dword [ebp - 0x53c], ebx
lea eax, [ebp - 0x53c]
push ebx
push eax
push 0xc
lea eax, [ebp - 0x528]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4438f6
cmp dword [ebp - 0x53c], 0xc
jne 0x4438f6
mov ax, word [ebp - 0x524]
movzx ecx, byte [ebp - 0x524]
shr ax, 8
shl cx, 8
or cx, ax
lea eax, [ebp - 0x528]
push 4
push str.OTTO
push eax
mov word [ebp - 0x524], cx
call fcn.004e1c8c
add esp, 0xc
test eax, eax
jne 0x4438f6
xor esi, esi
cmp ax, word [ebp - 0x524]
jae 0x4438f6
and dword [ebp - 0x53c], ebx
lea eax, [ebp - 0x53c]
push 0
push eax
push 0x10
lea eax, [ebp - 0x538]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4434bf
cmp dword [ebp - 0x53c], ebx
je 0x4434bf
push 4
lea eax, [ebp - 0x538]
push 0x533280
push eax
call fcn.004e1c8c
add esp, 0xc
test eax, eax
je 0x4434ce
inc esi
cmp si, word [ebp - 0x524]
jb 0x44347a
jmp 0x4438f6
mov ecx, dword [ebp - 0x52c]
mov ebx, ecx
movzx eax, cl
shl ax, 8
movzx edx, ax
movzx eax, cx
mov ecx, dword [ebp - 0x530]
shr eax, 8
or edx, eax
shr ebx, 0x10
shl edx, 8
movzx eax, bl
or edx, eax
mov eax, ebx
shr eax, 8
xor ebx, ebx
shl edx, 8
or edx, eax
movzx eax, cl
shl ax, 8
movzx esi, ax
mov dword [ebp - 0x52c], edx
mov edx, ecx
movzx eax, cx
shr eax, 8
or esi, eax
shr edx, 0x10
shl esi, 8
movzx eax, dl
or esi, eax
mov eax, edx
push ebx
shr eax, 8
shl esi, 8
or esi, eax
push ebx
push esi
push edi
mov dword [ebp - 0x530], esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x4438f6
push ebx
lea eax, [ebp - 0x53c]
mov dword [ebp - 0x53c], ebx
push eax
push 6
lea eax, [ebp - 0x550]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4438f6
cmp dword [ebp - 0x53c], ebx
je 0x4438f6
movzx edx, byte [ebp - 0x550]
mov ax, word [ebp - 0x550]
movzx ecx, byte [ebp - 0x54e]
shr ax, 8
shl dx, 8
or dx, ax
shl cx, 8
mov ax, word [ebp - 0x54e]
shr ax, 8
or cx, ax
mov word [ebp - 0x550], dx
mov ax, word [ebp - 0x54c]
movzx esi, cx
mov word [ebp - 0x54e], cx
movzx ecx, byte [ebp - 0x54c]
shl cx, 8
shr ax, 8
or cx, ax
mov word [ebp - 0x54c], cx
test dx, dx
jne 0x4438f6
test si, si
je 0x4438f6
xor eax, eax
mov dword [ebp - 0x554], ebx
cmp ax, si
jae 0x44372c
and dword [ebp - 0x53c], 0
lea eax, [ebp - 0x53c]
push 0
push eax
push 0xc
lea eax, [ebp - 0x51c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4436f7
cmp dword [ebp - 0x53c], 0
je 0x4436f7
mov ax, word [ebp - 0x516]
movzx edx, byte [ebp - 0x516]
movzx ecx, byte [ebp - 0x512]
shr ax, 8
shl dx, 8
or dx, ax
shl cx, 8
mov ax, word [ebp - 0x512]
shr ax, 8
or cx, ax
mov word [ebp - 0x516], dx
mov ax, word [ebp - 0x514]
movzx esi, cx
mov word [ebp - 0x512], cx
movzx ecx, byte [ebp - 0x514]
shr ax, 8
shl cx, 8
or cx, ax
movzx eax, dx
movzx ebx, cx
mov word [ebp - 0x514], cx
sub eax, 1
je 0x4436e5
sub eax, 1
je 0x4436cf
mov ecx, dword [ebp - 0x544]
dec eax
sub eax, 1
jne 0x4436dd
mov eax, esi
mov dword [ebp - 0x564], ebx
mov ebx, dword [ebp - 0x554]
mov dword [ebp - 0x548], eax
jmp 0x443703
mov ecx, esi
mov dword [ebp - 0x55c], ebx
mov dword [ebp - 0x544], ecx
mov ebx, dword [ebp - 0x554]
jmp 0x4436fd
mov dword [ebp - 0x560], ebx
mov ebx, dword [ebp - 0x554]
mov dword [ebp - 0x558], esi
mov ecx, dword [ebp - 0x544]
mov eax, dword [ebp - 0x548]
cmp dword [ebp - 0x558], 0xffffffff
je 0x443716
cmp ecx, 0xffffffff
je 0x443716
cmp eax, 0xffffffff
jne 0x44372c
movzx eax, word [ebp - 0x54e]
inc ebx
mov dword [ebp - 0x554], ebx
cmp ebx, eax
jl 0x443605
xor ebx, ebx
mov eax, ebx
sub eax, 0
je 0x443768
sub eax, 1
je 0x443751
mov eax, dword [ebp - 0x544]
cmp eax, 0xffffffff
je 0x44383c
mov esi, dword [ebp - 0x55c]
jmp 0x44377d
mov eax, dword [ebp - 0x558]
cmp eax, 0xffffffff
je 0x44383c
mov esi, dword [ebp - 0x560]
jmp 0x44377d
mov eax, dword [ebp - 0x548]
cmp eax, 0xffffffff
je 0x44383c
mov esi, dword [ebp - 0x564]
mov ecx, eax
movzx eax, word [ebp - 0x54c]
push 0
add eax, ecx
add eax, dword [ebp - 0x530]
push 0
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x443846
cmp esi, 0x104
mov eax, 0x103
push 0
cmovge esi, eax
and dword [ebp - 0x53c], 0
lea eax, [ebp - 0x53c]
push eax
push esi
lea eax, [ebp - 0x208]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x443846
cmp dword [ebp - 0x53c], esi
jne 0x443846
mov eax, ebx
sub eax, 0
je 0x443814
sub eax, 1
je 0x44380a
sub eax, 1
jne 0x44383c
push 0x7f
lea eax, [ebp - 0x510]
push eax
push esi
lea eax, [ebp - 0x208]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
jmp 0x44383c
push 0x7f
lea eax, [ebp - 0x104]
jmp 0x443820
mov eax, 0x103
push eax
lea eax, [ebp - 0x410]
push eax
push esi
lea eax, [ebp - 0x208]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor eax, eax
inc eax
mov dword [ebp - 0x540], eax
inc ebx
cmp ebx, 3
jl 0x44372e
mov ebx, dword [ebp - 0x540]
test ebx, ebx
je 0x4438f6
cmp word [ebp - 0x410], 0
jne 0x4438a7
lea eax, [ebp - 0x104]
mov esi, 0x104
push eax
push esi
lea eax, [ebp - 0x410]
push eax
call fcn.00401a0b
cmp word [ebp - 0x510], 0
je 0x4438a7
push 0x5225e4
push esi
lea eax, [ebp - 0x410]
push eax
call fcn.004019cd
lea eax, [ebp - 0x510]
push eax
push esi
lea eax, [ebp - 0x410]
push eax
call fcn.004019cd
xor eax, eax
mov word [ebp - 0x3d2], ax
mov word [ebp - 0xc6], ax
cmp word [ebp - 0x104], ax
je 0x4438d4
lea eax, [ebp - 0x104]
push eax
push 0x20
push dword [ebp - 0x568]
call fcn.00401a0b
cmp word [ebp - 0x410], 0
je 0x4438f4
lea eax, [ebp - 0x410]
push eax
push 0x20
push dword [ebp - 0x56c]
call fcn.00401a0b
jmp 0x4438f6
xor ebx, ebx
test edi, edi
je 0x443906
cmp edi, 0xffffffff
je 0x443906
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004f4166
leave
ret 0xc