Function at 0x43c1e0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4ca108
mov eax, dword fs:[0]
push eax
sub esp, 0x38
mov eax, dword [0x4ffeb0]
xor eax, esp
mov dword [esp + 0x30], eax
push ebx
push esi
push edi
mov eax, dword [0x4ffeb0]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x18], edi
call fcn.004160b0
mov dword [esp + 0x14], eax
lea eax, [ebp + 8]
push eax
lea ecx, [esp + 0x18]
push ecx
call fcn.00416090
add esp, 8
test al, al
je 0x43c24c
lea edx, [ebp + 8]
push edx
call fcn.004160c0
add esp, 4
jmp 0x43c597
mov ecx, edi
call fcn.00417b80
test eax, eax
je 0x43c28a
mov ecx, edi
call fcn.00417c40
mov ecx, edi
mov esi, eax
call fcn.00417b80
cmp eax, esi
jae 0x43c28a
mov ecx, edi
call fcn.00417da0
mov esi, eax
lea eax, [ebp + 8]
push eax
call fcn.00416070
mov byte [esi], al
mov eax, dword [ebp + 8]
add esp, 4
jmp 0x43c597
mov esi, dword [edi + 0x4c]
test esi, esi
jne 0x43c29b
call fcn.004160b0
jmp 0x43c597
cmp dword [edi + 0x3c], 0
jne 0x43c2c4
lea ecx, [ebp + 8]
push ecx
call fcn.00416070
movsx edx, al
push esi
push edx
call fcn.004a7c72
add esp, 0xc
cmp eax, 0xffffffff
je 0x43c291
mov eax, dword [ebp + 8]
jmp 0x43c597
lea eax, [ebp + 8]
push eax
call fcn.00416070
add esp, 4
push 0
push 8
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1b], al
call fcn.004165b0
mov dword [esp + 0x50], 0
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
cmp edx, 0x10
jb 0x43c53f
mov ebx, eax
mov dword [esp + 0x14], ebx
test eax, eax
je 0x43c328
mov ecx, eax
cmp edx, 0x10
jae 0x43c30f
lea ecx, [esp + 0x28]
cmp ecx, ebx
ja 0x43c328
mov ecx, eax
cmp edx, 0x10
jae 0x43c31e
lea ecx, [esp + 0x28]
mov esi, dword [esp + 0x38]
add ecx, esi
cmp ebx, ecx
jbe 0x43c335
call fcn.004a0da7
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x24]
cmp ecx, 0xfffffffc
je 0x43c360
mov ecx, eax
cmp edx, 0x10
jae 0x43c349
lea ecx, [esp + 0x28]
mov esi, dword [esp + 0x38]
add ecx, esi
cmp ebx, ecx
jb 0x43c360
call fcn.004a0da7
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x38]
cmp edx, 0x10
jb 0x43c54c
mov esi, eax
test eax, eax
je 0x43c39b
mov ecx, eax
cmp edx, 0x10
jae 0x43c37e
lea ecx, [esp + 0x28]
cmp ecx, esi
ja 0x43c39b
mov ecx, eax
cmp edx, 0x10
jae 0x43c38d
lea ecx, [esp + 0x28]
mov ebx, dword [esp + 0x38]
add ecx, ebx
mov ebx, dword [esp + 0x14]
cmp esi, ecx
jbe 0x43c3a8
call fcn.004a0da7
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x24]
cmp ecx, 0xfffffffc
je 0x43c3c9
cmp edx, 0x10
jae 0x43c3ba
lea eax, [esp + 0x28]
mov edx, dword [esp + 0x38]
add eax, edx
cmp esi, eax
jb 0x43c3c9
call fcn.004a0da7
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x3c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x14]
lea eax, [esp + 0x1c]
push eax
add ebx, edi
push ebx
push esi
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x27]
push eax
mov eax, dword [esp + 0x30]
add eax, 0x44
push eax
call edx
test eax, eax
jl 0x43c585
cmp eax, 1
jg 0x43c567
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
cmp edx, 0x10
jb 0x43c555
mov esi, eax
test eax, eax
je 0x43c443
mov ecx, eax
cmp edx, 0x10
jae 0x43c42a
lea ecx, [esp + 0x28]
cmp ecx, esi
ja 0x43c443
mov ecx, eax
cmp edx, 0x10
jae 0x43c439
lea ecx, [esp + 0x28]
mov edi, dword [esp + 0x38]
add ecx, edi
cmp esi, ecx
jbe 0x43c450
call fcn.004a0da7
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x24]
cmp ecx, 0xfffffffc
je 0x43c47b
mov ecx, eax
cmp edx, 0x10
jae 0x43c464
lea ecx, [esp + 0x28]
mov edi, dword [esp + 0x38]
add ecx, edi
cmp esi, ecx
jb 0x43c47b
call fcn.004a0da7
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
sub edi, esi
je 0x43c50c
cmp edx, 0x10
jb 0x43c55e
mov esi, eax
test eax, eax
je 0x43c4ba
mov ecx, eax
cmp edx, 0x10
jae 0x43c4a1
lea ecx, [esp + 0x28]
cmp ecx, esi
ja 0x43c4ba
mov ecx, eax
cmp edx, 0x10
jae 0x43c4b0
lea ecx, [esp + 0x28]
mov ebx, dword [esp + 0x38]
add ecx, ebx
cmp esi, ecx
jbe 0x43c4c7
call fcn.004a0da7
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x24]
cmp ecx, 0xfffffffc
je 0x43c4e8
cmp edx, 0x10
jae 0x43c4d9
lea eax, [esp + 0x28]
mov edx, dword [esp + 0x38]
add eax, edx
cmp esi, eax
jb 0x43c4e8
call fcn.004a0da7
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x4c]
push ecx
push edi
push 1
push esi
call fcn.004a7647
add esp, 0x10
cmp edi, eax
jne 0x43c585
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov byte [ecx + 0x41], 1
lea ecx, [esp + 0x13]
cmp dword [esp + 0x20], ecx
jne 0x43c580
test edi, edi
ja 0x43c2f1
cmp dword [esp + 0x38], 0x20
jae 0x43c585
push 0
push 8
lea ecx, [esp + 0x2c]
call fcn.00409500
jmp 0x43c2e9
lea ebx, [esp + 0x28]
mov dword [esp + 0x14], ebx
jmp 0x43c304
lea esi, [esp + 0x28]
jmp 0x43c373
lea esi, [esp + 0x28]
jmp 0x43c41f
lea esi, [esp + 0x28]
jmp 0x43c496
cmp eax, 3
jne 0x43c585
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x4c]
mov cl, byte [esp + 0x13]
call fcn.0043b730
test al, al
je 0x43c585
mov esi, dword [ebp + 8]
jmp 0x43c58c
call fcn.004160b0
mov esi, eax
lea ecx, [esp + 0x24]
call fcn.004059e0
mov eax, esi
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.004a0e91
mov esp, ebp
pop ebp
ret 4