Function at 0x403690
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x42df3b
mov eax, dword fs:[0]
push eax
sub esp, 0x46c
mov eax, dword [0x439300]
xor eax, esp
mov dword [esp + 0x464], eax
push esi
push edi
mov eax, dword [0x439300]
xor eax, esp
push eax
lea eax, [esp + 0x478]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
xor ecx, ecx
cmp eax, 0xa
setge cl
cmp eax, 5
mov edi, ecx
jge 0x4036eb
mov eax, 6
jmp 0x40393c
cmp eax, 0xa
jge 0x403731
mov edx, dword [0x433d80]
mov ecx, dword [0x433d84]
mov dword [esp + 0x38], edx
mov edx, dword [0x433d88]
mov dword [esp + 0x3c], ecx
mov cl, byte [0x433d8c]
cmp eax, 5
mov dword [esp + 0x40], edx
mov byte [esp + 0x44], cl
mov eax, str.0500
je 0x403727
mov eax, 0x433d30
mov edx, dword [eax]
mov dword [esp + 0x46], edx
xor esi, esi
jmp 0x403767
xor esi, esi
xor eax, eax
jmp 0x403740
movzx ecx, word [eax + str.PowerBuilder]
mov word [esp + eax + 0x38], cx
add eax, 2
cmp cx, si
jne 0x403740
mov eax, dword [str.0600]
mov ecx, dword [0x433db8]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
push esi
mov dword [esp + 0x38], 0x2a524448
call fcn.0041524d
add esp, 4
cmp edi, esi
je 0x403794
mov dword [esp + 0x5c], eax
mov dword [esp + 0x262], esi
mov dword [esp + 0x266], esi
lea eax, [esp + 0x62]
jmp 0x4037aa
mov dword [esp + 0x4a], eax
mov dword [esp + 0x150], esi
mov dword [esp + 0x154], esi
lea eax, [esp + 0x50]
mov edx, edi
neg edx
sbb edx, edx
and edx, 0x100
add edx, 0x100
push edx
push esi
push eax
call fcn.00416090
add esp, 0xc
cmp edi, esi
je 0x4037de
xor eax, eax
mov ecx, 1
mov word [esp + 0x52], ax
mov word [esp + 0x60], cx
jmp 0x4037ea
xor edx, edx
mov byte [esp + 0x45], 0
mov word [esp + 0x4e], dx
mov eax, edi
neg eax
sbb eax, eax
push ebx
and eax, 0x112
push 1
add eax, 0x124
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.00414d6d
add esp, 0x10
cmp eax, 1
jne 0x40392e
mov esi, edi
neg esi
sbb esi, esi
push 0x1f8
and esi, 0x200
lea edx, [esp + 0x278]
push 0
add esi, 0x200
add esi, dword [ebp + 0xc]
push edx
mov dword [esp + 0x278], 0x2a455246
mov dword [esp + 0x27c], 0
call fcn.00416090
add esp, 0xc
mov byte [esp + 0x274], 0xff
test edi, edi
je 0x40386a
mov byte [esp + 0x275], 0x80
push 0
push esi
push ebx
call fcn.00415084
push ebx
push 1
lea eax, [esp + 0x280]
push 0x200
push eax
call fcn.00414d6d
add esp, 0x1c
cmp eax, 1
jne 0x40392e
xor eax, eax
push ebx
push 1
lea edx, [esp + 0x1c]
mov ecx, 0xbe0
push 0x20
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], eax
push edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x24], 0x2a444f4e
mov word [esp + 0x34], cx
call fcn.00414d6d
add esp, 0x10
cmp eax, 1
jne 0x40392e
push 0xbe2
call fcn.004152b9
mov esi, eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], 0xbe0
push 0xbe0
push 0
push esi
call fcn.00416090
push ebx
push 1
push 0xbe0
push esi
call fcn.00414d6d
add esp, 0x20
mov dword [esp + 0x480], 0xffffffff
lea esi, [esp + 0xc]
cmp eax, 1
je 0x403935
call fcn.00401000
mov eax, 5
jmp 0x40393c
call fcn.00401000
xor eax, eax
mov ecx, dword [esp + 0x478]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x464]
xor ecx, esp
call fcn.0041389c
mov esp, ebp
pop ebp
ret