Function at 0x4044e0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1f0
push ebx
push ebp
push esi
lea eax, [esp + 0x90]
push edi
xor ebx, ebx
mov dword [esp + 0x5c], ecx
mov ecx, dword [0x43b060]
push eax
push ebx
call fcn.00402700
mov ecx, 0xc
lea esi, [esp + 0x94]
lea edi, [esp + 0xc8]
mov ebp, eax
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov ecx, 0xc
lea esi, [esp + 0x94]
lea edi, [esp + 0x60]
cmp ebp, ebx
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov dword [esp + 0x14], ebp
movsb byte es:[edi], byte [esi]
jne 0x404689
mov esi, dword [esp + 0x5c]
push 0x408
mov ecx, esi
call fcn.004222ea
cmp eax, ebx
je 0x404565
push 0x436d90
mov ecx, eax
call fcn.004223e1
push 0x3f9
mov ecx, esi
call fcn.004222ea
cmp eax, ebx
je 0x404581
push 0x43b064
mov ecx, eax
call fcn.004223e1
push 0x3fb
mov ecx, esi
call fcn.004222ea
cmp eax, ebx
je 0x40459d
push 0x43b064
mov ecx, eax
call fcn.004223e1
push 0x3fd
mov ecx, esi
call fcn.004222ea
cmp eax, ebx
je 0x4045b9
push 0x43b064
mov ecx, eax
call fcn.004223e1
push 0x3ff
mov ecx, esi
call fcn.004222ea
cmp eax, ebx
je 0x4045d5
push 0x43b064
mov ecx, eax
call fcn.004223e1
push 0x415
mov ecx, esi
call fcn.004222ea
cmp eax, ebx
je 0x4045f1
push 0x43b064
mov ecx, eax
call fcn.004223e1
push 0x3fa
mov ecx, esi
call fcn.004222ea
cmp eax, ebx
je 0x40460d
push 0x43b064
mov ecx, eax
call fcn.004223e1
push 0x3fc
mov ecx, esi
call fcn.004222ea
cmp eax, ebx
je 0x404629
push 0x43b064
mov ecx, eax
call fcn.004223e1
push 0x3fe
mov ecx, esi
call fcn.004222ea
cmp eax, ebx
je 0x404645
push 0x43b064
mov ecx, eax
call fcn.004223e1
push 0x40c
mov ecx, esi
call fcn.004222ea
cmp eax, ebx
je 0x404661
push 0x43b064
mov ecx, eax
call fcn.004223e1
push 0x416
mov ecx, esi
call fcn.004222ea
cmp eax, ebx
je 0x404ec7
push 0x43b064
mov ecx, eax
call fcn.004223e1
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, ebp
shl eax, 4
add eax, ebp
lea esi, [eax + eax*2]
push esi
call fcn.0041ef16
mov ecx, dword [0x43b060]
add esp, 4
add ecx, 0x2f8
mov dword [esp + 0x4c], eax
push ebx
push ebx
push 3
push ebx
push 1
push SysReAllocStringLen
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
lea edx, [esp + 0xfc]
push ebx
push edx
push esi
mov esi, dword [esp + 0x58]
mov edi, eax
push esi
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp ebp, ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
jle 0x4048d5
lea ecx, [esi + 0x15]
mov dword [esp + 0x48], ebp
mov si, word [ecx - 2]
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
mov eax, esi
and eax, 0xffff
mov ebp, dword [esp + 0x40]
cdq
add ebx, eax
adc edi, edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], edi
mov di, word [ecx]
mov ebx, dword [esp + 0x44]
mov eax, edi
and eax, 0xffff
cdq
add ebp, eax
adc ebx, edx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebx
mov bx, word [ecx + 2]
mov ebp, dword [esp + 0x20]
mov eax, ebx
and eax, 0xffff
cdq
add ebp, eax
mov eax, dword [esp + 0x24]
adc eax, edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 4]
add ebp, eax
adc edx, 0
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x3c], edx
mov edx, dword [ecx + 0xa]
add ebp, edx
mov edx, dword [esp + 0x54]
adc edx, 0
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x54], edx
mov edx, dword [ecx + 0xe]
add ebp, edx
mov edx, dword [esp + 0x1c]
adc edx, 0
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x1c], edx
mov edx, dword [ecx + 0x12]
add ebp, edx
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x2c]
adc ebp, 0
cmp si, word [esp + 0xdb]
mov dword [esp + 0x2c], ebp
jae 0x4047f6
mov word [esp + 0xdb], si
cmp di, word [esp + 0xdd]
jae 0x404808
mov word [esp + 0xdd], di
cmp bx, word [esp + 0xdf]
jae 0x40481a
mov word [esp + 0xdf], bx
cmp eax, dword [esp + 0xe1]
jae 0x40482a
mov dword [esp + 0xe1], eax
mov ebp, dword [ecx + 0xa]
cmp ebp, dword [esp + 0xe7]
jae 0x40483d
mov dword [esp + 0xe7], ebp
mov ebp, dword [ecx + 0xe]
cmp ebp, dword [esp + 0xeb]
jae 0x404850
mov dword [esp + 0xeb], ebp
cmp edx, dword [esp + 0xef]
jae 0x404860
mov dword [esp + 0xef], edx
cmp si, word [esp + 0x73]
jbe 0x40486c
mov word [esp + 0x73], si
cmp di, word [esp + 0x75]
jbe 0x404878
mov word [esp + 0x75], di
cmp bx, word [esp + 0x77]
jbe 0x404884
mov word [esp + 0x77], bx
cmp eax, dword [esp + 0x79]
jbe 0x40488e
mov dword [esp + 0x79], eax
mov eax, dword [ecx + 0xa]
mov esi, dword [esp + 0x7f]
cmp eax, esi
jbe 0x40489d
mov dword [esp + 0x7f], eax
cmp ebp, dword [esp + 0x83]
jbe 0x4048ad
mov dword [esp + 0x83], ebp
cmp edx, dword [esp + 0x87]
jbe 0x4048bd
mov dword [esp + 0x87], edx
mov eax, dword [esp + 0x48]
add ecx, 0x33
dec eax
mov dword [esp + 0x48], eax
jne 0x404725
mov ebp, dword [esp + 0x14]
xor ebx, ebx
mov eax, ebp
mov ecx, dword [esp + 0x30]
cdq
mov edi, edx
mov esi, eax
mov eax, dword [esp + 0x34]
push edi
push esi
push eax
push ecx
call fcn.004044a0
mov edx, dword [esp + 0x54]
mov word [esp + 0xb7], ax
mov eax, dword [esp + 0x50]
push edi
push esi
push edx
push eax
call fcn.004044a0
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
push edi
push esi
push ecx
push edx
mov word [esp + 0xd9], ax
call fcn.004044a0
mov ecx, dword [esp + 0x68]
mov word [esp + 0xdb], ax
mov eax, dword [esp + 0x6c]
push edi
push esi
push eax
push ecx
call fcn.004044a0
mov edx, dword [esp + 0x94]
add esp, 0x40
mov dword [esp + 0xad], eax
mov eax, dword [esp + 0x50]
push edi
push esi
push edx
push eax
call fcn.004044a0
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push edi
push esi
push ecx
push edx
mov dword [esp + 0xd3], eax
call fcn.004044a0
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xd7], eax
mov eax, dword [esp + 0x4c]
push edi
push esi
push eax
push ecx
call fcn.004044a0
add esp, 0x30
cmp ebp, ebx
mov dword [esp + 0xbb], eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
jle 0x404adb
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x48], ebp
lea ebx, [edx + 0x15]
mov ecx, dword [esp + 0xa7]
xor eax, eax
mov ax, word [ebx - 2]
and ecx, 0xffff
push eax
push ecx
call fcn.00404ed0
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
add edx, eax
mov eax, dword [esp + 0xb1]
mov dword [esp + 0x38], edx
adc ecx, 0
xor edx, edx
mov dx, word [ebx]
and eax, 0xffff
push edx
push eax
mov dword [esp + 0x44], ecx
call fcn.00404ed0
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0xbb]
add ecx, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x50], ecx
adc eax, 0
xor ecx, ecx
mov cx, word [ebx + 2]
and edx, 0xffff
push ecx
push edx
mov dword [esp + 0x5c], eax
call fcn.00404ed0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
add ecx, eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc5]
adc edx, 0
push eax
push ecx
mov dword [esp + 0x44], edx
call fcn.00404ed0
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
add edx, eax
mov eax, dword [esp + 0xd3]
mov dword [esp + 0x58], edx
mov edx, dword [ebx + 0xa]
adc ecx, 0
push edx
push eax
mov dword [esp + 0x64], ecx
call fcn.00404ed0
mov ecx, dword [ebx + 0xe]
mov edx, dword [esp + 0xdf]
push ecx
push edx
call fcn.00404ed0
mov eax, dword [ebx + 0x12]
mov ecx, dword [esp + 0xeb]
push eax
push ecx
call fcn.00404ed0
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
add esp, 0x38
add ecx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x28], ecx
adc edx, 0
add ebx, 0x33
dec eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x48], eax
jne 0x4049cb
xor ebx, ebx
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
push edi
push esi
push edx
push eax
call fcn.004044a0
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
push edi
push esi
push ecx
push edx
mov word [esp + 0x93], ax
call fcn.004044a0
mov ecx, dword [esp + 0x40]
mov word [esp + 0x95], ax
mov eax, dword [esp + 0x44]
push edi
push esi
push eax
push ecx
call fcn.004044a0
mov edx, dword [esp + 0x6c]
mov word [esp + 0xa7], ax
mov eax, dword [esp + 0x68]
push edi
push esi
push edx
push eax
call fcn.004044a0
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
add esp, 0x40
mov dword [esp + 0x79], eax
push edi
push esi
push ecx
push edx
call fcn.004044a0
mov edi, eax
mov eax, dword [esp + 0x5c]
push eax
call fcn.0041ef3f
push ebp
lea ecx, [esp + 0x118]
push 0x436d8c
push ecx
call fcn.0040f3cf
mov esi, dword [esp + 0x7c]
add esp, 0x20
mov ecx, esi
push 0x408
call fcn.004222ea
cmp eax, ebx
je 0x404b94
lea edx, [esp + 0x100]
mov ecx, eax
push edx
call fcn.004223e1
mov eax, dword [esp + 0xa7]
sub esp, 8
and eax, 0xffff
lea ecx, [esp + 0x108]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fmul qword [0x42b900]
fstp qword [esp]
push str._0.1f
push ecx
call fcn.0040f3cf
add esp, 0x10
mov ecx, esi
push 0x3f9
call fcn.004222ea
cmp eax, ebx
je 0x404be8
lea edx, [esp + 0x100]
mov ecx, eax
push edx
call fcn.004223e1
mov eax, dword [esp + 0xad]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], eax
sub esp, 8
fild qword [esp + 0x20]
lea ecx, [esp + 0x108]
fmul qword [0x42b900]
fstp qword [esp]
push str._0.1f
push ecx
call fcn.0040f3cf
add esp, 0x10
mov ecx, esi
push 0x3fb
call fcn.004222ea
cmp eax, ebx
je 0x404c3b
lea edx, [esp + 0x100]
mov ecx, eax
push edx
call fcn.004223e1
mov eax, dword [esp + 0xbb]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], eax
sub esp, 8
fild qword [esp + 0x20]
lea ecx, [esp + 0x108]
fmul qword [0x42b908]
fstp qword [esp]
push str._0.3f
push ecx
call fcn.0040f3cf
add esp, 0x10
mov ecx, esi
push 0x3fd
call fcn.004222ea
cmp eax, ebx
je 0x404c8e
lea edx, [esp + 0x100]
mov ecx, eax
push edx
call fcn.004223e1
mov eax, dword [esp + 0xa9]
sub esp, 8
and eax, 0xffff
lea ecx, [esp + 0x108]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fmul qword [0x42b900]
fstp qword [esp]
push str._0.1f
push ecx
call fcn.0040f3cf
add esp, 0x10
mov ecx, esi
push 0x3ff
call fcn.004222ea
cmp eax, ebx
je 0x404ce2
lea edx, [esp + 0x100]
mov ecx, eax
push edx
call fcn.004223e1
mov eax, dword [esp + 0xab]
sub esp, 8
and eax, 0xffff
lea ecx, [esp + 0x108]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fmul qword [0x42b900]
fstp qword [esp]
push str._0.1f
push ecx
call fcn.0040f3cf
add esp, 0x10
mov ecx, esi
push 0x415
call fcn.004222ea
cmp eax, ebx
je 0x404d36
lea edx, [esp + 0x100]
mov ecx, eax
push edx
call fcn.004223e1
mov eax, dword [esp + 0x73]
sub esp, 8
and eax, 0xffff
lea ecx, [esp + 0x108]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fmul qword [0x42b900]
fstp qword [esp]
push str._0.1f
push ecx
call fcn.0040f3cf
add esp, 0x10
mov ecx, esi
push 0x3fa
call fcn.004222ea
cmp eax, ebx
je 0x404d87
lea edx, [esp + 0x100]
mov ecx, eax
push edx
call fcn.004223e1
mov eax, dword [esp + 0x79]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], eax
sub esp, 8
fild qword [esp + 0x20]
lea ecx, [esp + 0x108]
fmul qword [0x42b900]
fstp qword [esp]
push str._0.1f
push ecx
call fcn.0040f3cf
add esp, 0x10
mov ecx, esi
push 0x3fc
call fcn.004222ea
cmp eax, ebx
je 0x404dd7
lea edx, [esp + 0x100]
mov ecx, eax
push edx
call fcn.004223e1
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ebx
fild qword [esp + 0x18]
sub esp, 8
lea eax, [esp + 0x108]
fmul qword [0x42b908]
fstp qword [esp]
push str._0.3f
push eax
call fcn.0040f3cf
add esp, 0x10
mov ecx, esi
push 0x3fe
call fcn.004222ea
cmp eax, ebx
je 0x404e23
lea ecx, [esp + 0x100]
push ecx
mov ecx, eax
call fcn.004223e1
mov edx, dword [esp + 0x75]
sub esp, 8
and edx, 0xffff
lea eax, [esp + 0x108]
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
fmul qword [0x42b900]
fstp qword [esp]
push str._0.1f
push eax
call fcn.0040f3cf
add esp, 0x10
mov ecx, esi
push 0x40c
call fcn.004222ea
cmp eax, ebx
je 0x404e75
lea ecx, [esp + 0x100]
push ecx
mov ecx, eax
call fcn.004223e1
mov edx, dword [esp + 0x77]
sub esp, 8
and edx, 0xffff
lea eax, [esp + 0x108]
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
fmul qword [0x42b900]
fstp qword [esp]
push str._0.1f
push eax
call fcn.0040f3cf
add esp, 0x10
mov ecx, esi
push 0x416
call fcn.004222ea
cmp eax, ebx
je 0x404ec7
lea ecx, [esp + 0x100]
push ecx
mov ecx, eax
call fcn.004223e1
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret