Function at 0x42b7b0
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 ebx, ebx
mov eax, dword [edi + 0x3854]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], eax
mov al, byte [edi + 0x2bc]
test al, al
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], ebx
je 0x42b817
mov ecx, esi
mov eax, dword [0x750018]
and ecx, 0x7ff
mov edx, esi
neg ecx
sbb ecx, ecx
push 0xffffffffffffff80
neg ecx
shr edx, 0xb
add eax, ecx
mov dword [0x747fe8], ebx
lea ecx, [edx + eax - 1]
push ecx
call fcn.004281e0
add esp, 8
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [esp + 0x7c], ebx
je 0x42b9a3
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x28], esi
or esi, eax
mov dword [esp + 0x2c], eax
je 0x42c139
mov edx, dword [esp + 0x74]
push edx
call fcn.00423f80
add esp, 4
test eax, eax
je 0x42c126
mov eax, dword [esp + 0x2c]
test eax, eax
ja 0x42b868
mov ebx, dword [esp + 0x28]
cmp ebx, 0x7fff
jbe 0x42b86d
mov ebx, 0x8000
mov ebp, ebx
and ebp, 0x800007ff
jns 0x42b87f
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, 0x748008
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, 0x748008
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 [0x750018]
push edx
mov edx, dword [esp + 0x90]
push eax
push ebp
push 0x748008
push 0
push ecx
push edx
call fcn.0041c4c0
add esp, 0x38
cmp eax, ebp
jne 0x42c126
mov eax, dword [esp + 0x74]
test eax, eax
je 0x42b959
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x42b959
mov eax, ebp
shl eax, 0xb
cdq
push edx
push eax
call ecx
jmp 0x42b966
mov eax, ebp
shl eax, 0xb
cdq
push edx
push eax
call fcn.004a88c0
mov eax, dword [0x750018]
mov ecx, dword [esp + 0x30]
add eax, ebp
mov esi, dword [esp + 0x18]
mov dword [0x750018], 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 0x42b83f
jmp 0x42c139
mov ebp, dword [esp + 0x78]
push ebp
push edi
call fcn.00417df0
mov ebx, dword [esp + 0x94]
add esp, 8
test eax, eax
je 0x42ba30
mov eax, dword [edi + 0x384c]
mov edi, dword [esp + 0x84]
test eax, eax
je 0x42b9d1
mov dword [esp + 0x20], edi
push edi
call fcn.004f5860
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x42b9fa
push edi
call fcn.004f2e00
add esp, 4
mov dword [0x85ac64], 0xa
jmp 0x42c139
push eax
call fcn.004f57f0
add esp, 4
cmp esi, eax
jne 0x42ba0b
cmp ebx, edx
je 0x42ba44
push str.File_size_changed.
push 0xd3
mov dword [0x85ac64], 4
call fcn.0051faa0
push eax
call fcn.004f2cc0
push edi
jmp 0x42c11e
cmp dword [edi + 0x29c], 0x97
jne 0x42ba44
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0x28], esi
or esi, ebx
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x2c], ebx
je 0x42c139
mov ebp, dword [esp + 0x74]
push ebp
call fcn.00423f80
add esp, 4
test eax, eax
je 0x42c126
mov eax, dword [esp + 0x90]
test eax, eax
je 0x42bbad
test byte [esp + 0xb0], 1
je 0x42bbad
mov edx, dword [esp + 0xa8]
mov esi, dword [esp + 0xa4]
mov ecx, dword [esp + 0xac]
mov eax, edx
shr esi, 0x10
shl eax, 0x10
shr edx, 0x10
shl ecx, 0x10
or esi, eax
or edx, ecx
xor ebp, ebp
mov dword [esp + 0x44], 2
mov dword [esp + 0x48], 7
mov dword [esp + 0x4c], 0xb
mov dword [esp + 0x50], 0x15
mov dword [esp + 0x54], 0x26
mov dword [esp + 0x58], 0x2b
mov dword [esp + 0x5c], 0x2f
mov dword [esp + 0x60], 0x38
mov dword [esp + 0x64], 0x39
mov dword [esp + 0x68], 0x3d
mov dword [esp + 0x30], 0xd
mov dword [esp + 0x34], 0x1d
mov dword [esp + 0x38], 0x29
mov dword [esp + 0x3c], 0x95
mov dword [esp + 0x40], 0xe5
xor edi, edi
lea ebx, [esp + 0x44]
mov ecx, dword [ebx]
cmp ecx, 0xffffffff
je 0x42bb68
cmp ecx, 0x20
jge 0x42bb4d
mov eax, esi
jmp 0x42bb52
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 0x42bb3d
xor edi, edi
lea esi, [esp + 0x30]
mov ecx, dword [esi]
cmp ecx, 0xffffffff
je 0x42bbad
mov eax, ebp
xor edx, edx
div ecx
imul eax, ecx
cmp eax, ebp
je 0x42bb8d
inc edi
add esi, 4
cmp edi, 5
jl 0x42bb6e
jmp 0x42bbad
cmp byte [0x817710], 0x66
je 0x42bbad
mov eax, dword [0x78ca5c]
test eax, eax
jne 0x42bbad
cmp byte [esp + 0xb0], 0x18
je 0x42c083
mov eax, dword [esp + 0x2c]
test eax, eax
ja 0x42bbc1
mov ebx, dword [esp + 0x28]
cmp ebx, 0x7fff
jbe 0x42bbc6
mov ebx, 0x8000
mov esi, ebx
and esi, 0x800007ff
jns 0x42bbd8
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, 0x748008
shr ecx, 2
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x42bc4a
cmp dword [ebp + 0x384c], 1
je 0x42bcf8
lea edx, [esp + 0x24]
push 0
push edx
push ebx
push 0x748008
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x42c092
cmp dword [esp + 0x24], ebx
jne 0x42c092
jmp 0x42bcf8
cmp dword [ebp + 0x384c], 1
je 0x42bd05
mov edi, dword [esp + 0x78]
test edi, edi
je 0x42bc85
mov eax, dword [edi + 0x54]
test eax, eax
je 0x42bc85
mov eax, dword [esp + 0x10]
push esi
push eax
push 0x748008
push edi
push ebp
call fcn.00435dd0
add esp, 0x14
cmp eax, esi
jne 0x42c126
jmp 0x42bcf4
mov eax, dword [ebp + 0x29c]
cmp eax, 0x97
je 0x42bcc0
cmp eax, 0x65
je 0x42bcc0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x80]
push esi
push 0x748008
add ecx, edx
push 0
push ecx
push ebp
call fcn.0041c210
add esp, 0x14
cmp eax, esi
jne 0x42c126
jmp 0x42bcf4
mov eax, ebx
cdq
push edx
push eax
mov eax, dword [esp + 0x18]
push 0
cdq
push 0x800
push edx
push eax
call fcn.0053f700
push edx
push eax
mov eax, dword [edi + 0x7c]
push 0x748008
push eax
push ebp
call fcn.0053b510
add esp, 0x1c
cmp eax, ebx
jne 0x42c126
mov ebp, dword [esp + 0x70]
cmp dword [ebp + 0x384c], 1
jne 0x42beb8
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x42be31
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x42be31
mov eax, dword [esp + 0x78]
test eax, eax
je 0x42bdf0
mov ecx, dword [eax + 0x54]
test ecx, ecx
je 0x42bdf0
xor edi, edi
test esi, esi
jle 0x42bea0
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.00435d30
mov ecx, eax
add esp, 0x30
cmp ecx, 0xffffffff
je 0x42c0ae
mov eax, ebx
cdq
cmp dword [esp + 0x28], eax
jne 0x42bdc7
cmp dword [esp + 0x2c], edx
jne 0x42bdc7
mov eax, 1
jmp 0x42bdc9
xor eax, eax
push eax
push 1
push ecx
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00421ab0
add esp, 0x10
test eax, eax
je 0x42c0ae
inc edi
cmp edi, esi
jl 0x42bd45
jmp 0x42be9c
mov ecx, dword [esp + 0x28]
mov eax, ebx
cdq
cmp ecx, eax
jne 0x42be08
cmp dword [esp + 0x2c], edx
jne 0x42be08
mov eax, 1
jmp 0x42be0a
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.00421ab0
add esp, 0x10
test eax, eax
je 0x42c0d4
jmp 0x42bea0
mov eax, ebx
cdq
mov edi, eax
mov eax, dword [esp + 0x28]
cmp eax, edi
mov ebp, edx
jne 0x42be4d
cmp dword [esp + 0x2c], ebp
jne 0x42be4d
mov eax, 1
jmp 0x42be4f
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.00421b10
add esp, 0x1c
test eax, eax
je 0x42c0fa
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 [0x750018]
push ecx
push esi
push edx
push ebp
call fcn.004224a0
add esp, 0x10
jmp 0x42bf1f
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 [0x750018]
push ecx
push edx
push esi
push 0x748008
push 0
push eax
push ebp
call fcn.0041c4c0
add esp, 0x38
cmp eax, esi
jne 0x42c126
mov ebp, dword [0x750018]
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 [0x750018], 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 0x42bf69
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x42bf69
mov eax, esi
shl eax, 0xb
cdq
push edx
push eax
call ecx
jmp 0x42bf76
mov eax, esi
shl eax, 0xb
cdq
push edx
push eax
call fcn.004a88c0
mov eax, dword [esp + 0x78]
add esp, 8
mov ecx, dword [eax + 0x28c]
mov ebx, dword [eax + 0x2a4]
cmp ecx, 2
jne 0x42c046
test ebx, ebx
je 0x42c046
mov eax, dword [ebx + 0x9c8c]
test eax, eax
je 0x42c046
mov eax, dword [ebx + 0x9cc8]
lea ecx, [ebx + 4]
test ecx, ecx
je 0x42c046
mov edi, dword [ebx + eax*4 + 4]
test edi, edi
je 0x42c046
mov eax, dword [ebx + 0x9ce8]
test eax, eax
je 0x42c046
push str.Save_to:
push 0xaf
call fcn.0051faa0
push eax
call fcn.0053f454
push edi
mov esi, eax
call fcn.0053f454
lea eax, [esi + eax + 1]
lea edx, [eax + eax]
push edx
call fcn.004f56f0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x42c03c
push str.Save_to:
push 0xaf
call fcn.0051faa0
push eax
push esi
call fcn.0053f406
push edi
push esi
call fcn.0053f3dc
add esp, 0x18
test ebp, ebp
je 0x42c033
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x42c033
push esi
call eax
add esp, 4
push esi
call fcn.004f5720
add esp, 4
mov dword [ebx + 0x9ce8], 0
mov eax, dword [esp + 0x70]
cmp dword [eax + 0x38], 1
jne 0x42c06e
mov ecx, dword [eax + 0x34]
add eax, 0x30
test ecx, ecx
jl 0x42c06e
jg 0x42c064
cmp dword [eax], 0x12c00000
jbe 0x42c06e
mov dword [0x85ac64], 3
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
or eax, ecx
jne 0x42ba68
jmp 0x42c139
mov dword [0x85ac64], 3
jmp 0x42c139
mov ecx, dword [esp + 0x84]
mov dword [0x85ac64], 4
push ecx
call fcn.004f2e00
add esp, 4
jmp 0x42c126
push 0x6722c4
push 0x64
mov dword [0x85ac64], 6
call fcn.0051faa0
push eax
call fcn.004f2cc0
mov edx, dword [esp + 0x90]
push edx
jmp 0x42c11e
push 0x6722c4
push 0x64
mov dword [0x85ac64], 6
call fcn.0051faa0
push eax
call fcn.004f2cc0
mov eax, dword [esp + 0x90]
push eax
jmp 0x42c11e
push 0x6722c4
push 0x64
mov dword [0x85ac64], 6
call fcn.0051faa0
push eax
call fcn.004f2cc0
mov ecx, dword [esp + 0x90]
push ecx
call fcn.004f2e00
add esp, 0x10
mov eax, dword [0x85ac64]
test eax, eax
jne 0x42c139
mov dword [0x85ac64], 2
mov edx, dword [esp + 0x1c]
push edx
call fcn.004f5730
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret