Function at 0x4151a0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 8]
push ebx
push edi
mov edi, ecx
mov dword [ebp - 4], edi
mov ebx, eax
test eax, eax
je 0x4151cb
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4151c0
sub eax, edx
jne 0x4151d1
lea ebx, [edi + 0x156]
cmp byte [edi + 0x155], 0
mov ecx, edi
je 0x4151ea
push ebx
call fcn.00414cf0
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 8
push 0x5c
push 1
push ebx
call fcn.00412ec0
test al, al
jne 0x415200
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 8
push esi
push 0x44fa34
push ebx
call fcn.0043cc0b
mov esi, eax
add esp, 8
test esi, esi
jne 0x415251
call fcn.0043da25
mov eax, dword [eax]
push esi
push eax
call fcn.0043d504
add esp, 4
push eax
mov ecx, edi
call fcn.00411330
push eax
push ebx
push str.ERROR:_Unable_to_open__s_for_writing:__s_n
call fcn.0043cd2e
add eax, 0x40
push eax
call fcn.0043cc22
add esp, 0x10
pop esi
pop edi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x415383
mov eax, edx
lea ebx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x415261
sub eax, ebx
je 0x415383
xor ebx, ebx
push ebx
push 0x453338
push edx
lea eax, [ebp - 0xc]
push eax
mov ecx, edi
mov dword [ebp - 0xc], ebx
call fcn.00413cf0
mov dword [ebp - 8], eax
mov dword [ebp + 0xc], ebx
cmp eax, ebx
jbe 0x415326
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0xc]
mov ebx, dword [ecx + edx*4]
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4152a3
sub eax, edx
je 0x4152b3
cmp byte [ebx], 0x3b
je 0x4152ce
push esi
push 1
push 1
push 0x44f984
call fcn.0043d6c5
add esp, 0x10
cmp eax, 1
jne 0x415721
test ebx, ebx
je 0x4152fc
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4152d7
sub eax, edx
mov edi, eax
je 0x4152f9
push esi
push edi
push 1
push ebx
call fcn.0043d6c5
add esp, 0x10
cmp eax, edi
jne 0x415747
mov edi, dword [ebp - 4]
push esi
push 2
push 1
push 0x453338
call fcn.0043d6c5
add esp, 0x10
cmp eax, 2
jne 0x41536d
mov eax, dword [ebp + 0xc]
inc eax
mov dword [ebp + 0xc], eax
cmp eax, dword [ebp - 8]
jb 0x415295
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov ecx, edi
call fcn.00410d90
push esi
push 2
push 1
push 0x453338
call fcn.0043d6c5
add esp, 0x10
cmp eax, 2
je 0x415383
call fcn.0043da25
mov eax, dword [eax]
push 0
push eax
call fcn.0043d504
add esp, 4
push eax
mov ecx, edi
call fcn.00411330
mov ecx, dword [ebp + 8]
push eax
push ecx
jmp 0x4158b7
call fcn.0043da25
mov eax, dword [eax]
push 0
push eax
call fcn.0043d504
mov ecx, edi
jmp 0x4158a9
push esi
call fcn.0043d987
add esp, 4
cmp dword [edi + 0x364], 0
mov dword [ebp - 0xc], 0
jbe 0x415686
mov edx, dword [edi + 0x360]
mov eax, dword [ebp - 0xc]
mov eax, dword [edx + eax*4]
cmp byte [eax + 0x16], 0
mov dword [ebp - 8], eax
je 0x415673
cmp dword [ebp - 0xc], 0
je 0x4153d6
push esi
push 2
push 1
push 0x453338
call fcn.0043d6c5
add esp, 0x10
cmp eax, 2
jne 0x41536d
mov ebx, dword [ebp - 8]
mov eax, dword [ebx]
test eax, eax
je 0x415477
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4153e6
sub eax, edx
je 0x415477
push esi
push 1
push 1
push 0x44f998
call fcn.0043d6c5
add esp, 0x10
cmp eax, 1
jne 0x415721
mov edx, dword [ebx]
test edx, edx
je 0x415442
mov eax, edx
lea edi, [eax + 1]
jmp 0x415420
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x415420
sub eax, edi
mov edi, eax
je 0x415442
push esi
push edi
push 1
push edx
call fcn.0043d6c5
add esp, 0x10
cmp eax, edi
jne 0x415747
push esi
push 1
push 1
push 0x44f994
call fcn.0043d6c5
add esp, 0x10
cmp eax, 1
jne 0x41576d
push esi
push 2
push eax
push 0x453338
call fcn.0043d6c5
add esp, 0x10
cmp eax, 2
jne 0x4157e1
cmp dword [ebx + 0xc], 0
mov dword [ebp + 0xc], 0
jbe 0x415670
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 8]
mov edi, edi
mov edx, dword [ecx + 8]
mov ebx, dword [edx + eax*4]
cmp byte [ebx + 0x18], 0
lea edx, [edx + eax*4]
jne 0x415663
mov eax, dword [ebx + 8]
test eax, eax
je 0x415532
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4154b1
sub eax, edi
je 0x415532
cmp dword [ebp + 0xc], 0
je 0x415532
mov eax, dword [edx - 4]
cmp byte [eax + 0x19], cl
jne 0x415532
push esi
push 1
push 1
push 0x44f984
call fcn.0043d6c5
add esp, 0x10
cmp eax, 1
jne 0x415794
mov edx, dword [ebx + 8]
test edx, edx
je 0x415517
mov eax, edx
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4154f5
sub eax, edi
mov edi, eax
je 0x415517
push esi
push edi
push 1
push edx
call fcn.0043d6c5
add esp, 0x10
cmp eax, edi
jne 0x4157bb
push esi
push 2
push 1
push 0x453338
call fcn.0043d6c5
add esp, 0x10
cmp eax, 2
jne 0x4157e1
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [edx + eax*4]
cmp byte [ecx + 0x19], 0
je 0x4155c6
mov edx, dword [ebx + 4]
test edx, edx
je 0x41565d
mov eax, edx
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x415558
sub eax, edi
mov edi, eax
je 0x41565d
push esi
push edi
push 1
push edx
call fcn.0043d6c5
add esp, 0x10
cmp eax, edi
je 0x41565d
call fcn.0043da25
mov eax, dword [eax]
push 0
push eax
call fcn.0043d504
mov ecx, dword [ebp - 4]
add esp, 4
push eax
call fcn.00411330
mov ecx, dword [ebp + 8]
push eax
push ecx
push edi
push str.Unable_to_write__i_bytes_to_file__s:__s_n
call fcn.0043cd2e
add eax, 0x40
push eax
call fcn.0043cc22
push esi
call fcn.0043c7b7
add esp, 0x18
pop esi
pop edi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [ebx]
test edx, edx
je 0x4155f3
mov eax, edx
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4155d1
sub eax, edi
mov edi, eax
je 0x4155f3
push esi
push edi
push 1
push edx
call fcn.0043d6c5
add esp, 0x10
cmp eax, edi
jne 0x415806
push esi
push 1
push 1
push 0x45480c
call fcn.0043d6c5
add esp, 0x10
cmp eax, 1
jne 0x41584e
mov edx, dword [ebx + 4]
test edx, edx
je 0x415642
mov eax, edx
lea edi, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x415620
sub eax, edi
mov edi, eax
je 0x415642
push esi
push edi
push 1
push edx
call fcn.0043d6c5
add esp, 0x10
cmp eax, edi
jne 0x41557e
push esi
push 2
push 1
push 0x453338
call fcn.0043d6c5
add esp, 0x10
cmp eax, 2
jne 0x415897
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 8]
inc eax
mov dword [ebp + 0xc], eax
cmp eax, dword [ecx + 0xc]
jb 0x415490
mov edi, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [edi + 0x364]
jb 0x4153a0
mov edx, dword [edi + 0x388]
test edx, edx
je 0x4158e0
mov eax, edx
lea ebx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4156a0
sub eax, ebx
je 0x4158e0
mov eax, edx
lea ebx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4156b4
sub eax, ebx
mov ebx, eax
je 0x4158e0
push esi
push ebx
push 1
push edx
call fcn.0043d6c5
add esp, 0x10
cmp eax, ebx
je 0x4158e0
call fcn.0043da25
mov eax, dword [eax]
push 0
push eax
call fcn.0043d504
add esp, 4
push eax
mov ecx, edi
call fcn.00411330
push eax
mov eax, dword [ebp + 8]
push eax
push ebx
push str.Unable_to_write__i_bytes_to_file__s:__s_n
call fcn.0043cd2e
add eax, 0x40
push eax
call fcn.0043cc22
push esi
call fcn.0043c7b7
add esp, 0x18
pop esi
pop edi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.0043da25
mov eax, dword [eax]
push 0
push eax
call fcn.0043d504
add esp, 4
push eax
mov ecx, edi
call fcn.00411330
push eax
mov eax, dword [ebp + 8]
push eax
push 1
jmp 0x4158b9
call fcn.0043da25
mov eax, dword [eax]
push 0
push eax
call fcn.0043d504
mov ecx, dword [ebp - 4]
add esp, 4
push eax
call fcn.00411330
mov ecx, dword [ebp + 8]
push eax
push ecx
push edi
jmp 0x4158b9
call fcn.0043da25
mov eax, dword [eax]
push 0
push eax
call fcn.0043d504
mov ecx, dword [ebp - 4]
add esp, 4
push eax
call fcn.00411330
mov edx, dword [ebp + 8]
push eax
push edx
push 1
jmp 0x4158b9
call fcn.0043da25
mov eax, dword [eax]
push 0
push eax
call fcn.0043d504
mov ecx, dword [ebp - 4]
add esp, 4
push eax
call fcn.00411330
mov ecx, dword [ebp + 8]
push eax
push ecx
push 1
jmp 0x4158b9
call fcn.0043da25
mov eax, dword [eax]
push 0
push eax
call fcn.0043d504
mov ecx, dword [ebp - 4]
add esp, 4
push eax
call fcn.00411330
mov edx, dword [ebp + 8]
push eax
push edx
push edi
jmp 0x4158b9
call fcn.0043da25
mov eax, dword [eax]
push 0
push eax
call fcn.0043d504
mov ecx, dword [ebp - 4]
add esp, 4
push eax
call fcn.00411330
push eax
mov eax, dword [ebp + 8]
push eax
jmp 0x4158b7
call fcn.0043da25
mov eax, dword [eax]
push 0
push eax
call fcn.0043d504
mov ecx, dword [ebp - 4]
add esp, 4
push eax
call fcn.00411330
mov edx, dword [ebp + 8]
push eax
push edx
push edi
push str.Unable_to_write__i_bytes_to_file__s:__s_n
call fcn.0043cd2e
add eax, 0x40
push eax
call fcn.0043cc22
push esi
call fcn.0043c7b7
add esp, 0x18
pop esi
pop edi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.0043da25
mov eax, dword [eax]
push 0
push eax
call fcn.0043d504
mov ecx, dword [ebp - 4]
add esp, 4
push eax
call fcn.00411330
push eax
mov eax, dword [ebp + 8]
push eax
push 1
push str.Unable_to_write__i_bytes_to_file__s:__s_n
call fcn.0043cd2e
add eax, 0x40
push eax
call fcn.0043cc22
push esi
call fcn.0043c7b7
add esp, 0x18
pop esi
pop edi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.0043da25
mov eax, dword [eax]
push 0
push eax
call fcn.0043d504
mov ecx, dword [ebp - 4]
add esp, 4
push eax
call fcn.00411330
mov edx, dword [ebp + 8]
push eax
push edx
push 2
push str.Unable_to_write__i_bytes_to_file__s:__s_n
call fcn.0043cd2e
add eax, 0x40
push eax
call fcn.0043cc22
push esi
call fcn.0043c7b7
add esp, 0x18
pop esi
pop edi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 8
push esi
call fcn.0043c7b7
add esp, 4
pop esi
pop edi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 8