Function at 0x422df0
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x58
mov eax, dword [0x5279f0]
xor eax, esp
mov dword [esp + 0x54], eax
push ebx
mov ebx, dword [esp + 0x60]
push ebp
mov eax, dword [ebx]
push esi
mov ebp, dword [eax + 0x86a4]
push edi
push 0x5c
push dword [ebp]
mov dword [esp + 0x20], ebx
call fcn.004c4740
mov ebx, dword [ebx]
xorps xmm0, xmm0
add esp, 8
mov dword [esp + 0x14], eax
movlpd qword [esp + 0x20], xmm0
call fcn.00413840
mov ecx, dword [ebx + 0x18c]
mov edi, edx
mov edx, dword [esp + 0x18]
mov esi, eax
mov dword [edx + 0x2a8], ecx
mov eax, dword [ebx + 0x13c]
mov dword [edx + 0x2ac], eax
mov eax, dword [edx]
lea ecx, [ebx + 0x57c]
mov dword [eax + 0x114], ecx
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x422e81
pop edi
pop esi
pop ebp
mov eax, 0x25
pop ebx
mov ecx, dword [esp + 0x54]
xor ecx, esp
call fcn.004c22ab
add esp, 0x58
ret
cmp byte [eax + 1], 0
je 0x422e69
mov eax, dword [ebx + 0x8690]
or eax, dword [ebx + 0x8694]
je 0x422ead
push 0x4de52c
push dword [ebp]
call fcn.004c4d0d
mov edx, eax
add esp, 8
mov dword [esp + 0x10], edx
jmp 0x422f0e
mov eax, dword [edx]
push dword [eax + 0x368]
push 0x8301
push dword [ebp]
call fcn.004c833c
add esp, 0xc
test eax, eax
jns 0x422ef2
push dword [ebp]
push str.Cant_open__s_for_writing
push ebx
call fcn.0040fad0
add esp, 0xc
mov eax, 0x17
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x54]
xor ecx, esp
call fcn.004c22ab
add esp, 0x58
ret
push eax
call fcn.004cd960
push 0x4de54c
push dword [ebp]
call fcn.004c4d0d
add esp, 0xc
mov edx, eax
mov dword [esp + 0x10], eax
test edx, edx
je 0x422ec9
mov ecx, dword [ebx + 0x1e8]
mov eax, dword [ebx + 0x1ec]
cmp ecx, 0xffffffff
jne 0x422f27
cmp eax, ecx
je 0x422f36
push eax
push ecx
push ebx
call fcn.00419ad0
mov edx, dword [esp + 0x1c]
add esp, 0xc
cmp dword [ebx + 0x8694], 0
jg 0x422fab
jl 0x422f4a
cmp dword [ebx + 0x8690], 0
jae 0x422fab
lea eax, [esp + 0x2c]
push eax
push edx
call fcn.004c8752
add esp, 4
push eax
call fcn.004c6dc8
add esp, 8
test eax, eax
je 0x422f97
push dword [esp + 0x10]
call fcn.004c4a93
push dword [ebp]
push str.Cant_get_the_size_of__s
push ebx
call fcn.0040fad0
add esp, 0x10
mov eax, 0x17
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x54]
xor ecx, esp
call fcn.004c22ab
add esp, 0x58
ret
mov eax, dword [esp + 0x44]
mov dword [ebx + 0x8690], eax
mov eax, dword [esp + 0x48]
mov dword [ebx + 0x8694], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
jmp 0x422fc0
lea eax, [esp + 0x28]
push eax
push 0x4000
push dword [esp + 0x20]
call fcn.00406a20
mov ebp, eax
add esp, 0xc
mov dword [esp + 0x20], ebp
test ebp, ebp
jne 0x4230c8
mov ebp, dword [esp + 0x28]
test ebp, ebp
jle 0x4230ae
mov ecx, dword [ebx + 0x8690]
mov edx, dword [ebx + 0x8694]
mov eax, ecx
or eax, edx
je 0x423020
xor eax, eax
cmp eax, edx
jg 0x42307e
jl 0x42300e
cmp ebp, ecx
ja 0x42307e
sub ecx, ebp
sbb edx, eax
mov dword [ebx + 0x8690], ecx
mov dword [ebx + 0x8694], edx
xor ebp, ebp
lea ecx, [ebx + 0x57c]
push dword [esp + 0x10]
push ebp
push 1
push ecx
call fcn.004c609b
add esp, 0x10
cmp eax, ebp
jne 0x4230a7
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ecx, ebp
adc eax, 0
push eax
push ecx
push ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], eax
call fcn.00419ab0
push dword [esp + 0x24]
call fcn.00419c80
add esp, 0x10
test eax, eax
jne 0x4230a0
push edi
push esi
push ebx
call fcn.004198d0
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x422fc0
jmp 0x4230c8
mov eax, ecx
lea ecx, [ebx + 0x57c]
add ecx, eax
sub ebp, eax
mov dword [ebx + 0x8690], 0
mov dword [ebx + 0x8694], 0
jmp 0x423026
mov ebp, 0x2a
jmp 0x4230c8
mov ebp, 0x37
jmp 0x4230c8
push dword [esp + 0x18]
call fcn.00419c80
mov ebp, dword [esp + 0x24]
add esp, 4
mov ecx, 0x2a
test eax, eax
cmovne ebp, ecx
push dword [esp + 0x10]
call fcn.004c4a93
mov ecx, dword [esp + 0x68]
add esp, 4
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004c22ab
add esp, 0x58
ret