Function at 0x40b730
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
mov ebp, eax
push esi
push ebx
mov esi, ecx
sub esp, 0x3c
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x1c], edx
test ebx, ebx
je 0x40b74a
mov byte [ebx], 0
mov eax, dword [esi]
cmp eax, 0x29
ja case.0x40b755.2
jmp dword [eax*4 + 0x4b68c8]
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x1c]
mov dword [esp + 4], 0
mov eax, dword [esi + 0x10]
add edx, 0xd4
mov dword [esp], eax
mov eax, ebp
call fcn.0040b640
mov ebx, eax
add esp, 0x3c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x1c]
mov eax, ebp
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0040b730
test eax, eax
mov ebx, eax
je 0x40bc40
mov eax, dword [esi]
sub eax, 0x19
cmp eax, 0xa
ja case.0x40b7c5.28
jmp dword [eax*4 + 0x4b6970]
lea eax, [esp + 0x2c]
mov dword [esp + 8], 0x14
mov dword [esp + 4], esi
mov dword [esp], 3
mov dword [esp + 0xc], eax
call fcn.0049d610
test eax, eax
mov edx, eax
je 0x40bc14
mov edi, 0x4b6607
mov ecx, 0xc
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40bbe0
mov edi, 0x4b6849
mov ecx, 5
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40bcb5
mov edi, 0x4b65e9
mov ecx, 5
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40bbe0
mov edi, 0x4b6651
mov ecx, 7
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40bcd4
mov edi, 0x4b6658
mov ecx, 0xc
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40bcd4
mov edi, 0x4b664b
mov ecx, 6
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40bd40
mov edi, 0x4b684e
mov ecx, 0xb
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40bd5f
mov edi, 0x4b65f9
mov ecx, 0xe
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40bda5
mov edi, 0x4b65e5
mov ecx, 4
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40bd7e
mov edi, 0x4b6622
mov ecx, 0xd
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40bdb6
mov edi, 0x4b65f4
mov ecx, 5
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40bd7e
mov edi, 0x4b6638
mov ecx, 0xe
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40bdb6
mov edi, 0x4b6859
mov ecx, 9
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40bdc4
mov edi, 0x4b6862
mov ecx, 0x12
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40bdeb
mov edi, 0x4b65ee
mov ecx, 6
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40bdf9
mov dword [esp + 4], 0x4b6613
mov dword [esp], eax
mov dword [esp + 0x18], eax
call sub.msvcrt.dll_strcmp
test eax, eax
mov edx, dword [esp + 0x18]
je 0x40be20
mov dword [esp], edx
mov dword [esp + 4], 0x4b6646
mov dword [esp + 0x18], edx
call sub.msvcrt.dll_strcmp
test eax, eax
mov edx, dword [esp + 0x18]
je 0x40be2a
mov dword [esp], edx
mov dword [esp + 4], 0x4b6874
mov dword [esp + 0x18], edx
call sub.msvcrt.dll_strcmp
test eax, eax
mov edx, dword [esp + 0x18]
je 0x40bdb6
mov dword [esp], edx
mov dword [esp + 4], 0x4b66ef
call sub.msvcrt.dll_strcmp
test eax, eax
mov edx, dword [esp + 0x18]
je 0x40be6e
mov dword [esp], edx
mov dword [esp + 4], 0x4b66f9
mov dword [esp + 0x18], edx
call sub.msvcrt.dll_strcmp
test eax, eax
mov edx, dword [esp + 0x18]
je 0x40bec8
mov dword [esp], edx
mov dword [esp + 4], 0x4b687c
mov dword [esp + 0x18], edx
call sub.msvcrt.dll_strcmp
test eax, eax
mov edx, dword [esp + 0x18]
jne 0x40be91
test ebx, ebx
je 0x40be3d
mov byte [ebx], 1
xor ebx, ebx
jmp 0x40bc02
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x40bd22
mov edx, dword [esp + 0x1c]
mov dword [esp + 4], 0
mov eax, ebp
mov dword [esp], 0
call fcn.0040b730
mov ebx, eax
test ebx, ebx
je case.0x40b7c5.25
mov ecx, dword [esi + 0x10]
lea eax, [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov dword [esp], eax
mov eax, ebp
call fcn.0040bee0
test eax, eax
je 0x40bd31
movzx edx, byte [esp + 0x2c]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp], ebp
mov dword [esp + 0xc], edx
call fcn.00409f10
mov ebx, eax
jmp case.0x40b7c5.25
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esi + 0xc]
mov dword [esp + 4], 0
mov dword [esp], eax
mov edx, edi
mov eax, ebp
call fcn.0040b730
test eax, eax
je 0x40bc40
mov ecx, dword [esi + 0x10]
mov edx, edi
mov dword [esp], eax
mov dword [esp + 4], 0
mov eax, ebp
call fcn.0040b730
add esp, 0x3c
mov ebx, eax
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [esp + 0x2c]
mov dword [esp + 4], esi
mov dword [esp + 8], 0x14
mov dword [esp], 3
mov dword [esp + 0xc], eax
call fcn.0049d610
test eax, eax
mov esi, eax
je 0x40bcf3
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x1c]
mov dword [esp], eax
mov ecx, esi
mov dword [esp + 4], 9
mov eax, ebp
add edx, 0xd4
call fcn.0040b640
mov dword [esp], esi
mov ebx, eax
call fcn.004a9de0
add esp, 0x3c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x50]
test eax, eax
je case.0x40b755.24
mov eax, dword [esp + 0x50]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.0040aa20
test eax, eax
mov edi, eax
je case.0x40b755.24
mov eax, dword [eax]
test eax, eax
jne 0x40bb52
jmp case.0x40b755.24
add edi, 4
mov eax, dword [edi]
test eax, eax
je case.0x40b755.24
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.0040aa60
test eax, eax
mov ebx, eax
je 0x40bc40
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.0040a870
test eax, eax
je 0x40bb45
mov dword [esp], eax
mov dword [esp + 0x18], eax
call sub.msvcrt.dll_strlen
cmp eax, dword [esi + 0x10]
mov edx, dword [esp + 0x18]
jne 0x40bb45
mov dword [esp + 8], eax
mov eax, dword [esi + 0xc]
mov dword [esp], edx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x40bb45
jmp case.0x40b7c5.25
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
xor ebx, ebx
mov dword [esp + 4], str.Unrecognized_demangle_component__d_n
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
add esp, 0x3c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x18], edx
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], ebp
call fcn.00409d20
mov edx, dword [esp + 0x18]
mov ebx, eax
mov dword [esp], edx
call fcn.004a9de0
add esp, 0x3c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x24
mov dword [esp + 4], 1
mov dword [esp], str.Couldnt_get_demangled_builtin_type_n
add eax, 0x40
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
lea esi, [esi]
xor ebx, ebx
jmp case.0x40b7c5.25
mov dword [esp + 4], ebx
mov dword [esp], ebp
call fcn.00409f70
mov ebx, eax
jmp case.0x40b7c5.25
mov dword [esp + 4], ebx
mov dword [esp], ebp
call fcn.0040a1a0
mov ebx, eax
jmp case.0x40b7c5.25
mov dword [esp + 4], ebx
mov dword [esp], ebp
call fcn.0040a1d0
mov ebx, eax
jmp case.0x40b7c5.25
mov dword [esp + 4], ebx
mov dword [esp], ebp
call fcn.00409ec0
mov ebx, eax
jmp case.0x40b7c5.25
call sub.msvcrt.dll_abort
mov dword [esp + 4], 1
mov dword [esp], ebp
mov dword [esp + 0x18], eax
call fcn.00409d60
mov edx, dword [esp + 0x18]
mov ebx, eax
jmp 0x40bc02
mov dword [esp + 4], 8
mov dword [esp], ebp
mov dword [esp + 0x18], edx
call fcn.00409d50
mov edx, dword [esp + 0x18]
mov ebx, eax
jmp 0x40bc02
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x23
xor ebx, ebx
mov dword [esp + 4], 1
mov dword [esp], str.Failed_to_print_demangled_template_n
add eax, 0x40
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
jmp case.0x40b7c5.25
mov dword [esp], ebp
call fcn.00409d10
mov ebx, eax
jmp 0x40ba1b
mov dword [esp], ebx
xor ebx, ebx
call fcn.004a9de0
jmp case.0x40b7c5.25
mov dword [esp + 4], 4
mov dword [esp], ebp
mov dword [esp + 0x18], eax
call fcn.00409d50
mov edx, dword [esp + 0x18]
mov ebx, eax
jmp 0x40bc02
mov dword [esp + 4], 0x10
mov dword [esp], ebp
mov dword [esp + 0x18], eax
call fcn.00409d50
mov edx, dword [esp + 0x18]
mov ebx, eax
jmp 0x40bc02
mov dword [esp + 0x18], edx
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], ebp
call fcn.00409d20
mov edx, dword [esp + 0x18]
mov ebx, eax
jmp 0x40bc02
mov dword [esp + 0x18], eax
mov dword [esp + 8], 1
jmp 0x40bbec
mov dword [esp + 0x18], edx
mov dword [esp + 8], 1
jmp 0x40bd8a
mov dword [esp + 0x18], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x10
mov dword [esp], ebp
call fcn.00409d20
mov edx, dword [esp + 0x18]
mov ebx, eax
jmp 0x40bc02
mov dword [esp + 0x18], eax
mov dword [esp + 8], 1
jmp 0x40bdd0
mov dword [esp + 0x18], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 2
mov dword [esp], ebp
call fcn.00409d20
mov edx, dword [esp + 0x18]
mov ebx, eax
jmp 0x40bc02
mov dword [esp + 8], 1
jmp 0x40be05
mov dword [esp], ebp
call fcn.00409d10
mov edx, dword [esp + 0x18]
mov ebx, eax
jmp 0x40bc02
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x1d
mov dword [esp + 4], 1
mov dword [esp], str.Unexpected_demangled_varargs_n
add eax, 0x40
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
mov edx, dword [esp + 0x18]
jmp 0x40bc02
mov dword [esp + 8], 0
mov dword [esp + 4], 8
mov dword [esp], ebp
call fcn.00409d20
mov edx, dword [esp + 0x18]
mov ebx, eax
jmp 0x40bc02
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x24
xor ebx, ebx
mov dword [esp + 4], 1
mov dword [esp], str.Unrecognized_demangled_builtin_type_n
mov dword [esp + 0x18], edx
add eax, 0x40
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
mov edx, dword [esp + 0x18]
jmp 0x40bc02
mov dword [esp + 8], 1
jmp 0x40be76