Function at 0x457090
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1dc
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0x1c4], edx
mov dword [ebp - 0x1c8], ecx
mov al, byte [ebp + 8]
mov byte [ebp - 0x1cd], al
lea edx, [ebp - 0xc0]
mov dword [esp], edx
call fcn.004ff360
mov dword [ebp - 0xc0], 0x541c90
mov dword [ebp - 0x50], 0
mov byte [ebp - 0x4c], 0
mov byte [ebp - 0x4b], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov ebx, dword [0x53c7a8]
mov dword [ebp - 0xf4], ebx
mov eax, dword [ebx - 0xc]
mov ecx, dword [0x53c7ac]
mov dword [ebp + eax - 0xf4], ecx
mov dword [ebp - 0xf0], 0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0xf4]
lea edx, [ebp - 0xf4]
add edx, dword [eax - 0xc]
mov dword [esp], edx
call fcn.005003f0
mov esi, dword [0x53c7b0]
mov dword [ebp - 0xec], esi
lea edi, [ebp - 0xec]
mov eax, dword [esi - 0xc]
mov ecx, dword [0x53c7b4]
mov dword [ebp + eax - 0xec], ecx
mov dword [esp + 4], 0
mov eax, dword [ebp - 0xec]
mov edx, dword [eax - 0xc]
lea eax, [edi + edx]
mov dword [esp], eax
call fcn.005003f0
mov edx, dword [0x53c7a4]
mov eax, dword [edx - 0xc]
mov ecx, dword [0x53c7b8]
mov dword [ebp + eax - 0xf4], ecx
mov dword [ebp - 0xf4], 0x54160c
mov dword [ebp - 0xc0], 0x541634
mov dword [ebp - 0xec], 0x541620
mov dword [ebp - 0xe8], vtable.c_streambufIwSt11char_traitsIwEE.0
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 0
lea eax, [ebp - 0xcc]
mov dword [esp], eax
call fcn.004f8330
mov dword [ebp - 0xe8], 0x541268
mov dword [ebp - 0xc8], 0x18
mov dword [ebp - 0xc4], 0x521140
lea eax, [ebp - 0xe8]
mov dword [esp + 4], eax
lea edx, [ebp - 0xc0]
mov dword [esp], edx
call fcn.005003f0
lea ecx, [ebp - 0x17c]
mov dword [esp], ecx
call fcn.004ff360
mov dword [ebp - 0x17c], 0x541c90
mov dword [ebp - 0x10c], 0
mov byte [ebp - 0x108], 0
mov byte [ebp - 0x107], 0
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0x1b0], ebx
mov eax, dword [ebx - 0xc]
mov edx, dword [0x53c7ac]
mov dword [ebp + eax - 0x1b0], edx
mov dword [ebp - 0x1ac], 0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x1b0]
lea ecx, [ebp - 0x1b0]
add ecx, dword [eax - 0xc]
mov dword [esp], ecx
call fcn.005003f0
mov dword [ebp - 0x1a8], esi
mov eax, dword [esi - 0xc]
mov edx, dword [0x53c7b4]
mov dword [ebp + eax - 0x1a8], edx
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x1a8]
lea ecx, [ebp - 0x1a8]
add ecx, dword [eax - 0xc]
mov dword [esp], ecx
call fcn.005003f0
mov ecx, dword [0x53c7a4]
mov eax, dword [ecx - 0xc]
mov edx, dword [0x53c7b8]
mov dword [ebp + eax - 0x1b0], edx
mov dword [ebp - fcn.004f0f08], 0x54160c
mov dword [ebp - 0x17c], 0x541634
mov dword [ebp - 0x1a8], 0x541620
mov dword [ebp - method.c_streambufIwSt11char_traitsIwEE.virtual_0], vtable.c_streambufIwSt11char_traitsIwEE.0
mov dword [ebp - 0x1a0], 0
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x198], 0
mov dword [ebp - 0x194], 0
mov dword [ebp - 0x190], 0
mov dword [ebp - 0x18c], 0
lea eax, [ebp - 0x188]
mov dword [esp], eax
call fcn.004f8330
mov dword [ebp - fcn.004eb5bc], 0x541268
mov dword [ebp - 0x184], 0x18
mov dword [ebp - 0x180], 0x521140
lea ecx, [ebp - 0x1a4]
mov dword [esp + 4], ecx
lea eax, [ebp - 0x17c]
mov dword [esp], eax
call fcn.005003f0
mov edx, dword [ebp - 0x1c4]
mov eax, dword [edx]
mov ebx, dword [eax - 0xc]
test ebx, ebx
je 0x45748c
xor esi, esi
jmp 0x457412
mov byte [ebx + 0x74], 0x30
mov eax, dword [ebp - 0xec]
mov eax, dword [eax - 0xc]
mov dword [edi + eax + 8], 2
movzx eax, byte [ebp - 0x1bc]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.004d8264
inc esi
mov ecx, dword [ebp - 0x1c4]
mov eax, dword [ecx]
cmp esi, dword [eax - 0xc]
jae 0x45748c
mov al, byte [eax + esi]
mov byte [ebp - 0x1bc], al
mov eax, dword [ebp - 0xec]
mov ebx, dword [eax - 0xc]
add ebx, edi
mov eax, dword [ebx + 0xc]
and eax, 0xffffffb5
or eax, 8
mov dword [ebx + 0xc], eax
cmp byte [ebx + 0x75], 0
jne 0x4573dc
mov edx, dword [ebx + 0x7c]
mov dword [ebp - 0x1c0], edx
test edx, edx
je 0x45781e
mov ecx, dword [ebp - 0x1c0]
cmp byte [ecx + 0x1c], 0
je 0x457464
mov al, byte [ecx + 0x3d]
mov byte [ebx + 0x74], al
mov byte [ebx + 0x75], 1
jmp 0x4573dc
mov eax, dword [ebp - 0x1c0]
mov dword [esp], eax
call fcn.004b6694
mov edx, dword [ebp - 0x1c0]
mov eax, dword [edx]
mov dword [esp + 4], 0x20
mov dword [esp], edx
call dword [eax + 0x18]
jmp 0x457458
mov edx, dword [ebp - 0x1c8]
mov eax, dword [edx]
mov ecx, dword [eax - 0xc]
test ecx, ecx
je 0x45754c
xor esi, esi
jmp 0x4574e3
mov byte [ebx + 0x74], 0x30
mov eax, dword [ebp - 0x1a8]
mov eax, dword [eax - 0xc]
mov dword [ebp + eax - 0x1a0], 2
movzx eax, byte [ebp - 0x1bc]
mov dword [esp + 4], eax
lea ecx, [ebp - 0x1a8]
mov dword [esp], ecx
call fcn.004d8264
inc esi
mov edx, dword [ebp - 0x1c8]
mov eax, dword [edx]
cmp esi, dword [eax - 0xc]
jae 0x45754c
mov al, byte [eax + esi]
mov byte [ebp - 0x1bc], al
mov eax, dword [ebp - 0x1a8]
lea ebx, [ebp - 0x1a8]
add ebx, dword [eax - 0xc]
mov eax, dword [ebx + 0xc]
and eax, 0xffffffb5
or eax, 8
mov dword [ebx + 0xc], eax
cmp byte [ebx + 0x75], 0
jne 0x4574a4
mov edi, dword [ebx + 0x7c]
test edi, edi
je 0x457819
cmp byte [edi + 0x1c], 0
je 0x457530
mov al, byte [edi + 0x3d]
mov byte [ebx + 0x74], al
mov byte [ebx + 0x75], 1
jmp 0x4574a4
mov dword [esp], edi
call fcn.004b6694
mov eax, dword [edi]
mov dword [esp + 4], 0x20
mov dword [esp], edi
call dword [eax + 0x18]
jmp 0x457521
mov ecx, dword [ebp - 0x1cc]
mov esi, dword [ecx]
mov dword [esp + 4], 0x52caa5
mov dword [esp], esi
call sub.msvcrt.dll_fopen
mov ebx, eax
test eax, eax
je 0x457790
mov dword [ebp - 0x24], 0x521140
mov eax, dword [ebp - 0xd4]
test eax, eax
je 0x4577fa
mov edx, dword [ebp - 0xdc]
cmp eax, edx
ja 0x457647
mov byte [esp + 0xc], 0
lea eax, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov eax, dword [ebp - 0xd8]
mov dword [esp], eax
call fcn.004d8e9c
mov dword [ebp - 0x34], eax
lea edi, [ebp - 0x34]
mov dword [esp + 4], edi
lea esi, [ebp - 0x24]
mov dword [esp], esi
call fcn.004d99e0
mov eax, dword [ebp - 0x34]
lea edx, [eax - 0xc]
mov dword [ebp - 0x1bc], edx
mov edi, 0x521134
cmp edx, edi
jne 0x457acd
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x20
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
mov eax, dword [ebp - 0x24]
lea esi, [eax - 0xc]
cmp edi, esi
jne 0x457b07
mov dword [esp], ebx
call sub.msvcrt.dll_fclose
cmp byte [ebp - 0x1cd], 0
jne 0x4576d4
mov bl, 1
lea edx, [ebp - 0x1b0]
mov dword [esp], edx
call fcn.004f0f08
lea edx, [ebp - 0xf4]
mov dword [esp], edx
call fcn.004f0f08
mov al, bl
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
leave
ret
mov byte [esp + 0xc], 0
lea edx, [ebp - 0x1b]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp], eax
call fcn.004d8e9c
mov dword [ebp - 0x38], eax
lea edi, [ebp - 0x38]
mov dword [esp + 4], edi
lea esi, [ebp - 0x24]
mov dword [esp], esi
call fcn.004d99e0
mov eax, dword [ebp - 0x38]
lea edx, [eax - 0xc]
mov dword [ebp - 0x1bc], edx
mov edi, 0x521134
cmp edx, edi
je 0x4575dd
cmp dword [0x51b4e0], 0
jne 0x457a7c
mov ecx, dword [ebp - 0x1bc]
mov eax, dword [ecx + 8]
lea edx, [eax - 1]
mov dword [ecx + 8], edx
test eax, eax
jg 0x4575dd
lea eax, [ebp - 0x1c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1bc]
mov dword [esp], eax
call fcn.004d9148
jmp 0x4575dd
mov dword [esp + 8], 0x52cc93
mov edx, dword [ebp - 0x1cc]
mov eax, dword [edx]
mov dword [esp + 4], eax
lea ebx, [ebp - 0x28]
mov dword [esp], ebx
call fcn.0049bfb0
mov eax, dword [ebp - 0x28]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 1
mov dword [esp], 0x52cc95
call sub.msvcrt.dll_fwrite
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
call sub.msvcrt.dll_fclose
mov dword [esp + 8], 0x52cc97
mov ecx, dword [ebp - 0x1cc]
mov eax, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0049bfb0
lea eax, [ebp - 0x2c]
lea edx, [ebp - 0x1a4]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004b55e8
push edx
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x10
mov dword [esp + 4], 1
mov dword [esp], esi
call sub.msvcrt.dll_fwrite
lea ebx, [esi - 0xc]
cmp edi, ebx
jne 0x4579fc
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
call sub.msvcrt.dll_fclose
jmp 0x45761f
lea eax, [ebp - 0x19]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x52c7cf
lea ebx, [ebp - 0x30]
mov dword [esp], ebx
call fcn.004da74c
xor eax, eax
mov ecx, 0xffffffff
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.004d957c
mov dword [esp], 8
call fcn.0050981c
mov esi, eax
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.004e7434
mov dword [esp + 8], 0x4e75ac
mov dword [esp + 4], 0x536f34
mov dword [esp], esi
call fcn.0050a02c
lea eax, [ebp - 0xc4]
mov dword [esp + 4], eax
lea esi, [ebp - 0x24]
mov dword [esp], esi
call fcn.004d99e0
mov edi, 0x521134
jmp 0x4575dd
call fcn.00502b28
call fcn.00502b28
mov dword [ebp - 0x1bc], eax
mov dword [esp], esi
mov dword [ebp - 0x1d4], edx
call fcn.00509d14
mov edx, dword [ebp - 0x1d4]
mov dword [esp], ebx
mov dword [ebp - 0x1d4], edx
call fcn.004dad88
mov edx, dword [ebp - 0x1d4]
dec edx
je 0x457886
lea eax, [ebp - 0x1b0]
mov dword [esp], eax
call fcn.004f0f08
lea ecx, [ebp - 0xf4]
mov dword [esp], ecx
call fcn.004f0f08
mov eax, dword [ebp - 0x1bc]
mov dword [esp], eax
call sub.libgcc_s_dw2_1.dll__Unwind_Resume
mov dword [ebp - 0x1bc], eax
jmp 0x45783d
mov ecx, dword [ebp - 0x1bc]
mov dword [esp], ecx
call fcn.005099c0
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov ebx, eax
mov dword [esp + 4], str.Error:
mov dword [esp], 0x521460
call fcn.00507400
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00507400
mov esi, eax
mov eax, dword [eax]
mov eax, dword [eax - 0xc]
mov ebx, dword [esi + eax + 0x7c]
test ebx, ebx
je 0x4579b4
cmp byte [ebx + 0x1c], 0
je 0x457997
mov al, byte [ebx + 0x27]
movsx eax, al
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.004d7138
mov dword [esp], eax
call fcn.004d7284
call fcn.00509b8c
xor ebx, ebx
jmp 0x457621
mov dword [esp], ebx
call fcn.004b6694
mov eax, dword [ebx]
mov dword [esp + 4], 0xa
mov dword [esp], ebx
call dword [eax + 0x18]
jmp 0x4578de
call fcn.00502b28
mov dword [ebp - 0x1bc], eax
call fcn.00509b8c
jmp 0x457854
cmp dword [0x51b4e0], 0
jne 0x457a57
mov eax, dword [ebx + 8]
lea edx, [eax - 1]
mov dword [ebx + 8], edx
test eax, eax
jg 0x457780
lea eax, [ebp - 0x1f]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.004d9148
jmp 0x457780
mov dword [esp + 4], 0xffffffff
sub esi, 4
mov dword [esp], esi
call fcn.004ae5e4
jmp 0x457a0e
mov dword [esp + 4], 0xffffffff
sub eax, 4
mov dword [esp], eax
call fcn.004ae5e4
jmp 0x4576af
cmp dword [0x51b4e0], 0
jne 0x457b35
mov ecx, dword [ebp - 0x1bc]
mov eax, dword [ecx + 8]
lea edx, [eax - 1]
mov dword [ecx + 8], edx
test eax, eax
jg 0x4575dd
lea eax, [ebp - 0x1d]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1bc]
mov dword [esp], eax
call fcn.004d9148
jmp 0x4575dd
cmp dword [0x51b4e0], 0
jne 0x457b4a
mov eax, dword [esi + 8]
lea edx, [eax - 1]
mov dword [esi + 8], edx
test eax, eax
jg 0x45760a
lea eax, [ebp - 0x1e]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.004d9148
jmp 0x45760a
mov dword [esp + 4], 0xffffffff
sub eax, 4
mov dword [esp], eax
call fcn.004ae5e4
jmp 0x457ae5
mov dword [esp + 4], 0xffffffff
sub eax, 4
mov dword [esp], eax
call fcn.004ae5e4
jmp 0x457b19