Function at 0x100193d0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1008505c
mov eax, dword fs:[0]
push eax
mov eax, 0x1c70
call fcn.1007d160
mov eax, dword [0x100bae20]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov eax, dword [esi]
mov edi, dword [esi + 0xc]
sar eax, 3
and eax, 0x1ff
inc eax
mov dword [ebp - 0x1c64], edi
imul edi, eax
mov ebx, ecx
mov ecx, dword [esi + 8]
mov dword [ebp - 0x1c60], ecx
lea ecx, [ebp - 0x1c58]
mov dword [ebp - 0x1c78], ebx
mov dword [ebp - 0x1c6c], eax
mov dword [ebp - 0x1c7c], edi
call fcn.10010f30
mov dword [ebp - 0x1c58], 0x10086f00
mov eax, dword [ebx + 0x3c]
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x1c58]
test eax, eax
je 0x10019485
push eax
call fcn.10010f90
test al, al
jne 0x10019490
lea ecx, [ebp - 0x1c58]
mov dword [ebp - 4], 0xffffffff
call fcn.10011410
xor al, al
jmp 0x10019c12
lea eax, [ebx + 0x20]
push eax
call fcn.10011570
jmp 0x10019468
mov eax, 0x2000
cdq
idiv edi
mov ecx, eax
mov dword [ebp - 0x1c5c], ecx
cmp ecx, 1
jge 0x100194b5
mov dword [ebp - 0x1c5c], 1
mov ecx, dword [ebp - 0x1c5c]
mov eax, dword [ebp - 0x1c60]
cmp ecx, eax
jle 0x100194c7
mov dword [ebp - 0x1c5c], eax
mov ecx, eax
lea eax, [ecx + eax - 1]
cdq
idiv ecx
mov ebx, dword [ebx + 0x3c]
mov dword [ebp - 0x1c30], eax
test ebx, ebx
je 0x100194fe
mov edx, edi
imul edx, dword [ebp - 0x1c60]
lea eax, [edx + eax*8 + 0x1ff]
and eax, 0xffffff00
push eax
mov ecx, ebx
call fcn.10003030
mov eax, dword [ebp - 0x1c30]
mov ebx, 0x400
lea ecx, [ebp - 0x1c20]
mov dword [ebp - 0x1c28], ecx
mov dword [ebp - 0x1c24], ebx
cmp eax, ebx
jbe 0x10019544
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1007ced2
mov dword [ebp - 0x1c28], eax
mov eax, dword [ebp - 0x1c30]
add esp, 4
mov dword [ebp - 0x1c24], eax
lea ecx, [ebp - 0xc18]
mov byte [ebp - 4], 1
mov dword [ebp - 0xc20], ecx
mov dword [ebp - 0xc1c], ebx
cmp eax, ebx
jbe 0x10019589
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1007ced2
mov dword [ebp - 0xc20], eax
mov eax, dword [ebp - 0x1c30]
add esp, 4
mov dword [ebp - 0xc1c], eax
add edi, 0x20
lea eax, [ebp - 0x410]
mov byte [ebp - 4], 2
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x414], ebx
cmp edi, ebx
jbe 0x100195bb
push edi
call fcn.1007ced2
add esp, 4
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x414], edi
push 4
mov ebx, eax
push 0x1008735c
lea ecx, [ebp - 0x1c58]
mov byte [ebp - 4], 3
mov dword [ebp - 0x1c74], ebx
mov dword [ebp - 0x1c70], 8
xor edi, edi
call fcn.10011040
push edi
lea ecx, [ebp - 0x1c58]
call fcn.10011120
mov eax, dword [ebp - 0x1c30]
mov dword [ebp - 0x1c34], edi
test eax, eax
jle 0x1001974b
jmp 0x10019610
mov ecx, dword [ebp - 0x1c5c]
lea eax, [edi + ecx]
mov ecx, dword [ebp - 0x1c60]
mov dword [ebp - 0x1c2c], eax
cmp eax, ecx
jle 0x1001962f
mov dword [ebp - 0x1c2c], ecx
mov edx, dword [ebp - 0x1c28]
lea ecx, [ebp - 0x1c58]
mov dword [ebp - 0x1c68], edx
call fcn.10011030
mov ecx, dword [ebp - 0x1c68]
mov edx, dword [ebp - 0x1c34]
mov dword [ecx + edx*4], eax
cmp edi, dword [ebp - 0x1c2c]
jge 0x100196f3
mov eax, dword [ebp - 0x1c6c]
cmp eax, 3
jne 0x10019694
mov eax, dword [esi + 0x30]
imul eax, edi
add eax, dword [esi + 0x10]
mov ecx, 1
push ecx
mov ecx, dword [ebp - 0x1c64]
push ecx
push 0
push ebx
push 0
push eax
call fcn.1000bc90
add esp, 0x18
mov eax, ebx
jmp 0x100196d3
cmp eax, 4
jne 0x100196c1
mov eax, dword [esi + 0x30]
mov edx, dword [ebp - 0x1c64]
imul eax, edi
add eax, dword [esi + 0x10]
mov ecx, 1
push ecx
push edx
push 0
push ebx
push 0
push eax
call fcn.1000bc00
add esp, 0x18
mov eax, ebx
jmp 0x100196d3
cmp eax, 1
jle 0x100196ca
mov eax, ebx
jmp 0x100196d3
mov eax, dword [esi + 0x30]
imul eax, edi
add eax, dword [esi + 0x10]
mov ecx, dword [ebp - 0x1c7c]
push ecx
push eax
lea ecx, [ebp - 0x1c58]
call fcn.10011040
inc edi
cmp edi, dword [ebp - 0x1c2c]
jl 0x10019661
mov edx, dword [ebp - 0x1c28]
mov eax, dword [ebp - 0xc20]
lea ecx, [ebp - 0x1c58]
mov dword [ebp - 0x1c68], edx
mov dword [ebp - 0x1c2c], eax
call fcn.10011030
mov edx, dword [ebp - 0x1c68]
mov ecx, eax
mov eax, dword [ebp - 0x1c34]
sub cx, word [edx + eax*4]
mov edx, dword [ebp - 0x1c2c]
mov word [edx + eax*2], cx
inc eax
mov dword [ebp - 0x1c34], eax
cmp eax, dword [ebp - 0x1c30]
jl 0x10019610
mov eax, dword [ebp - 0x1c30]
cmp eax, 2
jle 0x100197c2
lea ecx, [ebp - 0x1c58]
call fcn.10011030
mov edi, dword [ebp - 0x1c30]
xor esi, esi
mov dword [ebp - 0x1c34], eax
test edi, edi
jle 0x1001978a
lea ecx, [ecx]
mov eax, dword [ebp - 0x1c28]
mov ecx, dword [eax + esi*4]
push ecx
lea ecx, [ebp - 0x1c58]
call fcn.10011120
inc esi
cmp esi, edi
jl 0x10019770
lea ecx, [ebp - 0x1c58]
call fcn.10011030
xor esi, esi
mov dword [ebp - 0x1c2c], eax
test edi, edi
jle 0x10019834
mov edx, dword [ebp - 0xc20]
movsx eax, word [edx + esi*2]
push eax
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
inc esi
cmp esi, edi
jl 0x100197a5
jmp 0x10019834
jne 0x10019817
lea ecx, [ebp - 0x1c58]
call fcn.10011030
mov dword [ebp - 0x1c34], eax
xor esi, esi
jmp 0x100197e0
mov ecx, dword [ebp - 0x1c28]
mov edx, dword [ecx + esi]
push edx
lea ecx, [ebp - 0x1c58]
call fcn.10011120
add esi, 4
cmp esi, 8
jl 0x100197e0
mov ecx, dword [ebp - 0xc20]
movsx eax, word [ecx + 2]
movsx ecx, word [ecx]
shl eax, 0x10
add eax, ecx
mov dword [ebp - 0x1c2c], eax
jmp 0x10019834
mov edx, dword [ebp - 0x1c28]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xc20]
movsx edx, word [ecx]
mov dword [ebp - 0x1c34], eax
mov dword [ebp - 0x1c2c], edx
mov esi, dword [ebp - 0x1c6c]
cmp esi, 1
jle 0x10019889
lea ecx, [ebp - 0x1c58]
call fcn.10011030
push 8
lea ecx, [ebp - 0x1c58]
mov dword [ebp - 0x1c70], eax
call fcn.100110a0
push 8
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
push 8
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
cmp esi, 4
jne 0x10019889
push 8
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
lea ecx, [ebp - 0x1c58]
call fcn.10011030
push 9
lea ecx, [ebp - 0x1c58]
mov ebx, eax
call fcn.100110a0
push 0x100
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
push 4
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
push 1
lea ecx, [ebp - 0x1c58]
call fcn.10011120
mov eax, dword [ebp - 0x1c64]
push eax
lea ecx, [ebp - 0x1c58]
call fcn.10011120
push 0x101
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
push 4
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
push 1
lea ecx, [ebp - 0x1c58]
call fcn.10011120
mov ecx, dword [ebp - 0x1c60]
push ecx
lea ecx, [ebp - 0x1c58]
call fcn.10011120
push 0x102
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
push 3
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
mov edi, esi
push edi
lea ecx, [ebp - 0x1c58]
call fcn.10011120
mov edx, dword [ebp - 0x1c70]
push edx
lea ecx, [ebp - 0x1c58]
call fcn.10011120
push 0x103
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
push 4
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
push 1
lea ecx, [ebp - 0x1c58]
call fcn.10011120
push 1
lea ecx, [ebp - 0x1c58]
call fcn.10011120
push 0x106
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
push 3
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
push 1
lea ecx, [ebp - 0x1c58]
call fcn.10011120
xor eax, eax
cmp edi, 1
setg al
lea ecx, [ebp - 0x1c58]
inc eax
push eax
call fcn.10011120
push 0x111
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
push 4
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
mov esi, dword [ebp - 0x1c30]
push esi
lea ecx, [ebp - 0x1c58]
call fcn.10011120
mov ecx, dword [ebp - 0x1c34]
push ecx
lea ecx, [ebp - 0x1c58]
call fcn.10011120
push 0x115
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
push 3
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
push 1
lea ecx, [ebp - 0x1c58]
call fcn.10011120
push edi
lea ecx, [ebp - 0x1c58]
call fcn.10011120
push 0x116
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
push 4
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
push 1
lea ecx, [ebp - 0x1c58]
call fcn.10011120
mov edx, dword [ebp - 0x1c5c]
push edx
lea ecx, [ebp - 0x1c58]
call fcn.10011120
push 0x117
lea ecx, [ebp - 0x1c58]
call fcn.100110a0
xor eax, eax
cmp esi, 1
setle al
lea ecx, [ebp - 0x1c58]
add eax, 3
push eax
call fcn.100110a0
push esi
lea ecx, [ebp - 0x1c58]
call fcn.10011120
mov ecx, dword [ebp - 0x1c2c]
push ecx
lea ecx, [ebp - 0x1c58]
call fcn.10011120
push 0
lea ecx, [ebp - 0x1c58]
call fcn.10011120
lea ecx, [ebp - 0x1c58]
call fcn.10010fd0
mov eax, dword [ebp - 0x1c78]
cmp dword [eax + 0x3c], 0
je 0x10019b19
mov ecx, dword [eax + 0x3c]
mov edx, dword [ecx]
mov byte [edx + 4], bl
mov esi, dword [eax + 0x3c]
mov edx, dword [esi]
mov ecx, ebx
sar ecx, 8
mov byte [edx + 5], cl
mov esi, dword [eax + 0x3c]
mov edx, dword [esi]
mov ecx, ebx
sar ecx, 0x10
mov byte [edx + 6], cl
mov eax, dword [eax + 0x3c]
mov eax, dword [eax]
sar ebx, 0x18
mov byte [eax + 7], bl
jmp 0x10019b71
add eax, 0x20
cmp dword [eax + 0x14], 0x10
jb 0x10019b24
mov eax, dword [eax]
push 0x10087390
push eax
call dword [sym.imp.MSVCR100.dll_fopen]
mov esi, dword [ebp - 0x1c74]
push 0
mov ecx, ebx
mov edx, ebx
mov edi, eax
mov byte [esi], bl
sar ecx, 8
sar edx, 0x10
push 4
sar ebx, 0x18
push edi
mov byte [esi + 1], cl
mov byte [esi + 2], dl
mov byte [esi + 3], bl
call dword [sym.imp.MSVCR100.dll_fseek]
push edi
push 4
push 1
push esi
call dword [sym.imp.MSVCR100.dll_fwrite]
push edi
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 0x28
mov eax, dword [ebp - 0x418]
lea ecx, [ebp - 0x410]
cmp eax, ecx
je 0x10019ba3
push eax
call sub.MSVCR100.dll_void___cdecl_operator_delete___void__
lea edx, [ebp - 0x410]
mov esi, 0x400
add esp, 4
mov dword [ebp - 0x418], edx
mov dword [ebp - 0x414], esi
jmp 0x10019ba8
mov esi, 0x400
mov eax, dword [ebp - 0xc20]
lea ecx, [ebp - 0xc18]
cmp eax, ecx
je 0x10019bd3
push eax
call sub.MSVCR100.dll_void___cdecl_operator_delete___void__
lea edx, [ebp - 0xc18]
add esp, 4
mov dword [ebp - 0xc20], edx
mov dword [ebp - 0xc1c], esi
mov eax, dword [ebp - 0x1c28]
lea ecx, [ebp - 0x1c20]
cmp eax, ecx
je 0x10019bfe
push eax
call sub.MSVCR100.dll_void___cdecl_operator_delete___void__
lea edx, [ebp - 0x1c20]
add esp, 4
mov dword [ebp - 0x1c28], edx
mov dword [ebp - 0x1c24], esi
lea ecx, [ebp - 0x1c58]
mov dword [ebp - 4], 0xffffffff
call fcn.10011410
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1007cee0
mov esp, ebp
pop ebp
ret 8