Function at 0x43fb30
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x650
mov eax, dword [0x4bdc98]
xor eax, esp
push ebx
mov dword [esp + 0x650], eax
mov eax, dword [esp + 0x658]
xor ebx, ebx
cmp eax, ebx
push esi
mov esi, dword [esp + 0x664]
jne 0x43fb64
mov eax, 0x10000
jmp 0x43fe23
cmp dword [eax], 1
je 0x43fb73
mov eax, 0x80000
jmp 0x43fe23
push ebp
push edi
mov edi, dword [eax + 4]
mov eax, dword [edi + 4]
or ebp, 0xffffffff
cmp eax, ebp
je 0x43fb8d
mov eax, dword [edi]
push eax
call fcn.0043d2f0
add esp, 4
mov eax, dword [edi]
mov dword [edi + 4], ebp
mov ebp, dword [esp + 0x668]
cmp ebp, dword [eax + 4]
jl 0x43fba8
mov eax, 0x10000
jmp 0x43fe21
cmp ebp, dword [eax + 0x10]
jge 0x43fbb6
push eax
call fcn.0043d030
add esp, 4
mov ecx, dword [edi]
cmp dword [ecx + 0x10], ebp
jge 0x43fbd4
lea ecx, [ecx]
mov edx, dword [edi]
push edx
call fcn.0043d080
mov eax, dword [edi]
mov ecx, dword [eax + 0x10]
add esp, 4
cmp ecx, ebp
jl 0x43fbc0
lea ecx, [esp + 0x1c]
push ecx
push ebp
mov ecx, edi
call fcn.0043d4d0
test byte [esp + 0x228], 0x10
je 0x43fc2e
mov ax, word [esi]
cmp ax, 0x2f
je 0x43fc06
cmp ax, 0x5c
je 0x43fc06
cmp ax, bx
je 0x43fc17
cmp word [esi + 2], 0x3a
jne 0x43fc17
push esi
push ebx
call fcn.0043da20
add esp, 8
xor eax, eax
jmp 0x43fe21
push esi
add edi, 0x244
push edi
call fcn.0043da20
add esp, 8
xor eax, eax
jmp 0x43fe21
xor eax, eax
mov ax, word [esi]
cmp ax, bx
mov ebp, esi
mov ecx, esi
je 0x43fc5b
lea esp, [esp]
cmp ax, 0x2f
je 0x43fc4c
cmp ax, 0x5c
jne 0x43fc4f
lea ebp, [ecx + 2]
mov ax, word [ecx + 2]
add ecx, 2
cmp ax, bx
jne 0x43fc40
lea edx, [esp + 0x24c]
push esi
push edx
call dword [sym.imp.MSVCR71.dll_wcscpy]
add esp, 8
cmp ebp, esi
jne 0x43fcde
mov word [esp + 0x24c], bx
push ebp
lea ecx, [esp + 0x250]
push ecx
lea esi, [edi + 0x244]
push esi
lea edx, [esp + 0x460]
push str._s_s_s
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [esp + 0x260]
push eax
push esi
call fcn.0043da20
add esp, 0x1c
mov ecx, dword [esp + 0x228]
push ebx
push ecx
push 2
push ebx
push ebx
push 0x40000000
lea edx, [esp + 0x46c]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x43fd4a
mov eax, 0x200
jmp 0x43fe21
mov eax, ebp
sub eax, esi
sar eax, 1
mov word [esp + eax*2 + 0x24c], bx
mov ax, word [esp + 0x24c]
cmp ax, 0x2f
je 0x43fd18
cmp ax, 0x5c
je 0x43fd18
cmp ax, bx
je 0x43fc79
cmp word [esp + 0x24e], 0x3a
jne 0x43fc79
push ebp
lea ecx, [esp + 0x250]
push ecx
lea edx, [esp + 0x45c]
push str._s_s
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [esp + 0x25c]
push eax
push ebx
call fcn.0043da20
add esp, 0x18
jmp 0x43fcad
mov eax, dword [edi + 0x23c]
mov ecx, dword [edi]
push eax
push ecx
call fcn.0043f500
mov eax, dword [edi + 0x240]
add esp, 8
cmp eax, ebx
jne 0x43fd79
push 0x4000
call sub.MFC71U.DLL_CWordArray::CWordArray
add esp, 4
mov dword [edi + 0x240], eax
mov dword [esp + 0x14], ebx
mov ebx, dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [edi + 0x240]
mov ecx, dword [edi]
lea edx, [esp + 0x13]
push edx
push 0x4000
push eax
push ecx
call fcn.0043f690
mov esi, eax
add esp, 0x10
cmp esi, 0xffffff96
je 0x43fdd8
test esi, esi
jl 0x43fdce
jle 0x43fdc2
mov eax, dword [edi + 0x240]
push 0
lea edx, [esp + 0x1c]
push edx
push esi
push eax
push ebp
call ebx
test eax, eax
je 0x43fde2
mov al, byte [esp + 0x13]
test al, al
jne 0x43fdec
test esi, esi
jne 0x43fd83
mov dword [esp + 0x14], 0x5000000
jmp 0x43fe0b
mov dword [esp + 0x14], 0x1000
jmp 0x43fe0b
mov dword [esp + 0x14], 0x400
jmp 0x43fe0b
lea ecx, [esp + 0x23c]
push ecx
lea edx, [esp + 0x230]
push edx
lea eax, [esp + 0x23c]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [edi]
push ecx
call fcn.0043d2f0
mov eax, dword [esp + 0x18]
add esp, 4
pop edi
pop ebp
mov ecx, dword [esp + 0x654]
pop esi
pop ebx
xor ecx, esp
mov dword [0x4c07d4], eax
call fcn.00491e29
add esp, 0x650
ret