Function at 0x410388
Capabilities:
Write file on windows

Disassembly:
mov eax, 0x49ce5a
call fcn.00497a30
sub esp, 0x86c
push ebx
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 0x8d48]
cmp eax, 8
je 0x4103bb
cmp eax, 0xb
je 0x4103bb
cmp eax, 9
je 0x4103bb
cmp eax, 0xa
jne 0x4109cc
xor ebx, ebx
cmp byte [edi + 0x8efa], bl
je 0x4105f5
cmp byte [edi + 0x38], bl
jne 0x410413
cmp dword [edi + 0x34], ebx
je 0x4109cc
lea esi, [edi + 0x30]
call fcn.0040b31e
push esi
mov ebx, edi
call fcn.0040b2af
cmp dword [ebp + 8], 0
jne 0x410409
push dword [edi + 0x34]
mov ecx, dword [esi]
call fcn.004886d9
cmp eax, 0xf
mov dword [ebp + 8], eax
jne 0x410409
call fcn.0040b31e
jmp 0x4109cc
lea esi, [edi + 0x34]
call fcn.0040b31e
xor ebx, ebx
mov ecx, dword [edi + 0x30]
cmp ecx, ebx
je 0x4109cc
cmp dword [ebp + 8], ebx
mov byte [edi + 0x8efa], 0
mov byte [edi + 0x38], 0
jne 0x4105f5
cmp byte [0x4bb215], 0
je 0x410474
lea eax, [edi + 0x8438]
push eax
call fcn.00486943
push eax
call sub.MSVCR71.dll_strcmp
test eax, eax
pop ecx
pop ecx
je 0x410474
push ebx
push 0x16
call fcn.004109dd
push 0xffffffffffffffff
mov ecx, 0x4af
call fcn.0040753b
push eax
mov ecx, edi
call fcn.0040e4b9
jmp 0x4109cc
mov eax, dword [edi + 0x8d48]
cmp eax, 9
jne 0x4104de
cmp byte [edi + 0x8ef9], 0
lea eax, [ebp - 0x24]
je 0x410492
push str.ASCII
jmp 0x410497
push str.BINARY
push eax
call sub.MSVCR71.dll_strcpy
lea eax, [edi + 0x8e08]
cmp dword [eax + 0x18], 0x10
pop ecx
pop ecx
jb 0x4104b0
mov eax, dword [eax + 4]
jmp 0x4104b3
add eax, 4
mov esi, eax
call fcn.004113b5
push eax
lea eax, [ebp - 0x24]
push eax
push 0xffffffffffffffff
mov ecx, 0x41f
call fcn.0040753b
push eax
lea eax, [ebp - 0x878]
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
add esp, 0x10
jmp 0x410515
cmp eax, 0xa
jne 0x410520
lea eax, [edi + 0x8e08]
cmp dword [eax + 0x18], 0x10
jb 0x4104f4
mov eax, dword [eax + 4]
jmp 0x4104f7
add eax, 4
push eax
push 0xffffffffffffffff
mov ecx, 0x508
call fcn.0040753b
push eax
lea eax, [ebp - 0x878]
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
add esp, 0xc
lea eax, [ebp - 0x878]
jmp 0x4105ed
cmp eax, 8
jne 0x4105d3
lea eax, [edi + 0x8de4]
cmp dword [eax + 0x18], 0x10
jb 0x41053a
mov eax, dword [eax + 4]
jmp 0x41053d
add eax, 4
lea ecx, [ebp - 0x78]
push ecx
push eax
call dword [sym.imp.MSVCR71.dll__stati64]
test eax, eax
pop ecx
pop ecx
jne 0x41055e
mov ebx, dword [ebp - 0x5c]
test ebx, ebx
mov esi, dword [ebp - 0x60]
jg 0x410562
jl 0x41055e
test esi, esi
ja 0x410562
xor esi, esi
xor ebx, ebx
cmp byte [edi + 0x8ef9], 0
lea eax, [ebp - 0x24]
je 0x410575
push str.ASCII
jmp 0x41057a
push str.BINARY
push eax
call sub.MSVCR71.dll_strcpy
lea eax, [edi + 0x8e08]
cmp dword [eax + 0x18], 0x10
pop ecx
pop ecx
jb 0x410593
mov eax, dword [eax + 4]
jmp 0x410596
add eax, 4
push ebx
push esi
mov esi, eax
call fcn.004113b5
push eax
lea eax, [ebp - 0x24]
push eax
push 0xffffffffffffffff
mov ecx, 0x407
call fcn.0040753b
push eax
lea eax, [ebp - 0x878]
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
add esp, 0x18
lea eax, [ebp - 0x878]
push eax
mov ecx, edi
call fcn.0040e4b9
xor ebx, ebx
jmp 0x4105f5
cmp dword [edi + 0x8e28], 4
push 0xffffffffffffffff
mov ecx, 0x504
je 0x4105e8
mov ecx, 0x411
call fcn.0040753b
mov ecx, edi
push eax
call fcn.0040e4b9
cmp byte [edi + 0x8d33], 0
jne 0x410624
mov eax, dword [edi + 0x8d48]
cmp eax, 9
je 0x410616
cmp eax, 0xa
je 0x410616
push dword [edi + 0x8ccc]
jmp 0x41061c
push dword [edi + 0x8cc8]
mov ecx, dword [edi + 0x30]
call fcn.00484a19
mov eax, dword [0x4b9300]
mov ecx, dword [edi + 0x30]
xor esi, esi
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
inc esi
push esi
lea eax, [ebp - 0x44]
push eax
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
call fcn.004848ea
mov dword [edi + 0x8118], ebx
mov dword [edi + 0x811c], ebx
mov dword [edi + 0x8150], ebx
mov dword [edi + 0x814c], ebx
call dword [sym.imp.WINMM.dll_timeGetTime]
cmp dword [ebp + 8], ebx
mov dword [edi + 0x80fc], eax
jne 0x41067f
mov eax, dword [edi + 0x30]
call fcn.0040b213
cmp byte [edi + 0x8d1d], 0
je 0x4106ea
mov eax, dword [edi + 0x8d48]
cmp eax, 9
mov bl, 1
je 0x41069a
cmp eax, 0xa
jne 0x41069c
xor bl, bl
mov ecx, dword [edi + 0x8d24]
test ecx, ecx
je 0x4106ab
mov eax, dword [ecx]
push esi
call dword [eax]
push 0x54
call sub.MSVCR71.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov dword [ebp - 0x18], eax
and dword [ebp - 4], 0
test eax, eax
je 0x4106d5
push dword [edi + 0x8d20]
mov esi, eax
push 0x8000
call fcn.00466e20
xor esi, esi
inc esi
jmp 0x4106d7
xor eax, eax
or dword [ebp - 4], 0xffffffff
mov dword [edi + 0x8d24], eax
mov byte [edi + 0x8d1e], 0
xor ebx, ebx
cmp dword [edi + 0x8d48], 0xb
mov cl, byte [edi + 0x8d15]
push 0x16
pop eax
mov byte [ebp - 0x14], cl
jne 0x410703
mov byte [ebp - 0x14], 1
cmp dword [ebp + 8], ebx
jne 0x41071c
cmp byte [edi + 0x8d14], 0
je 0x41071c
push dword [ebp - 0x14]
mov ecx, dword [edi + 0x30]
call fcn.004883af
mov ecx, dword [edi + 0x8d48]
cmp ecx, 8
je 0x410989
jle 0x4109cc
cmp ecx, 0xa
jle 0x410784
cmp ecx, 0xb
jne 0x4109cc
cmp dword [ebp + 8], ebx
jne 0x410779
cmp byte [edi + 0x8d14], 0
je 0x410764
cmp eax, ebx
jne 0x4109a7
mov dword [edi + 0x8d48], 0xe
jmp 0x4109cc
mov dword [edi + 0x8d48], 7
push ebx
call fcn.00410ce6
jmp 0x4109cc
push ebx
push 0x40c
jmp 0x4109c4
cmp dword [ebp + 8], ebx
jne 0x41097e
cmp byte [edi + 0x8d14], 0
je 0x4107bb
cmp eax, ebx
jne 0x4107a9
mov dword [edi + 0x8d48], 0xd
jmp 0x4109cc
push ebx
push 0x4d4
push esi
push edi
call fcn.0040f274
jmp 0x4109cc
lea ebx, [edi + 0x814c]
cmp dword [ebx], 0
mov dword [edi + 0x8d48], 6
je 0x410937
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, eax
sub ecx, dword [edi + 0x80fc]
mov dword [edi + 0x80fc], eax
add dword [edi + 0x8104], ecx
mov byte [ebp + 0xb], 0
cmp byte [edi + 0x8d1d], 0
je 0x410872
mov esi, dword [edi + 0x8d24]
test esi, esi
je 0x410872
cmp byte [edi + 0x8d1e], 0
jne 0x410937
push 0
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 0x28]
lea eax, [edi + 0xf9]
push ecx
push eax
mov eax, dword [ebx]
call fcn.00466ee4
cmp eax, 1
je 0x410953
mov esi, dword [ebp - 0x14]
cmp esi, 0x8000
jg 0x410953
cmp eax, 2
jne 0x41084d
mov byte [ebp + 0xb], 1
jmp 0x41085d
cmp eax, 3
mov byte [ebp + 0xb], 0
jne 0x41085d
mov byte [edi + 0x8d1e], 1
push esi
push dword [ebp - 0x28]
lea eax, [edi + 0xf9]
push eax
call sub.MSVCR71.dll_memcpy
add esp, 0xc
mov dword [ebx], esi
mov esi, dword [ebx]
test esi, esi
je 0x41092d
mov eax, esi
cdq
add dword [edi + 0x8118], eax
lea ecx, [edi + 0x8110]
adc dword [edi + 0x811c], edx
add dword [ecx], eax
mov eax, esi
adc dword [ecx + 4], edx
neg eax
cdq
push edx
push eax
mov eax, dword [edi + 0x84ac]
call fcn.0040a513
test eax, eax
je 0x410961
mov esi, dword [edi + 0x84c0]
test esi, esi
je 0x4108ca
cmp byte [edi + 0x84c4], 0
jne 0x4108ca
mov bl, 1
call fcn.00456bca
push 0
lea ecx, [ebp - 0x18]
push ecx
push dword [edi + 0x814c]
lea eax, [edi + 0xf9]
push eax
push dword [edi + 0x8148]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov esi, dword [edi + 0x84c0]
test eax, eax
setne byte [ebp - 0xd]
test esi, esi
je 0x410900
xor bl, bl
call fcn.00456bca
cmp byte [ebp - 0xd], 0
je 0x41096a
lea ebx, [edi + 0x814c]
mov eax, dword [ebx]
cmp dword [ebp - 0x18], eax
jne 0x41096a
mov ecx, dword [edi + 0x84bc]
test ecx, ecx
je 0x41092a
push eax
lea eax, [edi + 0xf9]
push eax
call fcn.00482b87
and dword [ebx], 0
cmp byte [ebp + 0xb], 0
jne 0x4107f2
mov ecx, dword [edi + 0x30]
and dword [ebx], 0
push 0
push ebx
push 0x8000
lea eax, [edi + 0xf9]
push eax
call fcn.0048668b
jmp 0x4109cc
push 0
push 0x4f5
push 1
jmp 0x4107b0
push 0
push 0x46f
jmp 0x41095a
mov eax, dword [edi + 0x84ac]
call fcn.0040a6ed
push 0
push 0x424
jmp 0x41095a
push ebx
push 0x421
jmp 0x4107af
cmp dword [ebp + 8], ebx
jne 0x4109be
cmp byte [edi + 0x8d14], 0
je 0x4109af
cmp eax, ebx
jne 0x4109a7
mov dword [edi + 0x8d48], 0xc
jmp 0x4109cc
push ebx
push 0x4d4
jmp 0x4109c4
mov dword [edi + 0x8d48], 5
jmp 0x41076e
push ebx
push 0x409
mov ecx, edi
push esi
call fcn.0040fa80
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 4