Function at 0x42db10
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 + 0x8c]
xor ebp, ebp
mov eax, dword [edi + 0x3864]
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 0x42db77
mov ecx, esi
mov eax, dword [0x71d108]
and ecx, 0x7ff
mov edx, esi
neg ecx
sbb ecx, ecx
push 0xffffffffffffff80
neg ecx
shr edx, 0xb
add eax, ecx
mov dword [0x7150d8], ebp
lea ecx, [edx + eax - 1]
push ecx
call fcn.0042a2a0
add esp, 8
push ebp
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [esp + 0x7c], ebp
je 0x42dd03
mov eax, dword [esp + 0x90]
mov dword [esp + 0x28], esi
or esi, eax
mov dword [esp + 0x2c], eax
je 0x42e4bd
mov edx, dword [esp + 0x74]
push edx
call fcn.00425fa0
add esp, 4
test eax, eax
je 0x42e4aa
mov eax, dword [esp + 0x2c]
test eax, eax
ja 0x42dbc8
mov ebx, dword [esp + 0x28]
cmp ebx, 0x7fff
jbe 0x42dbcd
mov ebx, 0x8000
mov ebp, ebx
and ebp, 0x800007ff
jns 0x42dbdf
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, 0x7150f8
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, 0x7150f8
mov edx, dword [esp + 0xb0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0xac]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0xb4]
push ecx
mov ecx, dword [esp + 0xac]
push edx
mov edx, dword [esp + 0xac]
push eax
mov eax, dword [esp + 0xac]
push ecx
mov ecx, dword [esp + 0xac]
push edx
mov edx, dword [esp + 0xac]
push eax
mov eax, dword [esp + 0xac]
push ecx
mov ecx, dword [0x71d108]
push edx
mov edx, dword [esp + 0x90]
push eax
push ebp
push 0x7150f8
push 0
push ecx
push edx
call fcn.0041e720
add esp, 0x38
cmp eax, ebp
jne 0x42e4aa
mov eax, dword [esp + 0x74]
test eax, eax
je 0x42dcb9
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x42dcb9
mov eax, ebp
shl eax, 0xb
cdq
push edx
push eax
call ecx
jmp 0x42dcc6
mov eax, ebp
shl eax, 0xb
cdq
push edx
push eax
call fcn.004413e0
mov eax, dword [0x71d108]
mov ecx, dword [esp + 0x30]
add eax, ebp
mov esi, dword [esp + 0x18]
mov dword [0x71d108], 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 0x42db9f
jmp 0x42e4bd
mov eax, dword [esp + 0x84]
mov ebx, dword [esp + 0x90]
cmp eax, ebp
ja 0x42dd94
jb 0x42dd20
cmp dword [esp + 0x80], ebp
ja 0x42dd94
mov eax, dword [edi + 0x385c]
mov edi, dword [esp + 0x88]
cmp eax, ebp
je 0x42dd35
mov dword [esp + 0x20], edi
push edi
call fcn.004df8a0
add esp, 4
cmp eax, ebp
mov dword [esp + 0x1c], eax
jne 0x42dd5e
push edi
call fcn.004dcf00
add esp, 4
mov dword [0x7f2fa4], 0xa
jmp 0x42e4bd
push eax
call fcn.004df870
add esp, 4
cmp esi, eax
jne 0x42dd6f
cmp ebx, edx
je 0x42ddb6
push str.File_size_changed.
push 0xa8c
mov dword [0x7f2fa4], 4
call fcn.00506990
push eax
call fcn.004dcde0
push edi
jmp 0x42e4a2
mov edi, dword [edi + 0x29c]
cmp edi, 0x97
je 0x42dda7
cmp edi, 0x65
jne 0x42ddb6
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 0x98]
inc eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], esi
or esi, ebx
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], ebp
mov dword [esp + 0x2c], ebx
je 0x42e4bd
mov ebp, dword [esp + 0x74]
push ebp
call fcn.00425fa0
add esp, 4
test eax, eax
je 0x42e4aa
mov eax, dword [esp + 0x94]
test eax, eax
je 0x42df1a
test byte [esp + 0xb4], 1
je 0x42df1a
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0xb0]
mov esi, dword [esp + 0xa8]
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 0x42ded5
cmp ecx, 0x20
jge 0x42deba
mov eax, esi
jmp 0x42debf
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 0x42deaa
xor edi, edi
lea esi, [esp + 0x30]
mov ecx, dword [esi]
cmp ecx, 0xffffffff
je 0x42df1a
mov eax, ebp
xor edx, edx
div ecx
imul eax, ecx
cmp eax, ebp
je 0x42defa
inc edi
add esi, 4
cmp edi, 5
jl 0x42dedb
jmp 0x42df1a
cmp byte [0x6ffe78], 0x66
je 0x42df1a
mov eax, dword [0x75e25c]
test eax, eax
jne 0x42df1a
cmp byte [esp + 0xb4], 0x12
je 0x42e3fb
mov eax, dword [esp + 0x2c]
test eax, eax
ja 0x42df2e
mov ebx, dword [esp + 0x28]
cmp ebx, 0x7fff
jbe 0x42df33
mov ebx, 0x8000
mov esi, ebx
and esi, 0x800007ff
jns 0x42df45
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, 0x7150f8
shr ecx, 2
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x42dfb7
cmp dword [ebp + 0x385c], 1
je 0x42e071
lea edx, [esp + 0x24]
push 0
push edx
push ebx
push 0x7150f8
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x42e40a
cmp dword [esp + 0x24], ebx
jne 0x42e40a
jmp 0x42e071
cmp dword [ebp + 0x385c], 1
je 0x42e07e
mov edi, dword [esp + 0x78]
test edi, edi
je 0x42dff2
mov eax, dword [edi + 0x5c]
test eax, eax
je 0x42dff2
mov eax, dword [esp + 0x10]
push esi
push eax
push 0x7150f8
push edi
push ebp
call fcn.0043bdb0
add esp, 0x14
cmp eax, esi
jne 0x42e4aa
jmp 0x42e06d
mov eax, dword [ebp + 0x29c]
cmp eax, 0x97
je 0x42e036
cmp eax, 0x65
je 0x42e036
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
push esi
cdq
add eax, edi
push 0x7150f8
adc edx, ecx
push edx
push eax
push ebp
call fcn.0041e400
add esp, 0x14
cmp eax, esi
jne 0x42e4aa
jmp 0x42e06d
mov eax, ebx
cdq
push edx
push eax
mov eax, dword [esp + 0x18]
push 0
cdq
push 0x800
push edx
push eax
call fcn.00526dd0
mov ecx, dword [edi + 0x98]
push edx
push eax
push 0x7150f8
push ecx
push ebp
call fcn.0047a1c0
add esp, 0x1c
cmp eax, ebx
jne 0x42e4aa
mov ebp, dword [esp + 0x70]
cmp dword [ebp + 0x385c], 1
jne 0x42e230
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x42e1aa
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x42e1aa
mov eax, dword [esp + 0x78]
test eax, eax
je 0x42e169
mov ecx, dword [eax + 0x5c]
test ecx, ecx
je 0x42e169
xor edi, edi
test esi, esi
jle 0x42e219
mov ebp, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xa8]
push edx
mov edx, dword [esp + 0xa8]
push ebp
push eax
mov eax, dword [esp + 0xac]
push ecx
mov ecx, dword [esp + 0xac]
push edx
mov edx, dword [esp + 0xac]
push eax
mov eax, dword [esp + 0xac]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push eax
mov eax, dword [esp + 0x9c]
lea edx, [edi + ecx]
mov ecx, dword [esp + 0x94]
push edx
push eax
push ecx
call fcn.0043bce0
mov ecx, eax
add esp, 0x30
cmp ecx, 0xffffffff
je 0x42e429
mov eax, ebx
cdq
cmp dword [esp + 0x28], eax
jne 0x42e140
cmp dword [esp + 0x2c], edx
jne 0x42e140
mov eax, 1
jmp 0x42e142
xor eax, eax
mov edx, dword [esp + 0x18]
push eax
push 1
push ecx
push edx
call fcn.00423af0
add esp, 0x10
test eax, eax
je 0x42e429
inc edi
cmp edi, esi
jl 0x42e0be
jmp 0x42e215
mov ecx, dword [esp + 0x28]
mov eax, ebx
cdq
cmp ecx, eax
jne 0x42e181
cmp dword [esp + 0x2c], edx
jne 0x42e181
mov eax, 1
jmp 0x42e183
xor eax, eax
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x84]
add eax, ecx
push esi
push eax
push edx
call fcn.00423af0
add esp, 0x10
test eax, eax
je 0x42e452
jmp 0x42e219
mov eax, ebx
cdq
mov edi, eax
mov eax, dword [esp + 0x28]
cmp eax, edi
mov ebp, edx
jne 0x42e1c6
cmp dword [esp + 0x2c], ebp
jne 0x42e1c6
mov eax, 1
jmp 0x42e1c8
xor eax, eax
mov edx, dword [esp + 0x8c]
push eax
mov eax, dword [esp + 0x94]
push ebx
push eax
mov eax, dword [esp + 0x20]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x30]
push ecx
call fcn.00423b50
add esp, 0x1c
test eax, eax
je 0x42e47b
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x90]
add ecx, edi
adc eax, ebp
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], eax
mov ebp, dword [esp + 0x70]
mov edx, dword [esp + 0x78]
mov eax, dword [0x71d108]
push edx
push esi
push eax
push ebp
call fcn.004244e0
add esp, 0x10
jmp 0x42e298
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0xac]
push ecx
mov ecx, dword [esp + 0xac]
push edx
mov edx, dword [esp + 0xac]
push eax
mov eax, dword [esp + 0xac]
push ecx
mov ecx, dword [esp + 0xac]
push edx
mov edx, dword [esp + 0xac]
push eax
mov eax, dword [esp + 0xac]
push ecx
mov ecx, dword [0x71d108]
push edx
push eax
push esi
push 0x7150f8
push 0
push ecx
push ebp
call fcn.0041e720
add esp, 0x38
cmp eax, esi
jne 0x42e4aa
mov ebp, dword [0x71d108]
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 [0x71d108], 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 0x42e2e2
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x42e2e2
mov eax, esi
shl eax, 0xb
cdq
push edx
push eax
call ecx
jmp 0x42e2ef
mov eax, esi
shl eax, 0xb
cdq
push edx
push eax
call fcn.004413e0
mov eax, dword [esp + 0x78]
add esp, 8
mov ecx, dword [eax + 0x28c]
mov ebx, dword [eax + 0x2a4]
cmp ecx, 2
jne 0x42e3be
test ebx, ebx
je 0x42e3be
mov eax, dword [ebx + 0x61acc]
test eax, eax
je 0x42e3be
mov eax, dword [ebx + 0x61b08]
lea edx, [ebx + 4]
test edx, edx
je 0x42e3be
mov edi, dword [ebx + eax*4 + 4]
test edi, edi
je 0x42e3be
mov eax, dword [ebx + 0x61b28]
test eax, eax
je 0x42e3be
push str.Save_to:
push 0x13ec
call fcn.00506990
push eax
call fcn.00526b30
push edi
mov esi, eax
call fcn.00526b30
lea eax, [esi + eax + 1]
add eax, eax
push eax
call fcn.004df770
mov esi, eax
add esp, 0x14
test esi, esi
je 0x42e3b4
push str.Save_to:
push 0x13ec
call fcn.00506990
push eax
push esi
call fcn.00526ae2
push edi
push esi
call fcn.00526ab8
add esp, 0x18
test ebp, ebp
je 0x42e3ab
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x42e3ab
push esi
call eax
add esp, 4
push esi
call fcn.004df7a0
add esp, 4
mov dword [ebx + 0x61b28], 0
mov eax, dword [esp + 0x70]
cmp dword [eax + 0x38], 1
jne 0x42e3e6
mov ecx, dword [eax + 0x34]
add eax, 0x30
test ecx, ecx
jl 0x42e3e6
jg 0x42e3dc
cmp dword [eax], 0x12c00000
jbe 0x42e3e6
mov dword [0x7f2fa4], 3
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
or ecx, eax
jne 0x42ddd8
jmp 0x42e4bd
mov dword [0x7f2fa4], 3
jmp 0x42e4bd
mov edx, dword [esp + 0x88]
mov dword [0x7f2fa4], 4
push edx
call fcn.004dcf00
add esp, 4
jmp 0x42e4aa
push 0x68daa0
push 0x2706
mov dword [0x7f2fa4], 6
call fcn.00506990
push eax
call fcn.004dcde0
mov eax, dword [esp + 0x94]
push eax
jmp 0x42e4a2
push 0x68daa0
push 0x2706
mov dword [0x7f2fa4], 6
call fcn.00506990
push eax
call fcn.004dcde0
mov ecx, dword [esp + 0x94]
push ecx
jmp 0x42e4a2
push 0x68daa0
push 0x2706
mov dword [0x7f2fa4], 6
call fcn.00506990
push eax
call fcn.004dcde0
mov edx, dword [esp + 0x94]
push edx
call fcn.004dcf00
add esp, 0x10
mov eax, dword [0x7f2fa4]
test eax, eax
jne 0x42e4bd
mov dword [0x7f2fa4], 2
mov eax, dword [esp + 0x1c]
push eax
call fcn.004df7b0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret