Function at 0x428b00
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push 0xffffffffffffffff
push 0x46f3ee
mov eax, dword fs:[0]
push eax
mov eax, 0x10e0
call fcn.0045a270
mov eax, dword [0x48e820]
xor eax, esp
mov dword [esp + 0x10d8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x48e820]
xor eax, esp
push eax
lea eax, [esp + 0x10f4]
mov dword fs:[0], eax
mov dword [esp + 0x10fc], 2
mov ebp, dword [esp + 0x1108]
push ecx
lea esi, [ebp - 0x10]
mov dword [esp + 0x18], esp
mov edi, esp
push esi
call fcn.00410330
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.00428960
add esp, 4
test eax, eax
je 0x428f9c
push ecx
mov dword [esp + 0x18], esp
mov edi, esp
push esi
call fcn.00410330
add eax, 0x10
add esp, 4
lea ebx, [esp + 0x18]
mov dword [edi], eax
call fcn.00428850
mov eax, dword [eax]
add esp, 4
push str.dooland_pwf_19800204_loveyou
push eax
call fcn.0045599c
add esp, 8
test eax, eax
mov eax, dword [esp + 0x14]
setne bl
add eax, 0xfffffff0
or edi, 0xffffffff
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x428bd1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x428f35
cmp dword [esi + 0xc], 1
jle 0x428bf6
mov ecx, dword [esi + 4]
push ecx
lea ecx, [esp + 0x110c]
call fcn.0040fde0
mov ebp, dword [esp + 0x1108]
push 0x47aaa8
push ebp
call fcn.004547d8
mov esi, eax
add esp, 8
test esi, esi
je 0x428ec7
push 0x66
lea edx, [esp + 0x1088]
push 0
push edx
call fcn.00458160
add esp, 0xc
push esi
push 1
lea eax, [esp + 0x108c]
push 0x64
push eax
call fcn.00454cde
add esp, 0x10
call fcn.0043adc8
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x428c51
push 0x80004005
call fcn.0040fef0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x1104]
push ecx
lea ecx, [esp + 0x18]
mov byte [esp + 0x1100], 3
call fcn.004104e0
mov ebx, dword [esp + 0x110c]
mov eax, dword [ebx - 0xc]
push eax
push ebx
lea ecx, [esp + 0x1c]
call fcn.0040ecb0
mov dword [esp + 0x1080], 0xf
mov dword [esp + 0x107c], 0
mov byte [esp + 0x106c], 0
mov byte [esp + 0x1064], 0
mov byte [esp + 0x10fc], 4
mov edi, dword [esp + 0x14]
mov eax, dword [edi - 0xc]
lea edx, [esp + 0x1c]
push edx
mov ecx, edi
call fcn.00421220
sub esp, 8
mov eax, esp
mov dword [eax], 0
mov dword [eax + 4], 0
lea eax, [esp + 0x24]
mov dword [esp + 0x20], esp
push eax
lea ecx, [esp + 0x1090]
call fcn.004212d0
push esi
call fcn.00454a05
add esp, 4
cmp dword [ebp - 4], 1
jle 0x428d1d
mov ecx, dword [ebp - 0xc]
push ecx
lea ecx, [esp + 0x110c]
call fcn.0040fde0
mov ebp, dword [esp + 0x1108]
push 0x480714
push ebp
call fcn.004547d8
mov esi, eax
add esp, 8
test esi, esi
je 0x428e21
push 1
push 0
push esi
call fcn.00455b32
add esp, 0xc
push esi
push 1
lea edx, [esp + 0x108c]
push 0x64
push edx
call fcn.00454905
push esi
call fcn.00454a05
add esp, 0x14
cmp dword [ebp - 4], 1
jle 0x428d7a
mov eax, dword [ebp - 0xc]
push eax
lea ecx, [esp + 0x110c]
call fcn.0040fde0
mov ebp, dword [esp + 0x1108]
push 0x480718
push ebp
call fcn.004547d8
mov esi, eax
add esp, 8
test esi, esi
je 0x428de6
push esi
push 1
push 0x1c
push str.dooland_pwf_19800204_loveyou
call fcn.00454905
push esi
call fcn.00454a05
add esp, 0x14
lea esi, [esp + 0x1c]
call fcn.00428ac0
lea ecx, [esp + 0x14]
call fcn.00410760
lea ecx, [esp + 0x1104]
call fcn.00410760
lea ecx, [esp + 0x1108]
call fcn.00410760
lea ecx, [esp + 0x110c]
call fcn.00410760
mov eax, 1
jmp 0x429018
lea esi, [esp + 0x1c]
call fcn.00428ac0
lea ecx, [esp + 0x14]
call fcn.00410760
lea ecx, [esp + 0x1104]
call fcn.00410760
lea ecx, [esp + 0x1108]
call fcn.00410760
lea ecx, [esp + 0x110c]
call fcn.00410760
jmp 0x429016
lea esi, [esp + 0x1c]
call fcn.00428ac0
add edi, 0xfffffff0
mov byte [esp + 0x10fc], 2
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x428e4e
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov byte [esp + 0x10fc], 1
mov eax, dword [esp + 0x1104]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x428e79
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebp, 0xfffffff0
mov byte [esp + 0x10fc], 0
lea ecx, [ebp + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x428e9e
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebp
call edx
add ebx, 0xfffffff0
mov dword [esp + 0x10fc], 0xffffffff
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x429016
mov ecx, dword [ebx]
push ebx
jmp 0x42900f
mov byte [esp + 0x10fc], 1
mov eax, dword [esp + 0x1104]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x428ef1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebp, 0xfffffff0
mov byte [esp + 0x10fc], 0
lea ecx, [ebp + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x428f15
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebp
call edx
mov dword [esp + 0x10fc], edi
mov eax, dword [esp + 0x110c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edi
dec edi
test edi, edi
jmp 0x42900a
mov byte [esp + 0x10fc], 1
mov eax, dword [esp + 0x1104]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x428f5f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x10fc], 0
lea ecx, [esi + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x428f7f
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov dword [esp + 0x10fc], edi
mov eax, dword [esp + 0x110c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edi
dec edi
test edi, edi
jmp 0x42900a
mov byte [esp + 0x10fc], 1
mov eax, dword [esp + 0x1104]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x428fc7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x10fc], 0
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x428fe8
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov dword [esp + 0x10fc], 0xffffffff
mov eax, dword [esp + 0x110c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x429016
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x10f4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x10d8]
xor ecx, esp
call fcn.004540ed
add esp, 0x10ec
ret