Function at 0x45d970
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x6a5558
mov eax, dword fs:[0]
push eax
sub esp, 0x40
mov eax, dword [0x778400]
xor eax, esp
mov dword [esp + 0x38], eax
push ebx
push esi
push edi
mov eax, dword [0x778400]
xor eax, esp
push eax
lea eax, [esp + 0x50]
mov dword fs:[0], eax
mov edi, ecx
call fcn.00426d20
mov dword [esp + 0x24], eax
lea eax, [ebp + 8]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.00427280
add esp, 8
test al, al
je 0x45d9d8
lea eax, [ebp + 8]
push eax
call fcn.00426d30
add esp, 4
jmp 0x45dc27
mov ecx, edi
call fcn.00427220
test eax, eax
je 0x45da16
mov ecx, edi
call fcn.0041ca40
mov ecx, edi
mov esi, eax
call fcn.00427220
cmp eax, esi
jae 0x45da16
mov ecx, edi
call fcn.0041cd80
mov esi, eax
lea eax, [ebp + 8]
push eax
call fcn.00427090
mov byte [esi], al
add esp, 4
mov eax, dword [ebp + 8]
jmp 0x45dc27
cmp dword [edi + 0x50], 0
jne 0x45da26
call fcn.00426d20
jmp 0x45dc27
mov ecx, edi
call fcn.0041c9a0
lea ecx, [edi + 0x44]
cmp eax, ecx
jne 0x45da43
push dword [edi + 0x3c]
mov eax, dword [edi + 0x38]
mov ecx, edi
push eax
push eax
call fcn.0041ca00
cmp dword [edi + 0x40], 0
lea eax, [ebp + 8]
push eax
jne 0x45da6f
mov esi, dword [edi + 0x50]
call fcn.00427090
movsx eax, al
push esi
push eax
call fcn.0067173e
add esp, 0xc
cmp eax, 0xffffffff
je 0x45da1c
mov eax, dword [ebp + 8]
jmp 0x45dc27
call fcn.00427090
add esp, 4
mov byte [esp + 0x2f], al
lea ecx, [esp + 0x13]
call fcn.00414210
push eax
lea ecx, [esp + 0x34]
call fcn.00419370
push 0
push 0
lea ecx, [esp + 0x38]
call fcn.00419e10
push 0
push 8
lea ecx, [esp + 0x38]
call fcn.00419ba0
test al, al
je 0x45dac6
push 0
push 8
push 0
lea ecx, [esp + 0x3c]
call fcn.00426370
push 8
lea ecx, [esp + 0x34]
call fcn.00419dd0
lea eax, [esp + 0x14]
mov dword [esp + 0x58], 0
push eax
lea ecx, [esp + 0x34]
call fcn.004187f0
mov ecx, eax
call fcn.00416e70
lea ecx, [esp + 0x30]
mov esi, eax
call fcn.004188e0
add esi, eax
lea ecx, [esp + 0x30]
lea eax, [esp + 0x18]
push eax
call fcn.004187f0
mov ecx, eax
call fcn.00416e70
mov ecx, dword [edi + 0x40]
lea ebx, [edi + 0x48]
mov edx, dword [ecx]
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [edi + 0x40]
push esi
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x43]
push eax
push ebx
call dword [edx + 0x1c]
test eax, eax
js 0x45dc15
cmp eax, 1
jg 0x45dc47
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x34]
call fcn.004187f0
mov ecx, eax
call fcn.00416e70
mov esi, dword [esp + 0x28]
sub esi, eax
je 0x45db84
push dword [edi + 0x50]
lea eax, [esp + 0x24]
push esi
push 1
push eax
lea ecx, [esp + 0x40]
call fcn.004187f0
mov ecx, eax
call fcn.00416e70
push eax
call fcn.00673e65
add esp, 0x10
cmp esi, eax
jne 0x45dc15
lea eax, [esp + 0x2f]
mov byte [edi + 0x45], 1
cmp dword [esp + 0x24], eax
jne 0x45dc62
test esi, esi
jne 0x45dbb4
lea ecx, [esp + 0x30]
call fcn.004188e0
cmp eax, 0x20
jae 0x45dc15
push esi
push 8
lea ecx, [esp + 0x38]
call fcn.0041dad0
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x34]
call fcn.004187f0
mov ecx, eax
call fcn.00416e70
lea ecx, [esp + 0x30]
mov esi, eax
call fcn.004188e0
add esi, eax
lea ecx, [esp + 0x30]
lea eax, [esp + 0x18]
push eax
call fcn.004187f0
mov ecx, eax
call fcn.00416e70
mov ecx, dword [edi + 0x40]
lea ebx, [esp + 0x28]
push ebx
push esi
push eax
mov edx, dword [ecx]
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x43]
push eax
lea ebx, [edi + 0x48]
push ebx
call dword [edx + 0x1c]
test eax, eax
jns 0x45db32
call fcn.00426d20
mov esi, eax
lea ecx, [esp + 0x30]
call fcn.00419eb0
mov eax, esi
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.0066c98d
mov esp, ebp
pop ebp
ret 4
cmp eax, 3
jne 0x45dc15
push dword [edi + 0x50]
movsx eax, byte [esp + 0x33]
push eax
call fcn.0067173e
add esp, 8
cmp eax, 0xffffffff
je 0x45dc15
mov esi, dword [ebp + 8]
jmp 0x45dc1c