Function at 0x40abc0
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 0x40abdd
mov dword [ebx], 0
mov eax, dword [esi]
cmp eax, 0x29
ja case.0x40abe8.2
jmp dword [eax*4 + 0x4b8398]
mov ecx, dword [esi + 8]
mov edx, dword [esp + 0x1c]
mov dword [esp + 4], 0
mov eax, dword [esi + 0xc]
add edx, 0xd4
mov dword [esp], eax
mov eax, ebp
call fcn.0040aae0
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [esi + 8]
mov edx, dword [esp + 0x1c]
mov eax, ebp
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0040abc0
test eax, eax
je 0x40b0dc
mov edx, dword [esi]
sub edx, 0x19
cmp edx, 0xa
ja case.0x40ac53.28
jmp dword [edx*4 + 0x4b8440]
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.004a28f0
test eax, eax
mov edx, eax
je 0x40b0b4
mov edi, 0x4b80eb
mov ecx, 0xc
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40b080
mov edi, 0x4b8319
mov ecx, 5
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40b140
mov edi, 0x4b80cd
mov ecx, 5
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40b080
mov edi, 0x4b8135
mov ecx, 7
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40b160
mov edi, 0x4b813c
mov ecx, 0xc
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40b160
mov edi, 0x4b812f
mov ecx, 6
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40b1bf
mov edi, 0x4b831e
mov ecx, 0xb
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40b1de
mov edi, 0x4b80dd
mov ecx, 0xe
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40b224
mov edi, 0x4b80c9
mov ecx, 4
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40b1fd
mov edi, 0x4b8106
mov ecx, 0xd
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40b235
mov edi, 0x4b80d8
mov ecx, 5
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40b1fd
mov edi, 0x4b811c
mov ecx, 0xe
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40b235
mov edi, 0x4b8329
mov ecx, 9
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40b243
mov edi, 0x4b8332
mov ecx, 0x12
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40b26a
mov edi, 0x4b80d2
mov ecx, 6
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40b278
mov dword [esp + 4], 0x4b80f7
mov dword [esp], eax
mov dword [esp + 0x18], eax
call sub.msvcrt.dll_strcmp
test eax, eax
mov edx, dword [esp + 0x18]
je 0x40b29f
mov dword [esp], edx
mov dword [esp + 4], 0x4b812a
mov dword [esp + 0x18], edx
call sub.msvcrt.dll_strcmp
test eax, eax
mov edx, dword [esp + 0x18]
je 0x40b2a9
mov dword [esp], edx
mov dword [esp + 4], 0x4b8344
mov dword [esp + 0x18], edx
call sub.msvcrt.dll_strcmp
test eax, eax
mov edx, dword [esp + 0x18]
je 0x40b235
mov dword [esp], edx
mov dword [esp + 4], 0x4b81d3
call sub.msvcrt.dll_strcmp
test eax, eax
mov edx, dword [esp + 0x18]
je 0x40b2ed
mov dword [esp], edx
mov dword [esp + 4], 0x4b81dd
mov dword [esp + 0x18], edx
call sub.msvcrt.dll_strcmp
test eax, eax
mov edx, dword [esp + 0x18]
je 0x40b347
mov dword [esp], edx
mov dword [esp + 4], 0x4b834c
mov dword [esp + 0x18], edx
call sub.msvcrt.dll_strcmp
test eax, eax
mov edx, dword [esp + 0x18]
jne 0x40b310
test ebx, ebx
je 0x40b2bc
mov dword [ebx], 1
xor ebx, ebx
jmp 0x40b0a2
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x40b1b0
mov edx, dword [esp + 0x1c]
mov dword [esp + 4], 0
mov eax, ebp
mov dword [esp], 0
call fcn.0040abc0
mov ebx, eax
test ebx, ebx
je 0x40b0dc
mov ecx, dword [esi + 0xc]
lea eax, [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov dword [esp], eax
mov eax, ebp
call fcn.0040b360
test eax, eax
je 0x40b0dc
mov edx, dword [esp + 0x2c]
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], ebp
mov dword [esp + 0xc], edx
call fcn.004094d0
jmp case.0x40ac53.25
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esi + 8]
mov dword [esp + 4], 0
mov dword [esp], eax
mov edx, edi
mov eax, ebp
call fcn.0040abc0
test eax, eax
je 0x40b0dc
mov ecx, dword [esi + 0xc]
mov edx, edi
mov dword [esp], eax
mov dword [esp + 4], 0
mov eax, ebp
call fcn.0040abc0
add esp, 0x3c
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.004a28f0
test eax, eax
mov esi, eax
je 0x40b180
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.0040aae0
mov dword [esp], esi
mov ebx, eax
call fcn.004abfa8
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.0x40abe8.24
mov eax, dword [esp + 0x50]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.00409f60
test eax, eax
mov edi, eax
je case.0x40abe8.24
mov eax, dword [eax]
test eax, eax
jne 0x40aff2
jmp case.0x40abe8.24
add edi, 4
mov eax, dword [edi]
test eax, eax
je case.0x40abe8.24
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.00409fa0
test eax, eax
mov ebx, eax
je 0x40b0dc
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.00409de0
test eax, eax
je 0x40afe5
mov dword [esp], eax
mov dword [esp + 0x18], eax
call sub.msvcrt.dll_strlen
cmp eax, dword [esi + 0xc]
mov edx, dword [esp + 0x18]
jne 0x40afe5
mov dword [esp + 8], eax
mov eax, dword [esi + 8]
mov dword [esp], edx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x40afe5
mov eax, ebx
jmp case.0x40ac53.25
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
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
xor eax, eax
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.004092e0
mov edx, dword [esp + 0x18]
mov ebx, eax
mov dword [esp], edx
call fcn.004abfa8
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
add esp, 0x3c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.00409530
jmp case.0x40ac53.25
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.00409730
jmp case.0x40ac53.25
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.00409760
jmp case.0x40ac53.25
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.00409480
jmp case.0x40ac53.25
call sub.msvcrt.dll_abort
lea esi, [esi]
mov dword [esp + 4], 1
mov dword [esp], ebp
mov dword [esp + 0x18], eax
call fcn.00409310
mov edx, dword [esp + 0x18]
mov ebx, eax
jmp 0x40b0a2
mov dword [esp + 4], 8
mov dword [esp], ebp
mov dword [esp + 0x18], edx
call fcn.00409300
mov edx, dword [esp + 0x18]
mov ebx, eax
jmp 0x40b0a2
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x23
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
xor eax, eax
jmp case.0x40ac53.25
mov dword [esp], ebp
call fcn.004092d0
mov ebx, eax
jmp 0x40aeb7
mov dword [esp + 4], 4
mov dword [esp], ebp
mov dword [esp + 0x18], eax
call fcn.00409300
mov edx, dword [esp + 0x18]
mov ebx, eax
jmp 0x40b0a2
mov dword [esp + 4], 0x10
mov dword [esp], ebp
mov dword [esp + 0x18], eax
call fcn.00409300
mov edx, dword [esp + 0x18]
mov ebx, eax
jmp 0x40b0a2
mov dword [esp + 0x18], edx
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], ebp
call fcn.004092e0
mov edx, dword [esp + 0x18]
mov ebx, eax
jmp 0x40b0a2
mov dword [esp + 0x18], eax
mov dword [esp + 8], 1
jmp 0x40b08c
mov dword [esp + 0x18], edx
mov dword [esp + 8], 1
jmp 0x40b209
mov dword [esp + 0x18], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x10
mov dword [esp], ebp
call fcn.004092e0
mov edx, dword [esp + 0x18]
mov ebx, eax
jmp 0x40b0a2
mov dword [esp + 0x18], eax
mov dword [esp + 8], 1
jmp 0x40b24f
mov dword [esp + 0x18], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 2
mov dword [esp], ebp
call fcn.004092e0
mov edx, dword [esp + 0x18]
mov ebx, eax
jmp 0x40b0a2
mov dword [esp + 8], 1
jmp 0x40b284
mov dword [esp], ebp
call fcn.004092d0
mov edx, dword [esp + 0x18]
mov ebx, eax
jmp 0x40b0a2
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 0x40b0a2
mov dword [esp + 8], 0
mov dword [esp + 4], 8
mov dword [esp], ebp
call fcn.004092e0
mov edx, dword [esp + 0x18]
mov ebx, eax
jmp 0x40b0a2
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 0x40b0a2
mov dword [esp + 8], 1
jmp 0x40b2f5