Function at 0x437e30
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x4c]
sub esp, 0x4c
push 0xffffffffffffffff
push 0x43c0b0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x70
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, dword [ebp + 0x54]
xor edi, edi
mov dword [ebp + 0x40], edi
mov byte [ebp + 0x4b], 0
mov dword [ebp - 4], edi
cmp dword [esi + 4], edi
jne 0x438159
push edi
push 0x8000080
push 3
push edi
push 1
push closesocket
mov eax, dword [esi + 8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
mov dword [ebp + 0x2c], ebx
cmp ebx, 0xffffffff
jne 0x437ea3
mov dword [ebp + 0x1c], edi
push 0x442648
lea ecx, [ebp + 0x1c]
push ecx
call fcn.0040c3d4
xor eax, eax
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], eax
mov word [ebp + 0x3c], ax
push edi
lea edx, [ebp + 0x44]
push edx
push 0xe
lea eax, [ebp + 0x30]
push eax
push ebx
mov edi, dword [sym.imp.KERNEL32.dll_ReadFile]
call edi
mov ecx, 0x4d42
cmp word [ebp + 0x30], cx
jne 0x438144
mov edx, 0x4444
cmp word [ebp + 0x36], dx
jne 0x438144
mov eax, 0x4646
cmp word [ebp + 0x38], ax
jne 0x438144
mov ecx, dword [ebp + 0x3a]
add ecx, 0xfffffff2
push ecx
call fcn.00409253
add esp, 4
mov dword [esi + 0xc], eax
test eax, eax
jne 0x437f1e
mov dword [ebp + 0xc], 2
push 0x442648
lea edx, [ebp + 0xc]
push edx
call fcn.0040c3d4
push 0
lea ecx, [ebp + 0x44]
push ecx
mov edx, dword [ebp + 0x3a]
add edx, 0xfffffff2
push edx
push eax
push ebx
call edi
mov eax, dword [ebp + 0x32]
sub eax, dword [ebp + 0x3a]
push eax
call fcn.00409253
add esp, 4
mov dword [esi + 0x10], eax
push 0
lea ecx, [ebp + 0x44]
push ecx
mov edx, dword [ebp + 0x32]
sub edx, dword [ebp + 0x3a]
push edx
push eax
push ebx
call edi
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
mov dword [esi + 0xc88], ecx
mov edx, dword [eax + 8]
mov dword [esi + 0xc8c], edx
push 0x6c
push 0
lea eax, [ebp - 0x7c]
push eax
call fcn.0040f8e0
add esp, 0xc
mov dword [ebp - 0x7c], 0x6c
mov dword [ebp - 0x78], 7
mov dword [ebp - 0x14], 0x40
mov ecx, dword [esi + 0xc88]
mov dword [ebp - 0x70], ecx
mov edx, dword [esi + 0xc8c]
mov dword [ebp - 0x74], edx
mov eax, dword [esi]
mov eax, dword [eax]
mov edx, dword [eax]
push 0
lea ecx, [esi + 4]
push ecx
lea ecx, [ebp - 0x7c]
push ecx
push eax
mov edx, dword [edx + 0x18]
call edx
test eax, eax
jns 0x437fcd
mov dword [ebp + 0x10], 5
push 0x442648
lea eax, [ebp + 0x10]
push eax
call fcn.0040c3d4
xor eax, eax
mov dword [ebp + 4], eax
mov dword [ebp], eax
mov eax, dword [esi + 4]
mov ecx, dword [eax]
lea edx, [ebp]
push edx
push 8
push eax
mov eax, dword [ecx + 0x74]
call eax
push 0
lea ecx, [ebp + 0x44]
push ecx
push 0x38
lea edx, [esi + 0x14]
push edx
push ebx
call edi
push 0
lea eax, [ebp + 0x44]
push eax
push 0xa80
lea ecx, [esi + 0x1cc]
push ecx
push ebx
call edi
push 0
lea edx, [ebp + 0x44]
push edx
push 0x3c
lea eax, [esi + 0xc4c]
push eax
push ebx
call edi
test eax, eax
jne 0x438035
mov dword [ebp + 0x28], 4
push 0x442648
lea ecx, [ebp + 0x28]
push ecx
call fcn.0040c3d4
cmp dword [ebp + 0x44], 0x3c
jae 0x438050
mov dword [ebp + 8], 4
push 0x442648
lea edx, [ebp + 8]
push edx
call fcn.0040c3d4
mov eax, dword [esi + 0xc88]
sar eax, 4
mov dword [esi + 0xc90], eax
mov ecx, dword [esi + 0xc8c]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [esi + 0xc94], ecx
push 0x200
push 0
lea edx, [esi + 0xc98]
push edx
call fcn.0040f8e0
push 0x180
push 0
lea eax, [esi + 0x4c]
push eax
call fcn.0040f8e0
push 0x80
push 0
lea ecx, [esi + 0x1c98]
push ecx
call fcn.0040f8e0
add esp, 0x24
mov eax, 0x20
mov dword [ebp + 0x24], eax
cmp eax, 0x100
jge 0x43815e
lea ecx, [eax - 0x20]
mov edx, eax
shl edx, 4
add edx, esi
mov edi, ecx
and edi, reloc.WS2_32.dll_ntohs
jns 0x4380e3
dec edi
or edi, 0xfffffff0
inc edi
imul edi, dword [esi + 0xc90]
mov dword [edx + 0xc98], edi
sar ecx, 4
imul ecx, dword [esi + 0xc94]
mov dword [edx + 0xc9c], ecx
lea ecx, [eax + eax*2]
lea ecx, [esi + ecx*4 + 0x50]
mov dword [ebp + 0x14], ecx
mov ecx, dword [ecx]
add ecx, edi
lea edi, [eax + 0xca]
add edi, edi
mov dword [esi + edi*8], ecx
mov ecx, dword [edx + 0xc9c]
add ecx, dword [esi + 0xc94]
mov dword [edx + 0xca4], ecx
lea edx, [eax + eax*2 + 0x15]
mov ecx, dword [esi + edx*4]
mov edx, dword [ebp + 0x14]
add ecx, dword [edx]
mov dword [esi + eax*4 + 0x1c98], ecx
inc eax
jmp 0x4380bc
mov dword [ebp + 0x20], 1
push 0x442648
lea eax, [ebp + 0x20]
push eax
call fcn.0040c3d4
mov ebx, dword [ebp + 0x2c]
jmp 0x438160
xor edi, edi
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x2098]
mov dword [eax + 0x2c], ecx
mov eax, dword [esi + 4]
mov edx, dword [eax]
lea ecx, [ebp + 0x40]
push ecx
push eax
mov edx, dword [edx + 0x44]
call edx
test eax, eax
jns 0x438194
mov dword [ebp + 0x18], 6
push 0x442648
lea eax, [ebp + 0x18]
push eax
call fcn.0040c3d4
mov eax, dword [esi + 0xc8c]
mov ecx, dword [esi + 0xc88]
push 0xcc0020
push edi
mov edx, dword [esi + 0xc]
push edx
mov edx, dword [esi + 0x10]
push edx
push eax
push ecx
push edi
push edi
push eax
push ecx
push edi
push edi
mov eax, dword [ebp + 0x40]
push eax
call dword [sym.imp.GDI32.dll_StretchDIBits]
mov esi, dword [esi + 4]
mov ecx, dword [esi]
mov edx, dword [ebp + 0x40]
push edx
push esi
mov eax, dword [ecx + 0x68]
call eax
mov byte [ebp + 0x4b], 1
mov dword [ebp - 4], 0xffffffff
jmp 0x438205
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, byte [ebp + 0x4b]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x4c]
pop ebp
ret 4