Function at 0x409eb0
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
mov esi, ecx
push ebx
mov ebx, eax
sub esp, 0x3c
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x1c], edx
test ebp, ebp
je 0x409ece
mov dword [ebp], 0
mov eax, dword [esi]
cmp eax, 0x29
ja case.0x409ed9.2
jmp dword [eax*4 + 0x498d0c]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esi + 4]
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, ebx
add edx, 0xd4
call fcn.00409db0
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [esi + 4]
mov eax, ebx
mov edx, dword [esp + 0x1c]
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00409eb0
test eax, eax
je 0x40a3b0
mov edx, dword [esi]
sub edx, 0x19
cmp edx, 0xa
ja case.0x409f43.28
jmp dword [edx*4 + 0x498db4]
lea eax, [esp + 0x2c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x14
mov dword [esp + 4], esi
mov dword [esp], 3
call fcn.00481e90
test eax, eax
mov edx, eax
je 0x40a384
mov edi, 0x498a67
mov ecx, 0xc
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40a350
mov edi, 0x498c8d
mov ecx, 5
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40a410
mov edi, 0x498a49
mov ecx, 5
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40a350
mov edi, 0x498aa8
mov ecx, 7
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40a430
mov edi, 0x498aaf
mov ecx, 0xc
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40a430
mov edi, 0x498aa2
mov ecx, 6
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40a48f
mov edi, 0x498c92
mov ecx, 0xb
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40a4ae
mov edi, 0x498a59
mov ecx, 0xe
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40a4f4
mov edi, 0x498a45
mov ecx, 4
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40a4cd
mov edi, 0x498a82
mov ecx, 0xd
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40a505
mov edi, 0x498a54
mov ecx, 5
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40a4cd
mov edi, 0x498a8f
mov ecx, 0xe
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40a505
mov edi, 0x498c9d
mov ecx, 9
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40a513
mov edi, 0x498ca6
mov ecx, 0x12
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40a53a
mov edi, 0x498a4e
mov ecx, 6
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40a548
mov dword [esp + 4], 0x498a73
mov dword [esp], eax
mov dword [esp + 0x18], eax
call sub.msvcrt.dll_strcmp
mov edx, dword [esp + 0x18]
test eax, eax
je 0x40a56f
mov dword [esp], edx
mov dword [esp + 4], 0x498a9d
mov dword [esp + 0x18], edx
call sub.msvcrt.dll_strcmp
mov edx, dword [esp + 0x18]
test eax, eax
je 0x40a579
mov dword [esp], edx
mov dword [esp + 4], 0x498cb8
mov dword [esp + 0x18], edx
call sub.msvcrt.dll_strcmp
mov edx, dword [esp + 0x18]
test eax, eax
je 0x40a505
mov dword [esp], edx
mov dword [esp + 4], 0x498b46
call sub.msvcrt.dll_strcmp
mov edx, dword [esp + 0x18]
test eax, eax
je 0x40a5bd
mov dword [esp], edx
mov dword [esp + 4], 0x498b50
mov dword [esp + 0x18], edx
call sub.msvcrt.dll_strcmp
mov edx, dword [esp + 0x18]
test eax, eax
je 0x40a617
mov dword [esp], edx
mov dword [esp + 4], 0x498cc0
mov dword [esp + 0x18], edx
call sub.msvcrt.dll_strcmp
mov edx, dword [esp + 0x18]
test eax, eax
jne 0x40a5e0
test ebp, ebp
je 0x40a58c
mov dword [ebp], 1
xor ebp, ebp
jmp 0x40a372
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x40a480
mov edx, dword [esp + 0x1c]
mov eax, ebx
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00409eb0
mov edi, eax
test edi, edi
je 0x40a3b0
mov ecx, dword [esi + 8]
lea eax, [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov dword [esp], eax
mov eax, ebx
call fcn.0040a630
test eax, eax
je 0x40a3b0
mov edx, dword [esp + 0x2c]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ebx
mov dword [esp + 0xc], edx
call fcn.004086e0
jmp case.0x409f43.25
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esi + 4]
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, ebx
mov edx, edi
call fcn.00409eb0
test eax, eax
je 0x40a3b0
mov ecx, dword [esi + 8]
mov edx, edi
mov dword [esp], eax
mov eax, ebx
mov dword [esp + 4], 0
call fcn.00409eb0
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [esp + 0x2c]
mov dword [esp + 4], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x14
mov dword [esp], 3
call fcn.00481e90
test eax, eax
mov esi, eax
je 0x40a450
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x1c]
mov ecx, esi
mov dword [esp + 4], 9
add edx, 0xd4
mov dword [esp], eax
mov eax, ebx
call fcn.00409db0
mov dword [esp], esi
mov ebp, eax
call fcn.0048d280
add esp, 0x3c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x50]
test eax, eax
je case.0x409ed9.24
mov eax, dword [esp + 0x50]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004091f0
test eax, eax
mov edi, eax
je case.0x409ed9.24
mov eax, dword [eax]
test eax, eax
jne 0x40a2ce
jmp case.0x409ed9.24
add edi, 4
mov eax, dword [edi]
test eax, eax
je case.0x409ed9.24
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00409230
test eax, eax
mov ebp, eax
je 0x40a3b0
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00409080
test eax, eax
je 0x40a2c1
mov dword [esp], eax
mov dword [esp + 0x18], eax
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x18]
cmp eax, dword [esi + 8]
jne 0x40a2c1
mov dword [esp + 8], eax
mov eax, dword [esi + 4]
mov dword [esp], edx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x40a2c1
mov eax, ebp
jmp case.0x409f43.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], ebx
call fcn.00408490
mov edx, dword [esp + 0x18]
mov ebp, eax
mov dword [esp], edx
call fcn.0048d280
add esp, 0x3c
mov eax, ebp
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]
add esp, 0x3c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00408730
jmp case.0x409f43.25
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00408920
jmp case.0x409f43.25
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00408950
jmp case.0x409f43.25
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00408690
jmp case.0x409f43.25
call sub.msvcrt.dll_abort
lea esi, [esi]
mov dword [esp + 4], 1
mov dword [esp], ebx
mov dword [esp + 0x18], eax
call fcn.004084c0
mov edx, dword [esp + 0x18]
mov ebp, eax
jmp 0x40a372
mov dword [esp + 4], 8
mov dword [esp], ebx
mov dword [esp + 0x18], edx
call fcn.004084b0
mov edx, dword [esp + 0x18]
mov ebp, eax
jmp 0x40a372
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.0x409f43.25
mov dword [esp], ebx
call fcn.00408480
mov edi, eax
jmp 0x40a19f
mov dword [esp + 4], 4
mov dword [esp], ebx
mov dword [esp + 0x18], eax
call fcn.004084b0
mov edx, dword [esp + 0x18]
mov ebp, eax
jmp 0x40a372
mov dword [esp + 4], 0x10
mov dword [esp], ebx
mov dword [esp + 0x18], eax
call fcn.004084b0
mov edx, dword [esp + 0x18]
mov ebp, eax
jmp 0x40a372
mov dword [esp + 0x18], edx
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], ebx
call fcn.00408490
mov edx, dword [esp + 0x18]
mov ebp, eax
jmp 0x40a372
mov dword [esp + 0x18], eax
mov dword [esp + 8], 1
jmp 0x40a35c
mov dword [esp + 0x18], edx
mov dword [esp + 8], 1
jmp 0x40a4d9
mov dword [esp + 0x18], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x10
mov dword [esp], ebx
call fcn.00408490
mov edx, dword [esp + 0x18]
mov ebp, eax
jmp 0x40a372
mov dword [esp + 0x18], eax
mov dword [esp + 8], 1
jmp 0x40a51f
mov dword [esp + 0x18], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 2
mov dword [esp], ebx
call fcn.00408490
mov edx, dword [esp + 0x18]
mov ebp, eax
jmp 0x40a372
mov dword [esp + 8], 1
jmp 0x40a554
mov dword [esp], ebx
call fcn.00408480
mov edx, dword [esp + 0x18]
mov ebp, eax
jmp 0x40a372
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 0x40a372
mov dword [esp + 8], 0
mov dword [esp + 4], 8
mov dword [esp], ebx
call fcn.00408490
mov edx, dword [esp + 0x18]
mov ebp, eax
jmp 0x40a372
mov eax, dword [sym.imp.msvcrt.dll__iob]
xor ebp, ebp
mov dword [esp + 8], 0x24
mov dword [esp + 4], 1
mov dword [esp], str.Unrecognized_demangled_builtin_type_n
add eax, 0x40
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], edx
call sub.msvcrt.dll_fwrite
mov edx, dword [esp + 0x18]
jmp 0x40a372
mov dword [esp + 8], 1
jmp 0x40a5c5