Function at 0x42a5f0
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x5c
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x88]
xor ebp, ebp
mov eax, dword [edi + 0x3854]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], eax
mov al, byte [edi + 0x2bc]
test al, al
mov dword [esp + 0x10], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x14], ebp
je 0x42a657
mov ecx, esi
mov eax, dword [0x68b868]
and ecx, 0x7ff
mov edx, esi
neg ecx
sbb ecx, ecx
push 0xffffffffffffff80
neg ecx
shr edx, 0xb
add eax, ecx
mov dword [0x683838], ebp
lea ecx, [edx + eax - 1]
push ecx
call fcn.00426f40
add esp, 8
push ebp
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [esp + 0x7c], ebp
je 0x42a7e3
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x28], esi
or esi, eax
mov dword [esp + 0x2c], eax
je 0x42af7d
mov edx, dword [esp + 0x74]
push edx
call fcn.00422ce0
add esp, 4
test eax, eax
je 0x42af6a
mov eax, dword [esp + 0x2c]
test eax, eax
ja 0x42a6a8
mov ebx, dword [esp + 0x28]
cmp ebx, 0x7fff
jbe 0x42a6ad
mov ebx, 0x8000
mov ebp, ebx
and ebp, 0x800007ff
jns 0x42a6bf
dec ebp
or ebp, 0xfffff800
inc ebp
mov eax, ebx
mov esi, dword [esp + 0x10]
neg ebp
cdq
sbb ebp, ebp
and edx, 0x7ff
add eax, edx
lea ecx, [ebx + 0x7ff]
neg ebp
sar eax, 0xb
and ecx, 0xfffff800
add ebp, eax
xor eax, eax
mov edi, 0x683858
shr ecx, 2
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x7c]
mov ecx, ebx
shl esi, 0xb
mov eax, ecx
add esi, edi
mov edi, 0x683858
mov edx, dword [esp + 0xac]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0xa8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0xa8]
push edx
mov edx, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0xa8]
push edx
mov edx, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0xa8]
push ecx
mov ecx, dword [0x68b868]
push edx
mov edx, dword [esp + 0x90]
push eax
push ebp
push 0x683858
push 0
push ecx
push edx
call fcn.0041b910
add esp, 0x38
cmp eax, ebp
jne 0x42af6a
mov eax, dword [esp + 0x74]
test eax, eax
je 0x42a799
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x42a799
mov eax, ebp
shl eax, 0xb
cdq
push edx
push eax
call ecx
jmp 0x42a7a6
mov eax, ebp
shl eax, 0xb
cdq
push edx
push eax
call fcn.004f4f40
mov eax, dword [0x68b868]
mov ecx, dword [esp + 0x30]
add eax, ebp
mov esi, dword [esp + 0x18]
mov dword [0x68b868], eax
mov eax, ebx
cdq
add esp, 8
sub ecx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x28], ecx
sbb eax, edx
add esi, ebp
or ecx, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], esi
jne 0x42a67f
jmp 0x42af7d
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x8c]
cmp eax, ebp
ja 0x42a869
mov eax, dword [edi + 0x384c]
mov edi, dword [esp + 0x84]
cmp eax, ebp
je 0x42a80a
mov dword [esp + 0x20], edi
push edi
call fcn.004b6b50
add esp, 4
cmp eax, ebp
mov dword [esp + 0x1c], eax
jne 0x42a833
push edi
call fcn.004b43e0
add esp, 4
mov dword [0x760b24], 0xa
jmp 0x42af7d
push eax
call fcn.004b6b20
add esp, 4
cmp esi, eax
jne 0x42a844
cmp ebx, edx
je 0x42a881
push str.File_size_changed.
push 0xa8c
mov dword [0x760b24], 4
call fcn.004dd120
push eax
call fcn.004b42c0
push edi
jmp 0x42af62
cmp dword [edi + 0x29c], 0x97
jne 0x42a881
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 0x7c]
inc eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], esi
or esi, ebx
mov dword [esp + 0x88], ebp
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x2c], ebx
je 0x42af7d
mov ebp, dword [esp + 0x74]
push ebp
call fcn.00422ce0
add esp, 4
test eax, eax
je 0x42af6a
mov eax, dword [esp + 0x90]
test eax, eax
je 0x42a9e5
test byte [esp + 0xb0], 1
je 0x42a9e5
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0xac]
mov esi, dword [esp + 0xa4]
mov ecx, edx
shr edx, 0x10
shl eax, 0x10
shr esi, 0x10
shl ecx, 0x10
or edx, eax
mov eax, 0x3b
or esi, ecx
xor ebp, ebp
mov dword [esp + 0x44], 6
mov dword [esp + 0x48], 0xd
mov dword [esp + 0x4c], 0x1d
mov dword [esp + 0x50], 0x1e
mov dword [esp + 0x54], 0x22
mov dword [esp + 0x58], 0x26
mov dword [esp + 0x5c], 0x2b
mov dword [esp + 0x60], 0x2f
mov dword [esp + 0x64], 0x37
mov dword [esp + 0x68], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0x83
mov dword [esp + 0x38], 0x9d
mov dword [esp + 0x3c], 0xc7
mov dword [esp + 0x40], 0xe5
xor edi, edi
lea ebx, [esp + 0x44]
mov ecx, dword [ebx]
cmp ecx, 0xffffffff
je 0x42a9a0
cmp ecx, 0x20
jge 0x42a985
mov eax, esi
jmp 0x42a98a
mov eax, edx
sub ecx, 0x20
shr eax, cl
lea ecx, [ebp + ebp]
add ebx, 4
and eax, 1
or eax, ecx
inc edi
cmp edi, 0xa
mov ebp, eax
jl 0x42a975
xor edi, edi
lea esi, [esp + 0x30]
mov ecx, dword [esi]
cmp ecx, 0xffffffff
je 0x42a9e5
mov eax, ebp
xor edx, edx
div ecx
imul eax, ecx
cmp eax, ebp
je 0x42a9c5
inc edi
add esi, 4
cmp edi, 5
jl 0x42a9a6
jmp 0x42a9e5
cmp byte [0x66f4e4], 0x66
je 0x42a9e5
mov eax, dword [0x6c7d78]
test eax, eax
jne 0x42a9e5
cmp byte [esp + 0xb0], 0x12
je 0x42aebb
mov eax, dword [esp + 0x2c]
test eax, eax
ja 0x42a9f9
mov ebx, dword [esp + 0x28]
cmp ebx, 0x7fff
jbe 0x42a9fe
mov ebx, 0x8000
mov esi, ebx
and esi, 0x800007ff
jns 0x42aa10
dec esi
or esi, 0xfffff800
inc esi
mov eax, ebx
lea ecx, [ebx + 0x7ff]
neg esi
cdq
sbb esi, esi
and edx, 0x7ff
add eax, edx
and ecx, 0xfffff800
neg esi
sar eax, 0xb
mov ebp, dword [esp + 0x70]
add esi, eax
xor eax, eax
mov edi, 0x683858
shr ecx, 2
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x42aa82
cmp dword [ebp + 0x384c], 1
je 0x42ab30
lea edx, [esp + 0x24]
push 0
push edx
push ebx
push 0x683858
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x42aeca
cmp dword [esp + 0x24], ebx
jne 0x42aeca
jmp 0x42ab30
cmp dword [ebp + 0x384c], 1
je 0x42ab3d
mov edi, dword [esp + 0x78]
test edi, edi
je 0x42aabd
mov eax, dword [edi + 0x54]
test eax, eax
je 0x42aabd
mov eax, dword [esp + 0x10]
push esi
push eax
push 0x683858
push edi
push ebp
call fcn.00433e80
add esp, 0x14
cmp eax, esi
jne 0x42af6a
jmp 0x42ab2c
mov eax, dword [ebp + 0x29c]
cmp eax, 0x97
je 0x42aaf8
cmp eax, 0x65
je 0x42aaf8
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x80]
push esi
push 0x683858
add ecx, edx
push 0
push ecx
push ebp
call fcn.0041b660
add esp, 0x14
cmp eax, esi
jne 0x42af6a
jmp 0x42ab2c
mov eax, ebx
cdq
push edx
push eax
mov eax, dword [esp + 0x18]
push 0
cdq
push 0x800
push edx
push eax
call fcn.004f5ce0
push edx
push eax
mov eax, dword [edi + 0x7c]
push 0x683858
push eax
push ebp
call fcn.004f4f50
add esp, 0x1c
cmp eax, ebx
jne 0x42af6a
mov ebp, dword [esp + 0x70]
cmp dword [ebp + 0x384c], 1
jne 0x42acf0
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x42ac69
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x42ac69
mov eax, dword [esp + 0x78]
test eax, eax
je 0x42ac28
mov ecx, dword [eax + 0x54]
test ecx, ecx
je 0x42ac28
xor edi, edi
test esi, esi
jle 0x42acd8
mov ebp, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0xa4]
push ebp
push edx
mov edx, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0xa8]
push edx
mov edx, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0x2c]
push ecx
push edx
mov edx, dword [esp + 0x9c]
lea ecx, [edi + eax]
mov eax, dword [esp + 0x94]
push ecx
push edx
push eax
call fcn.00433de0
mov ecx, eax
add esp, 0x30
cmp ecx, 0xffffffff
je 0x42aee9
mov eax, ebx
cdq
cmp dword [esp + 0x28], eax
jne 0x42abff
cmp dword [esp + 0x2c], edx
jne 0x42abff
mov eax, 1
jmp 0x42ac01
xor eax, eax
push eax
push 1
push ecx
mov ecx, dword [esp + 0x24]
push ecx
call fcn.004208f0
add esp, 0x10
test eax, eax
je 0x42aee9
inc edi
cmp edi, esi
jl 0x42ab7d
jmp 0x42acd4
mov ecx, dword [esp + 0x28]
mov eax, ebx
cdq
cmp ecx, eax
jne 0x42ac40
cmp dword [esp + 0x2c], edx
jne 0x42ac40
mov eax, 1
jmp 0x42ac42
xor eax, eax
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x14]
add eax, edx
push esi
push eax
push ecx
call fcn.004208f0
add esp, 0x10
test eax, eax
je 0x42af12
jmp 0x42acd8
mov eax, ebx
cdq
mov edi, eax
mov eax, dword [esp + 0x28]
cmp eax, edi
mov ebp, edx
jne 0x42ac85
cmp dword [esp + 0x2c], ebp
jne 0x42ac85
mov eax, 1
jmp 0x42ac87
xor eax, eax
mov edx, dword [esp + 0x8c]
push eax
mov eax, dword [esp + 0x8c]
push ebx
push edx
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x28]
push edx
push ecx
push eax
call fcn.00420950
add esp, 0x1c
test eax, eax
je 0x42af3b
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
add ecx, edi
adc eax, ebp
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x78]
mov edx, dword [0x68b868]
push ecx
push esi
push edx
push ebp
call fcn.004212e0
add esp, 0x10
jmp 0x42ad57
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0xa8]
push edx
mov edx, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0xa8]
push edx
mov edx, dword [esp + 0xa8]
push eax
mov eax, dword [0x68b868]
push ecx
push edx
push esi
push 0x683858
push 0
push eax
push ebp
call fcn.0041b910
add esp, 0x38
cmp eax, esi
jne 0x42af6a
mov ebp, dword [0x68b868]
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov eax, ebx
mov ebx, dword [esp + 0x28]
add ebp, esi
cdq
sub ebx, eax
mov dword [0x68b868], ebp
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x28], ebx
sbb edi, edx
add ecx, esi
test ebp, ebp
mov dword [esp + 0x2c], edi
mov dword [esp + 0x10], ecx
je 0x42ada1
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x42ada1
mov eax, esi
shl eax, 0xb
cdq
push edx
push eax
call ecx
jmp 0x42adae
mov eax, esi
shl eax, 0xb
cdq
push edx
push eax
call fcn.004f4f40
mov eax, dword [esp + 0x78]
add esp, 8
mov ecx, dword [eax + 0x28c]
mov ebx, dword [eax + 0x2a4]
cmp ecx, 2
jne 0x42ae7e
test ebx, ebx
je 0x42ae7e
mov eax, dword [ebx + 0x9c8c]
test eax, eax
je 0x42ae7e
mov eax, dword [ebx + 0x9cc8]
lea ecx, [ebx + 4]
test ecx, ecx
je 0x42ae7e
mov edi, dword [ebx + eax*4 + 4]
test edi, edi
je 0x42ae7e
mov eax, dword [ebx + 0x9ce8]
test eax, eax
je 0x42ae7e
push str.Save_to:
push 0x13ec
call fcn.004dd120
push eax
call fcn.004f5a40
push edi
mov esi, eax
call fcn.004f5a40
lea eax, [esi + eax + 1]
lea edx, [eax + eax]
push edx
call fcn.004b6a20
mov esi, eax
add esp, 0x14
test esi, esi
je 0x42ae74
push str.Save_to:
push 0x13ec
call fcn.004dd120
push eax
push esi
call fcn.004f59f2
push edi
push esi
call fcn.004f59c8
add esp, 0x18
test ebp, ebp
je 0x42ae6b
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x42ae6b
push esi
call eax
add esp, 4
push esi
call fcn.004b6a50
add esp, 4
mov dword [ebx + 0x9ce8], 0
mov eax, dword [esp + 0x70]
cmp dword [eax + 0x38], 1
jne 0x42aea6
mov ecx, dword [eax + 0x34]
add eax, 0x30
test ecx, ecx
jl 0x42aea6
jg 0x42ae9c
cmp dword [eax], 0x12c00000
jbe 0x42aea6
mov dword [0x760b24], 3
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
or eax, ecx
jne 0x42a8a3
jmp 0x42af7d
mov dword [0x760b24], 3
jmp 0x42af7d
mov ecx, dword [esp + 0x84]
mov dword [0x760b24], 4
push ecx
call fcn.004b43e0
add esp, 4
jmp 0x42af6a
push 0x613d00
push 0x2706
mov dword [0x760b24], 6
call fcn.004dd120
push eax
call fcn.004b42c0
mov edx, dword [esp + 0x90]
push edx
jmp 0x42af62
push 0x613d00
push 0x2706
mov dword [0x760b24], 6
call fcn.004dd120
push eax
call fcn.004b42c0
mov eax, dword [esp + 0x90]
push eax
jmp 0x42af62
push 0x613d00
push 0x2706
mov dword [0x760b24], 6
call fcn.004dd120
push eax
call fcn.004b42c0
mov ecx, dword [esp + 0x90]
push ecx
call fcn.004b43e0
add esp, 0x10
mov eax, dword [0x760b24]
test eax, eax
jne 0x42af7d
mov dword [0x760b24], 2
mov edx, dword [esp + 0x1c]
push edx
call fcn.004b6a60
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret