Function at 0x43c2a0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x4340
call fcn.0043dfd0
mov eax, dword [0x478584]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 0x14]
push edi
mov edi, ecx
mov dword [ebp - 0x4340], ebx
cmp esi, 3
je 0x43c2f7
cmp esi, 2
je 0x43c3b2
cmp esi, 1
je 0x43c3b2
pop edi
pop esi
mov eax, 0x10000
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043dfbe
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [edi + 4]
mov esi, dword [ebp + 8]
cmp esi, eax
je 0x43c354
cmp eax, 0xffffffff
je 0x43c311
mov eax, dword [edi]
push eax
call fcn.0043a120
add esp, 4
mov eax, dword [edi]
mov dword [edi + 4], 0xffffffff
cmp esi, dword [eax + 4]
jge 0x43c2df
cmp esi, dword [eax + 0x10]
jge 0x43c32d
push eax
call fcn.00439d10
add esp, 4
mov ecx, dword [edi]
cmp dword [ecx + 0x10], esi
jge 0x43c346
mov edx, dword [edi]
push edx
call fcn.00439d60
mov eax, dword [edi]
add esp, 4
cmp dword [eax + 0x10], esi
jl 0x43c334
mov ecx, dword [edi]
push ecx
call fcn.0043bf30
add esp, 4
mov dword [edi + 4], esi
mov edx, dword [ebp + 0x10]
mov eax, dword [edi]
push edx
push ebx
push eax
call fcn.0043c040
mov esi, eax
add esp, 0xc
test esi, esi
jle 0x43c382
pop edi
pop esi
mov eax, 0x600
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043dfbe
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [edi]
push ecx
call fcn.0043a120
add esp, 4
mov eax, esi
mov dword [edi + 4], 0xffffffff
neg eax
pop edi
sbb eax, eax
pop esi
and eax, 0x5000000
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043dfbe
mov esp, ebp
pop ebp
ret 0x10
or ebx, 0xffffffff
cmp dword [edi + 4], ebx
je 0x43c3c5
mov edx, dword [edi]
push edx
call fcn.0043a120
add esp, 4
mov eax, dword [edi]
mov dword [edi + 4], ebx
mov ebx, dword [ebp + 8]
cmp ebx, dword [eax + 4]
jge 0x43c2df
cmp ebx, dword [eax + 0x10]
jge 0x43c3e4
push eax
call fcn.00439d10
add esp, 4
mov eax, dword [edi]
cmp dword [eax + 0x10], ebx
jge 0x43c447
jmp 0x43c3f0
mov esi, dword [edi]
test esi, esi
je 0x43c43d
cmp dword [esi + 0x18], 0
je 0x43c43d
mov eax, dword [esi + 0x10]
inc eax
cmp eax, dword [esi + 4]
je 0x43c43d
mov ecx, dword [esi + 0x50]
add ecx, dword [esi + 0x4c]
mov edx, dword [esi + 0x48]
push 0
push 0
push 0
push 0
push 0
lea ecx, [ecx + edx + 0x2e]
add dword [esi + 0x14], ecx
push 0
lea edx, [esi + 0x78]
mov dword [esi + 0x10], eax
push edx
lea eax, [esi + 0x28]
push eax
push esi
call fcn.00439970
add esp, 0x24
neg eax
sbb eax, eax
inc eax
mov dword [esi + 0x18], eax
mov ecx, dword [edi]
cmp dword [ecx + 0x10], ebx
jl 0x43c3f0
mov esi, dword [ebp + 0x14]
lea edx, [ebp - 0x4338]
push edx
push ebx
mov ecx, edi
call fcn.0043a230
test byte [ebp - 0x4230], 0x10
je 0x43c4c4
cmp esi, 1
je 0x43c4af
push 0x206
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.0043e210
add esp, 0xc
push 0x103
lea ecx, [ebp - 0x20c]
push ecx
push 0xffffffffffffffff
lea edx, [ebp - 0x4334]
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp - 0x20c]
push eax
add edi, 0x138
push edi
call fcn.0043a750
add esp, 8
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043dfbe
mov esp, ebp
pop ebp
ret 0x10
cmp esi, 1
jne 0x43c4d4
mov esi, dword [ebp - 0x4340]
jmp 0x43c5d0
mov ebx, dword [ebp - 0x4340]
movzx eax, word [ebx]
mov esi, ebx
mov ecx, ebx
test ax, ax
je 0x43c5b3
lea ebx, [ebx]
cmp ax, 0x2f
je 0x43c4fc
cmp ax, 0x5c
jne 0x43c4ff
lea esi, [ecx + 2]
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x43c4f0
cmp esi, ebx
je 0x43c5b3
lea edx, [ebp - 0x20c]
mov eax, ebx
sub edx, ebx
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x43c520
sub esi, ebx
sar esi, 1
xor ecx, ecx
mov word [ebp + esi*2 - 0x20e], cx
mov ax, word [ebp - 0x20c]
cmp ax, 0x2f
je 0x43c55e
cmp ax, 0x5c
je 0x43c55e
cmp word [ebp - 0x20a], 0x3a
je 0x43c55e
xor bl, bl
jmp 0x43c560
mov bl, 1
lea edx, [ebp - 0x20c]
push 0x4640a4
push edx
call fcn.0043db05
mov esi, eax
lea eax, [ebp - 0x20c]
push 0x46409c
push eax
call fcn.0043db05
add esp, 0x10
test eax, eax
setne cl
test esi, esi
setne dl
or cl, dl
or cl, bl
jne 0x43c5ad
lea eax, [ebp - 0x20c]
push eax
lea ecx, [edi + 0x138]
push ecx
call fcn.0043a750
add esp, 8
mov ebx, dword [ebp - 0x4340]
mov edx, dword [ebp - 0x4230]
push 0
push edx
push 2
push 0
push 0
push 0x40000000
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x43c5ed
pop edi
pop esi
mov eax, 0x200
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043dfbe
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [edi]
push eax
call fcn.0043bf30
mov edx, dword [edi]
push 0x4000
lea ecx, [ebp - 0x420c]
push ecx
push edx
mov byte [ebp - 0x4339], 0
call fcn.0043c040
add esp, 0x10
test eax, eax
js 0x43c652
mov ebx, dword [sym.imp.KERNEL32.dll_WriteFile]
je 0x43c65d
push 0
lea ecx, [ebp - 0x4340]
push ecx
push eax
lea edx, [ebp - 0x420c]
push edx
push esi
call ebx
test eax, eax
je 0x43c656
mov ecx, dword [edi]
push 0x4000
lea eax, [ebp - 0x420c]
push eax
push ecx
call fcn.0043c040
add esp, 0xc
test eax, eax
jns 0x43c61d
mov bl, 1
jmp 0x43c663
mov byte [ebp - 0x4339], 1
mov bl, byte [ebp - 0x4339]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileType]
cmp eax, 1
jne 0x43c68f
test bl, bl
jne 0x43c68f
lea edx, [ebp - 0x421c]
push edx
lea eax, [ebp - 0x422c]
push eax
lea ecx, [ebp - 0x4224]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
cmp dword [ebp + 0x14], 1
je 0x43c69c
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [edi]
push edx
call fcn.0043a120
mov ecx, dword [ebp - 4]
add esp, 4
movzx eax, bl
neg eax
pop edi
sbb eax, eax
pop esi
xor ecx, ebp
and eax, 0x400
pop ebx
call fcn.0043dfbe
mov esp, ebp
pop ebp
ret 0x10