Function at 0x42f150
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x9c
mov eax, dword [esp + 0xb4]
mov ebp, dword [esp + 0xbc]
mov esi, dword [esp + 0xb0]
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0x20], eax
mov edi, dword [ebp]
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x28], eax
mov eax, dword [0x5398d0]
mov dword [esp + 0x8c], eax
xor eax, eax
cmp edi, 7
ja case.0x42f19f.156
jmp dword [edi*4 + 0x4d1448]
cmp edi, 1
je 0x42f5a0
mov dword [esp + 4], esi
mov dword [esp], 0x5b
call sub.msvcrt.dll_putc
mov eax, dword [ebp + 0x4c]
cmp dword [ebp + 0x48], eax
je 0x42f556
movzx eax, bl
mov dword [esp + 0x30], eax
test bl, bl
je 0x42f1ea
cmp dword [ebp], 1
je 0x42f4b0
mov eax, dword [esp + 0x28]
cmp edi, 1
mov ecx, 0x4d1405
sete byte [esp + 0x27]
add eax, 1
mov dword [esp + 0x2c], eax
add eax, eax
cmp byte [esp + 0x20], 0
mov dword [esp + 0x38], eax
mov eax, 0x4d1407
cmovne eax, ecx
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0x48]
cmp dword [ebp + 0x4c], eax
je 0x42f548
cmp byte [esp + 0x20], 0
jne 0x42f538
xor ebx, ebx
xor edi, edi
mov ecx, dword [eax + edi*4]
mov byte [esp + 0x26], 0
test ecx, ecx
je 0x42f2f6
mov eax, dword [ecx + 0x34]
test eax, eax
setne al
cmp al, byte [esp + 0x27]
jne 0x42f5ef
cmp byte [esp + 0x27], 0
je 0x42f284
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x34], ecx
mov dword [esp + 0xc], eax
mov eax, dword [ecx + 0x30]
mov dword [esp + 4], str.__s_:_s
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00499f70
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xc], ecx
mov dword [esp], esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
movzx eax, byte [esp + 0x20]
mov dword [esp + 4], eax
call fcn.0042f150
cmp byte [esp + 0x26], 0
je 0x42f328
mov dword [esp], ebx
call fcn.004a9770
mov ebx, eax
lea eax, [ebp + 0x58]
cmp ebx, eax
je 0x42f548
mov dword [esp + 4], esi
mov dword [esp], 0x2c
call sub.msvcrt.dll_putc
cmp byte [esp + 0x20], 0
jne 0x42f590
mov ecx, dword [ebx + 0x28]
mov eax, dword [ebp + 0x48]
mov byte [esp + 0x26], 1
mov ecx, dword [eax + ecx*4]
test ecx, ecx
jne 0x42f244
cmp byte [esp + 0x27], 0
jne 0x42f612
mov dword [esp + 0xc], esi
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], str.null
call sub.msvcrt.dll_fwrite
cmp byte [esp + 0x26], 0
jne 0x42f2b0
mov eax, dword [ebp + 0x4c]
sub eax, dword [ebp + 0x48]
add edi, 1
sar eax, 2
cmp edi, eax
jae 0x42f548
mov dword [esp + 4], esi
mov dword [esp], 0x2c
call sub.msvcrt.dll_putc
cmp byte [esp + 0x20], 0
je 0x42f52c
jmp 0x42f501
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov edx, 0x4d13fa
or eax, ecx
mov eax, 0x4d13ff
cmovne eax, edx
mov edx, dword [esp + 0x8c]
sub edx, dword [0x5398d0]
jne 0x42f5fe
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb0], eax
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
jmp sub.msvcrt.dll_fputs
mov eax, dword [esp + 0x8c]
sub eax, dword [0x5398d0]
jne 0x42f5fe
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov dword [esp + 0xb4], str._lld
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], edx
mov dword [esp + 0xb0], esi
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00499f70
mov eax, dword [esp + 0x8c]
sub eax, dword [0x5398d0]
jne 0x42f5fe
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov dword [esp + 0xb4], 0x4d1442
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], edx
jmp 0x42f3da
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebx
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [esp + 4], 0x40
mov dword [esp + 8], eax
lea eax, [esp + 0x4c]
mov dword [esp + 0xc], edx
mov dword [esp], eax
call fcn.0045b6a0
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_fputs
mov eax, dword [esp + 0x8c]
sub eax, dword [0x5398d0]
jne 0x42f5fe
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x8c]
sub eax, dword [0x5398d0]
jne 0x42f5fe
mov edx, dword [ebp + 0x18]
add esp, 0x9c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0042eb20
mov eax, dword [esp + 0x28]
cmp edi, 1
mov ecx, 0x4d1405
mov ebx, dword [ebp + 0x60]
sete byte [esp + 0x27]
add eax, 1
mov dword [esp + 0x2c], eax
add eax, eax
cmp byte [esp + 0x20], 0
mov dword [esp + 0x38], eax
mov eax, 0x4d1407
cmovne eax, ecx
mov dword [esp + 0x3c], eax
lea eax, [ebp + 0x58]
cmp ebx, eax
je 0x42f548
xor edi, edi
cmp byte [esp + 0x20], 0
je 0x42f2e0
movzx eax, byte [esp + 0x20]
xor edi, edi
mov byte [esp + 0x26], al
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], 0x4d1407
mov dword [esp + 4], str._n_s
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00499f70
cmp byte [esp + 0x26], 0
jne 0x42f2e0
mov eax, dword [ebp + 0x48]
jmp 0x42f234
mov byte [esp + 0x26], 0
xor ebx, ebx
xor edi, edi
jmp 0x42f501
cmp byte [esp + 0x20], 0
jne 0x42f5c8
cmp byte [esp + 0x27], 0
jne 0x42f5bc
mov eax, 0x5d
mov edx, dword [esp + 0x8c]
sub edx, dword [0x5398d0]
jne 0x42f5fe
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb0], eax
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
jmp sub.msvcrt.dll_putc
movzx eax, byte [esp + 0x20]
mov byte [esp + 0x26], al
jmp 0x42f501
mov dword [esp + 4], esi
mov dword [esp], 0x7b
call sub.msvcrt.dll_putc
mov eax, dword [ebp + 0x48]
cmp dword [ebp + 0x4c], eax
jne 0x42f1d5
mov eax, 0x7d
jmp 0x42f55b
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], 0x4d1407
mov dword [esp + 4], str._n_s
add eax, eax
mov dword [esp], esi
mov dword [esp + 8], eax
call fcn.00499f70
jmp 0x42f54f
mov edx, str.is_obj___p2__key.empty__
mov eax, 0x217
call fcn.0042e7d0
call fcn.00485600
mov edx, 0x4d13ff
mov eax, 0x23c
call fcn.0042e7d0
mov edx, str._is_obj
mov eax, 0x213
call fcn.0042e7d0
nop
lea esi, [esi]
lea esi, [esi]