Function at 0xc048e2
Capabilities:
Encode data using xor
Parse pe header

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x9a4
mov eax, dword [0xc940a0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor eax, eax
mov esi, ecx
push 0x40
push eax
mov dword [ebp - 0x910], eax
lea eax, [ebp - 0x460]
push eax
mov dword [ebp - 0x958], esi
call fcn.00ab4bf6
add esp, 0xc
lea eax, [ebp - 0x460]
push eax
push dword [esi + 0x18]
call dword [sym.imp.ext_ms_win_ntuser_draw_l1_1_0.dll_BeginPaint]
mov ebx, eax
mov dword [ebp - 0x914], ebx
test ebx, ebx
jne 0xc0495f
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0xc0494f
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0xc08d48
mov ebx, 0x80004005
jmp 0xc08d48
xor eax, eax
lea edi, [ebp - 0x29c]
mov dword [ebp - 0x960], eax
mov dword [ebp - 0x95c], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [esi + 0x4c]
neg eax
sbb eax, eax
and eax, 0xff4d98e0
add eax, 0xb26720
push eax
call dword [sym.imp.ext_ms_win_gdi_draw_l1_1_0.dll_CreateSolidBrush]
mov esi, eax
test esi, esi
jne 0xc0499d
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
jmp 0xc049cf
push 0x4e
call dword [sym.imp.api_ms_win_ntuser_sysparams_l1_1_0.dll_GetSystemMetrics]
push 0x4f
mov dword [ebp - 0x294], eax
call dword [sym.imp.api_ms_win_ntuser_sysparams_l1_1_0.dll_GetSystemMetrics]
mov dword [ebp - 0x290], eax
lea eax, [ebp - 0x29c]
push esi
push eax
push ebx
call dword [sym.imp.USER32.dll_FillRect]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ebx, dword [ebp - 0x958]
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0x960]
push eax
push dword [ebx + 0x18]
xor eax, eax
push eax
call dword [sym.imp.ext_ms_win_rtcore_ntuser_window_ext_l1_1_0.dll_MapWindowPoints]
mov eax, dword [ebx + 0x44]
lea edi, [ebp - 0x134]
mov dword [ebp - 0x8c8], eax
xor eax, eax
stosd dword es:[edi], eax
push 0x2c
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
push eax
mov dword [ebp - 0x91c], eax
mov dword [ebp - 0x92c], eax
lea eax, [ebp - 0x228]
push eax
call fcn.00ab4bf6
add esp, 0xc
mov ebx, 0xc96238
xor edx, edx
mov dword [ebp - 0x934], edx
xor ecx, ecx
xor eax, eax
inc ecx
lock cmpxchg dword [ebx], ecx
test eax, eax
jne 0xc04a2d
mov eax, dword [0xc95890]
mov ebx, 0x9fbcf2
mov dword [ebp - 0x8e4], ebx
mov dword [ebp - 0x904], 0x67
mov dword [ebp - 0x8bc], 0x337
mov dword [ebp - 0x8dc], 0x10b
mov dword [ebp - 0x8c0], 0x20b
test eax, eax
jne 0xc0508a
push 0x338
mov esi, edx
mov dword [ebp - 0x8c4], edx
push edx
mov dword [ebp - 0x8e0], edx
mov dword [ebp - 0x8fc], esi
mov dword [ebp - 0x90c], edx
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapAlloc]
mov dword [ebp - 0x8d0], eax
test eax, eax
je 0xc0507e
or dword [ebp - 0x8f4], 0xffffffff
xor edx, edx
add eax, 7
mov dword [ebp - 0x2a8], 0xab69605e
mov edi, ebx
mov dword [ebp - 0x2a4], 0x7f1137f
mov cl, dl
mov dword [ebp - 0x8d8], edx
mov dword [ebp - 0x8f0], eax
mov dword [ebp - 0x8d4], edi
mov dword [ebp - 0x8ec], 0x67
movzx ebx, byte [edi - 2]
movzx eax, byte [edi - 1]
shl ebx, 8
or ebx, eax
movzx eax, byte [edi]
shl ebx, 8
or ebx, eax
movzx eax, byte [edi + 1]
movzx edi, byte [edi + 2]
shl ebx, 8
or ebx, eax
shl edi, 8
mov eax, dword [ebp - 0x8d4]
xor edx, ebx
mov dword [ebp - 0x8b8], edx
movzx eax, byte [eax + 3]
or edi, eax
mov eax, dword [ebp - 0x8d4]
shl edi, 8
movzx eax, byte [eax + 4]
or edi, eax
mov eax, dword [ebp - 0x8d4]
shl edi, 8
add dword [ebp - 0x8d4], 8
movzx eax, byte [eax + 5]
or edi, eax
xor esi, edi
mov dword [ebp - 0x8b4], esi
mov esi, edx
xor esi, dword [ebp - 0x8b4]
xor esi, 0xac987321
lea eax, [esi + 0x54969fa2]
rol eax, 5
imul edx, eax, 0x137f
mov eax, esi
rol eax, 0xa
add edx, eax
mov eax, dword [ebp - 0x8b8]
xor eax, edx
mov dword [ebp - 0x8b8], eax
add eax, 0x7f1137f
ror eax, 9
imul edx, eax, 0xab69
mov eax, dword [ebp - 0x8b8]
rol eax, 2
sub edx, eax
xor esi, edx
imul edx, esi, 0x605e
mov eax, esi
shr eax, 0xd
sub edx, eax
mov eax, dword [ebp - 0x8b8]
sub edx, 0x756c8a2
xor eax, edx
mov dword [ebp - 0x8b8], eax
xor eax, 0xab69
rol eax, 6
imul edx, eax, 0x7f1
mov eax, dword [ebp - 0x8b8]
rol eax, 2
sub edx, eax
mov eax, 0x7f1137f
xor esi, edx
mov edx, esi
xor edx, 0xab69605e
sub eax, edx
mov edx, dword [ebp - 0x8b8]
xor edx, eax
mov dword [ebp - 0x8b8], edx
mov eax, dword [ebp - 0x8b8]
xor eax, 0x137f
ror edx, 6
imul eax, eax, 0xab69
xor edx, eax
xor esi, edx
lea eax, [esi + 0x7f1137f]
ror eax, 0xf
imul edx, eax, 0x605e
mov eax, esi
rol eax, 2
add edx, eax
mov eax, dword [ebp - 0x8b8]
xor eax, edx
mov dword [ebp - 0x8b8], eax
add eax, 0x54969fa2
ror eax, 0xe
imul edx, eax, 0x7f1
mov eax, dword [ebp - 0x8b8]
rol eax, 8
sub edx, eax
xor esi, edx
mov eax, esi
xor eax, 0xab69605e
ror eax, 0xc
imul edx, eax, 0x137f
mov eax, esi
ror eax, 0xa
xor edx, eax
mov eax, dword [ebp - 0x8b8]
xor eax, edx
mov dword [ebp - 0x8b8], eax
xor eax, 0x7f1
imul edx, eax, 0xab69
mov eax, dword [ebp - 0x8b8]
shr eax, 0xa
xor edx, eax
xor edx, esi
mov esi, dword [ebp - 0x8b8]
mov eax, edx
not eax
ror eax, 5
add eax, 0x605e
imul eax, eax, 0x7f1
xor esi, eax
lea eax, [esi - 0x7f1]
xor eax, edx
xor eax, 0xab69605e
mov dword [ebp - 0x8b4], eax
xor eax, 0x7f1
rol eax, 2
imul edx, eax, 0x137f
mov eax, dword [ebp - 0x8b4]
shr eax, 2
add edx, eax
xor esi, edx
lea eax, [esi - 0x7f1137f]
ror eax, 6
imul edx, eax, 0xab69
mov eax, esi
rol eax, 7
add edx, eax
mov eax, dword [ebp - 0x8b4]
xor eax, edx
mov dword [ebp - 0x8b4], eax
mov edx, eax
xor eax, 0x137f
ror edx, 9
imul eax, eax, 0x605e
add edx, eax
xor esi, edx
mov eax, esi
xor eax, 0xab69
rol eax, 5
imul edx, eax, 0x7f1
mov eax, esi
rol eax, 7
add edx, eax
xor dword [ebp - 0x8b4], edx
mov edx, dword [ebp - 0x8b4]
xor esi, edx
xor esi, 0xac987321
mov eax, esi
ror eax, 3
imul eax, eax, 0x137f
sub eax, 0xd0dd417
xor edx, eax
mov dword [ebp - 0x8b4], edx
lea eax, [edx - 0x7f1137f]
ror eax, 1
imul edx, eax, 0x605e
mov eax, dword [ebp - 0x8b4]
ror eax, 6
sub edx, eax
xor esi, edx
lea eax, [esi - 0x54969fa2]
rol eax, 3
imul edx, eax, 0x7f1
mov eax, esi
rol eax, 0xe
add edx, eax
mov eax, dword [ebp - 0x8b4]
xor eax, edx
mov dword [ebp - 0x8b4], eax
add eax, 0xab69605e
rol eax, 0xf
imul edx, eax, 0x137f
mov eax, dword [ebp - 0x8b4]
ror eax, 0xe
sub edx, eax
xor esi, edx
mov eax, esi
xor eax, 0x605e
imul edx, eax, 0xab69
mov eax, esi
shr eax, 3
xor edx, eax
mov eax, dword [ebp - 0x8b4]
xor eax, edx
mov dword [ebp - 0x8b4], eax
xor eax, 0x7f1137f
rol eax, 4
imul edx, eax, 0x605e
mov eax, dword [ebp - 0x8b4]
rol eax, 2
xor edx, eax
mov eax, dword [ebp - 0x8b4]
xor edx, dword [ebp - 0x8d8]
xor eax, dword [ebp - 0x8f4]
xor esi, edx
mov edx, esi
mov dword [ebp - 0x8b8], esi
mov esi, dword [ebp - 0x8f0]
mov dword [ebp - 0x8f4], edi
mov edi, dword [ebp - 0x8d4]
mov dword [ebp - 0x8d8], ebx
mov byte [esi - 4], dl
mov byte [esi], al
ror edx, 8
mov byte [esi - 5], dl
ror eax, 8
mov byte [esi - 1], al
ror edx, 8
mov byte [esi - 6], dl
ror eax, 8
mov byte [esi - 2], al
ror edx, 8
ror eax, 8
mov byte [esi - 7], dl
mov byte [esi - 3], al
add esi, 8
ror eax, 8
ror edx, 8
sub dword [ebp - 0x8ec], 1
mov dword [ebp - 0x8f0], esi
mov esi, eax
mov dword [ebp - 0x8b4], eax
jne 0xc04af5
mov esi, dword [ebp - 0x8d0]
xor eax, eax
xor cl, byte [eax + esi]
inc eax
cmp eax, 0x338
jb 0xc04e76
movzx eax, cl
cdq
cmp eax, dword [0x9fc028]
jne 0xc04ea8
cmp edx, dword [0x9fc02c]
jne 0xc04ea8
mov edi, esi
xor eax, eax
mov dword [ebp - 0x8fc], edi
mov esi, eax
mov ebx, 0x337
jmp 0xc04ebd
mov edi, dword [ebp - 0x8fc]
or ebx, 0xffffffff
mov dword [ebp - 0x90c], 0xc004d501
xor eax, eax
test esi, esi
je 0xc04ed0
push esi
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapFree]
cmp dword [ebp - 0x90c], 0
jl 0xc05078
xor eax, eax
mov esi, edi
push 0x40
mov byte [ebx + edi], al
mov ebx, 0xc960a0
push eax
push ebx
call fcn.00ab4bf6
add esp, 0xc
cmp byte [edi], 0
je 0xc0500e
mov edi, ebx
mov ecx, esi
mov edx, esi
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x910]
jne 0xc04f07
sub ecx, ebx
xor ebx, ebx
push edi
sar ecx, 1
push edx
push ebx
lea esi, [esi + ecx*2]
call dword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_GetModuleHandleExW]
test eax, eax
je 0xc05071
mov eax, dword [edi]
mov edx, 0x5a4d
mov ecx, ebx
mov dword [ebp - 0x8e0], ecx
cmp word [eax], dx
je 0xc04f51
mov ecx, 0xc000007b
mov dword [ebp - 0x8e0], ecx
jmp 0xc04f99
mov edx, dword [eax + 0x3c]
cmp edx, 0x10000000
jae 0xc04f44
add edx, dword [edi]
cmp edx, dword [edi]
jb 0xc04f44
cmp dword [edx], 0x4550
jne 0xc04f44
movzx eax, word [edx + 0x18]
cmp ax, word [ebp - 0x8dc]
je 0xc04f87
cmp ax, word [ebp - 0x8c0]
je 0xc04f87
mov ecx, 0xc000000d
jmp 0xc04f49
mov eax, dword [edx + 0x78]
mov dword [edi + 8], eax
mov eax, dword [edx + 0x7c]
mov dword [edi + 0xc], eax
mov eax, dword [edx + 0x50]
mov dword [edi + 4], eax
mov eax, dword [esi + 2]
add esi, 6
mov dword [ebp - 0x8f4], eax
test eax, eax
je 0xc05002
mov edx, esi
mov dword [ebp - 0x8d8], esi
lea eax, [edx + 1]
mov dword [ebp - 0x8d0], eax
mov al, byte [edx]
inc edx
test al, al
jne 0xc04fba
sub edx, dword [ebp - 0x8d0]
inc esi
add esi, edx
test ecx, ecx
js 0xc04ff3
push dword [ebp - 0x8d8]
push dword [edi]
call dword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_GetProcAddress]
test eax, eax
je 0xc0500e
mov ecx, dword [ebp - 0x8c4]
mov dword [ecx*4 + section..data], eax
mov ecx, dword [ebp - 0x8e0]
inc dword [ebp - 0x8c4]
inc ebx
cmp ebx, dword [ebp - 0x8f4]
jb 0xc04fa9
add edi, 0x10
cmp byte [esi], 0
jne 0xc04f00
mov ebx, dword [ebp - 0x8e0]
mov esi, dword [ebp - 0x8fc]
test esi, esi
je 0xc0502f
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push esi
xor ecx, ecx
push ecx
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapFree]
test ebx, ebx
jns 0xc05085
xor ebx, ebx
mov esi, ebx
mov eax, dword [esi + 0xc960a0]
test eax, eax
je 0xc05048
push eax
call dword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_FreeLibrary]
add esi, 0x10
cmp esi, 0x40
jb 0xc05037
push 0x40
push ebx
push 0xc960a0
call fcn.00ab4bf6
add esp, 0xc
mov esi, 0x9e6748
mov edi, section..data
push 0x2e
pop ecx
rep movsd dword es:[edi], dword [esi]
jmp 0xc05092
mov ebx, 0xc000007a
jmp 0xc05014
mov esi, dword [ebp - 0x8fc]
mov ebx, 0xc000007a
jmp 0xc0501a
mov eax, dword [0xc95890]
inc eax
xor ebx, ebx
mov dword [0xc95890], eax
xor eax, eax
mov edx, 0xc96238
xchg dword [edx], eax
xor eax, eax
mov dword [ebp - 0x900], ebx
lea edi, [ebp - 0x990]
mov dword [ebp - 0x8f8], ebx
stosd dword es:[edi], eax
mov dword [ebp - 0x8e0], ebx
mov dword [ebp - 0x8cc], ebx
mov dword [ebp - 0x90c], ebx
stosd dword es:[edi], eax
mov dword [ebp - 0x908], ebx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor ecx, ecx
xor eax, eax
inc ecx
lock cmpxchg dword [edx], ecx
test eax, eax
jne 0xc050cb
mov eax, dword [0xc95890]
test eax, eax
jne 0xc056ee
push 0x338
mov esi, ebx
mov dword [ebp - 0x8c4], ebx
push ebx
mov dword [ebp - 0x8e8], ebx
mov dword [ebp - 0x8fc], esi
mov dword [ebp - 0x8ec], ebx
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapAlloc]
mov dword [ebp - 0x8d0], eax
test eax, eax
je 0xc056e0
or dword [ebp - 0x8f4], 0xffffffff
mov cl, bl
add eax, 7
mov dword [ebp - 0x2b8], 0xab69605e
mov dword [ebp - 0x2b4], 0x7f1137f
mov edx, ebx
mov dword [ebp - 0x8d8], ebx
mov dword [ebp - 0x8f0], eax
mov edi, dword [ebp - 0x8e4]
movzx ebx, byte [edi - 2]
movzx eax, byte [edi - 1]
shl ebx, 8
or ebx, eax
movzx eax, byte [edi]
shl ebx, 8
or ebx, eax
movzx eax, byte [edi + 1]
movzx edi, byte [edi + 2]
shl ebx, 8
or ebx, eax
shl edi, 8
mov eax, dword [ebp - 0x8e4]
xor edx, ebx
mov dword [ebp - 0x8b8], edx
movzx eax, byte [eax + 3]
or edi, eax
mov eax, dword [ebp - 0x8e4]
shl edi, 8
movzx eax, byte [eax + 4]
or edi, eax
mov eax, dword [ebp - 0x8e4]
shl edi, 8
add dword [ebp - 0x8e4], 8
movzx eax, byte [eax + 5]
or edi, eax
xor esi, edi
mov dword [ebp - 0x8b4], esi
mov esi, edx
xor esi, dword [ebp - 0x8b4]
xor esi, 0xac987321
lea eax, [esi + 0x54969fa2]
rol eax, 5
imul edx, eax, 0x137f
mov eax, esi
rol eax, 0xa
add edx, eax
mov eax, dword [ebp - 0x8b8]
xor eax, edx
mov dword [ebp - 0x8b8], eax
add eax, 0x7f1137f
ror eax, 9
imul edx, eax, 0xab69
mov eax, dword [ebp - 0x8b8]
rol eax, 2
sub edx, eax
xor esi, edx
imul edx, esi, 0x605e
mov eax, esi
shr eax, 0xd
sub edx, eax
mov eax, dword [ebp - 0x8b8]
sub edx, 0x756c8a2
xor eax, edx
mov dword [ebp - 0x8b8], eax
xor eax, 0xab69
rol eax, 6
imul edx, eax, 0x7f1
mov eax, dword [ebp - 0x8b8]
rol eax, 2
sub edx, eax
mov eax, 0x7f1137f
xor esi, edx
mov edx, esi
xor edx, 0xab69605e
sub eax, edx
mov edx, dword [ebp - 0x8b8]
xor edx, eax
mov dword [ebp - 0x8b8], edx
mov eax, dword [ebp - 0x8b8]
xor eax, 0x137f
ror edx, 6
imul eax, eax, 0xab69
xor edx, eax
xor esi, edx
lea eax, [esi + 0x7f1137f]
ror eax, 0xf
imul edx, eax, 0x605e
mov eax, esi
rol eax, 2
add edx, eax
mov eax, dword [ebp - 0x8b8]
xor eax, edx
mov dword [ebp - 0x8b8], eax
add eax, 0x54969fa2
ror eax, 0xe
imul edx, eax, 0x7f1
mov eax, dword [ebp - 0x8b8]
rol eax, 8
sub edx, eax
xor esi, edx
mov eax, esi
xor eax, 0xab69605e
ror eax, 0xc
imul edx, eax, 0x137f
mov eax, esi
ror eax, 0xa
xor edx, eax
mov eax, dword [ebp - 0x8b8]
xor eax, edx
mov dword [ebp - 0x8b8], eax
xor eax, 0x7f1
imul edx, eax, 0xab69
mov eax, dword [ebp - 0x8b8]
shr eax, 0xa
xor edx, eax
xor edx, esi
mov esi, dword [ebp - 0x8b8]
mov eax, edx
not eax
ror eax, 5
add eax, 0x605e
imul eax, eax, 0x7f1
xor esi, eax
lea eax, [esi - 0x7f1]
xor eax, edx
xor eax, 0xab69605e
mov dword [ebp - 0x8b4], eax
xor eax, 0x7f1
rol eax, 2
imul edx, eax, 0x137f
mov eax, dword [ebp - 0x8b4]
shr eax, 2
add edx, eax
xor esi, edx
lea eax, [esi - 0x7f1137f]
ror eax, 6
imul edx, eax, 0xab69
mov eax, esi
rol eax, 7
add edx, eax
mov eax, dword [ebp - 0x8b4]
xor eax, edx
mov dword [ebp - 0x8b4], eax
mov edx, eax
xor eax, 0x137f
ror edx, 9
imul eax, eax, 0x605e
add edx, eax
xor esi, edx
mov eax, esi
mov edx, esi
xor eax, 0xab69
rol esi, 7
rol eax, 5
imul eax, eax, 0x7f1
add eax, esi
mov esi, dword [ebp - 0x8b4]
xor esi, eax
mov dword [ebp - 0x8b4], esi
xor esi, edx
mov edx, dword [ebp - 0x8b4]
xor esi, 0xac987321
mov eax, esi
ror eax, 3
imul eax, eax, 0x137f
sub eax, 0xd0dd417
xor edx, eax
mov dword [ebp - 0x8b4], edx
lea eax, [edx - 0x7f1137f]
ror eax, 1
imul edx, eax, 0x605e
mov eax, dword [ebp - 0x8b4]
ror eax, 6
sub edx, eax
xor esi, edx
lea eax, [esi - 0x54969fa2]
rol eax, 3
imul edx, eax, 0x7f1
mov eax, esi
rol eax, 0xe
add edx, eax
mov eax, dword [ebp - 0x8b4]
xor eax, edx
mov dword [ebp - 0x8b4], eax
add eax, 0xab69605e
rol eax, 0xf
imul edx, eax, 0x137f
mov eax, dword [ebp - 0x8b4]
ror eax, 0xe
sub edx, eax
xor esi, edx
mov eax, esi
xor eax, 0x605e
imul edx, eax, 0xab69
mov eax, esi
shr eax, 3
xor edx, eax
mov eax, dword [ebp - 0x8b4]
xor eax, edx
mov dword [ebp - 0x8b4], eax
xor eax, 0x7f1137f
rol eax, 4
imul edx, eax, 0x605e
mov eax, dword [ebp - 0x8b4]
rol eax, 2
xor edx, eax
mov eax, dword [ebp - 0x8b4]
xor edx, dword [ebp - 0x8d8]
xor eax, dword [ebp - 0x8f4]
xor esi, edx
mov edx, esi
mov dword [ebp - 0x8b8], esi
mov esi, dword [ebp - 0x8f0]
mov dword [ebp - 0x8d8], ebx
mov dword [ebp - 0x8f4], edi
mov byte [esi - 4], dl
mov byte [esi], al
ror edx, 8
mov byte [esi - 5], dl
ror eax, 8
mov byte [esi - 1], al
ror edx, 8
mov byte [esi - 6], dl
ror eax, 8
mov byte [esi - 2], al
ror edx, 8
ror eax, 8
mov byte [esi - 7], dl
mov byte [esi - 3], al
add esi, 8
ror eax, 8
ror edx, 8
sub dword [ebp - 0x904], 1
mov dword [ebp - 0x8f0], esi
mov esi, eax
mov dword [ebp - 0x8b4], eax
jne 0xc0514e
mov esi, dword [ebp - 0x8d0]
xor eax, eax
xor cl, byte [esi + eax]
inc eax
cmp eax, 0x338
jb 0xc054d7
movzx eax, cl
cdq
cmp eax, dword [0x9fc028]
jne 0xc0550a
cmp edx, dword [0x9fc02c]
jne 0xc0550a
mov ebx, dword [ebp - 0x8ec]
mov edi, esi
xor eax, eax
mov dword [ebp - 0x8fc], edi
mov esi, eax
jmp 0xc0551e
or dword [ebp - 0x8bc], 0xffffffff
mov ebx, 0xc004d501
mov edi, dword [ebp - 0x8fc]
xor eax, eax
test esi, esi
je 0xc05531
push esi
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapFree]
test ebx, ebx
js 0xc056da
mov eax, dword [ebp - 0x8bc]
xor ecx, ecx
push 0x40
push ecx
mov ebx, 0xc960a0
mov esi, edi
push ebx
mov byte [eax + edi], cl
call fcn.00ab4bf6
add esp, 0xc
cmp byte [edi], 0
je 0xc05670
mov edi, ebx
mov ecx, esi
mov edx, esi
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x910]
jne 0xc05569
sub ecx, ebx
xor ebx, ebx
push edi
sar ecx, 1
push edx
push ebx
lea esi, [esi + ecx*2]
call dword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_GetModuleHandleExW]
test eax, eax
je 0xc056d3
mov eax, dword [edi]
mov edx, 0x5a4d
mov ecx, ebx
mov dword [ebp - 0x8e8], ecx
cmp word [eax], dx
je 0xc055b3
mov ecx, 0xc000007b
mov dword [ebp - 0x8e8], ecx
jmp 0xc055fb
mov edx, dword [eax + 0x3c]
cmp edx, 0x10000000
jae 0xc055a6
add edx, dword [edi]
cmp edx, dword [edi]
jb 0xc055a6
cmp dword [edx], 0x4550
jne 0xc055a6
movzx eax, word [edx + 0x18]
cmp ax, word [ebp - 0x8dc]
je 0xc055e9
cmp ax, word [ebp - 0x8c0]
je 0xc055e9
mov ecx, 0xc000000d
jmp 0xc055ab
mov eax, dword [edx + 0x78]
mov dword [edi + 8], eax
mov eax, dword [edx + 0x7c]
mov dword [edi + 0xc], eax
mov eax, dword [edx + 0x50]
mov dword [edi + 4], eax
mov eax, dword [esi + 2]
add esi, 6
mov dword [ebp - 0x8f4], eax
test eax, eax
je 0xc05664
mov edx, esi
mov dword [ebp - 0x8d8], esi
lea eax, [edx + 1]
mov dword [ebp - 0x8d0], eax
mov al, byte [edx]
inc edx
test al, al
jne 0xc0561c
sub edx, dword [ebp - 0x8d0]
inc esi
add esi, edx
test ecx, ecx
js 0xc05655
push dword [ebp - 0x8d8]
push dword [edi]
call dword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_GetProcAddress]
test eax, eax
je 0xc05670
mov ecx, dword [ebp - 0x8c4]
mov dword [ecx*4 + section..data], eax
mov ecx, dword [ebp - 0x8e8]
inc dword [ebp - 0x8c4]
inc ebx
cmp ebx, dword [ebp - 0x8f4]
jb 0xc0560b
add edi, 0x10
cmp byte [esi], 0
jne 0xc05562
mov ebx, dword [ebp - 0x8e8]
mov esi, dword [ebp - 0x8fc]
test esi, esi
je 0xc05691
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push esi
xor ecx, ecx
push ecx
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapFree]
test ebx, ebx
jns 0xc056e7
xor ebx, ebx
mov esi, ebx
mov eax, dword [esi + 0xc960a0]
test eax, eax
je 0xc056aa
push eax
call dword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_FreeLibrary]
add esi, 0x10
cmp esi, 0x40
jb 0xc05699
push 0x40
push ebx
push 0xc960a0
call fcn.00ab4bf6
add esp, 0xc
mov esi, 0x9e6748
mov edi, section..data
push 0x2e
pop ecx
rep movsd dword es:[edi], dword [esi]
jmp 0xc056f4
mov ebx, 0xc000007a
jmp 0xc05676
mov esi, dword [ebp - 0x8fc]
mov ebx, 0xc000007a
jmp 0xc0567c
mov eax, dword [0xc95890]
xor ebx, ebx
inc eax
mov dword [0xc95890], eax
xor eax, eax
mov ecx, 0xc96238
xchg dword [ecx], eax
push 0x54
lea eax, [ebp - 0x598]
push ebx
push eax
call fcn.00ab4bf6
xor eax, eax
mov esi, dword [0xc9307c]
lea edi, [ebp - 0x138]
add esp, 0xc
stosd dword es:[edi], eax
push 0xf
stosd dword es:[edi], eax
pop edx
push 0x403
push ebx
stosd dword es:[edi], eax
push ebx
stosd dword es:[edi], eax
mov eax, dword [ebp - 0x8c8]
mov ecx, eax
and ecx, edx
mov dword [ebp - 0x8e8], ecx
mov ecx, eax
shr ecx, 4
and ecx, edx
mov word [ebp - 0xc], cx
mov ecx, eax
shr ecx, 8
and ecx, edx
shr eax, 0xc
mov word [ebp - 0xa], cx
and eax, edx
mov ecx, esi
mov word [ebp - 8], ax
call dword [0xc99200]
call esi
mov dword [ebp - 0x8d4], eax
mov dword [ebp - 0x8fc], 0xffffff
test eax, eax
jne 0xc0579f
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0xc0578f
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0xc06c76
mov ebx, 0x80004005
jmp 0xc06c76
mov eax, ebx
mov dword [ebp - 0x928], ebx
mov dword [ebp - 0x8b8], eax
mov edi, ebx
lea eax, [ebp - 0x930]
mov dword [ebp - 0x8ec], ebx
push eax
xor eax, eax
mov dword [ebp - 0x930], ebx
push eax
lea eax, [ebp - 0x924]
mov dword [ebp - 0x904], edi
mov esi, ebx
mov ebx, dword [0xc93050]
push eax
push 8
mov ecx, ebx
mov dword [ebp - 0x8f4], esi
call dword [0xc99200]
call ebx
test eax, eax
jne 0xc058ef
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0xc0580b
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0xc05a6e
mov ebx, 0x80004005
mov edi, dword [ebp - 0x8e0]
xor ecx, ecx
test esi, esi
je 0xc05892
mov eax, ecx
mov dword [ebp - 0x8c4], ecx
mov edx, dword [esi + eax*4]
test edx, edx
je 0xc05886
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x8c8], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x910]
jne 0xc0583c
sub ecx, dword [ebp - 0x8c8]
xor eax, eax
sar ecx, 1
lea ecx, [ecx*2 + 2]
test ecx, ecx
je 0xc05871
mov byte [edx], al
inc edx
sub ecx, 1
jne 0xc05860
mov edx, dword [ebp - 0x8c4]
mov edx, dword [esi + edx*4]
push edx
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapFree]
mov eax, dword [ebp - 0x8c4]
inc eax
mov dword [ebp - 0x8c4], eax
cmp eax, 3
jb 0xc0582a
mov eax, dword [ebp - 0x928]
xor edx, edx
test eax, eax
je 0xc058b0
mov ecx, dword [ebp - 0x8ec]
test ecx, ecx
je 0xc058b0
mov byte [eax], dl
inc eax
sub ecx, 1
jne 0xc058a8
test esi, esi
je 0xc058c3
push esi
push edx
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapFree]
mov eax, dword [ebp - 0x928]
test eax, eax
je 0xc06214
push eax
xor eax, eax
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapFree]
xor ecx, ecx
mov dword [ebp - 0x928], ecx
jmp 0xc06216
mov eax, dword [ebp - 0x930]
xor ebx, ebx
add eax, eax
push eax
push ebx
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapAlloc]
mov dword [ebp - 0x8bc], eax
test eax, eax
jne 0xc0591c
mov ebx, 0x8007000e
jmp 0xc05a59
mov eax, dword [ebp - 0x924]
lea eax, [eax*4 + 4]
push eax
push ebx
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapAlloc]
mov edi, eax
mov dword [ebp - 0x8c8], edi
test edi, edi
jne 0xc05950
mov ebx, 0x8007000e
xor ecx, ecx
jmp 0xc05a3a
mov ebx, dword [0xc93050]
lea eax, [ebp - 0x930]
push eax
push dword [ebp - 0x8bc]
lea eax, [ebp - 0x924]
mov ecx, ebx
push eax
push 8
call dword [0xc99200]
call ebx
test eax, eax
jne 0xc0599a
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0xc05991
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0xc05949
mov ebx, 0x80004005
jmp 0xc05949
xor ecx, ecx
mov eax, edi
mov dword [ebp - 0x8c0], ecx
cmp dword [ebp - 0x924], ecx
jbe 0xc05a19
mov esi, edi
mov edi, dword [ebp - 0x8bc]
mov ebx, dword [0xc93058]
push ecx
push edi
mov ecx, ebx
call dword [0xc99200]
call ebx
mov ecx, edi
mov dword [esi], eax
xor ebx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0xc059cf
sub ecx, edx
sar ecx, 1
push 4
pop eax
add esi, eax
mov eax, dword [ebp - 0x8c0]
lea edi, [edi + ecx*2]
add edi, 2
inc eax
push 0
mov dword [ebp - 0x8c0], eax
pop ecx
cmp eax, dword [ebp - 0x924]
jb 0xc059b4
mov edi, dword [ebp - 0x8c8]
mov dword [ebp - 0x8d0], esi
mov esi, dword [ebp - 0x8f4]
mov eax, dword [ebp - 0x8d0]
mov ebx, dword [ebp - 0x8b8]
mov dword [eax], 0x409
mov eax, dword [ebp - 0x924]
inc eax
mov dword [ebp - 0x904], edi
mov edi, ecx
mov dword [ebp - 0x8c0], eax
test edi, edi
je 0xc05a4d
push edi
push ecx
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapFree]
mov edi, dword [ebp - 0x904]
mov eax, dword [ebp - 0x8bc]
test eax, eax
je 0xc05a6e
push eax
xor eax, eax
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapFree]
test ebx, ebx
js 0xc05816
xor eax, eax
mov ebx, eax
mov ecx, eax
mov dword [ebp - 0x8c4], ebx
cmp dword [ebp - 0x8c0], eax
jbe 0xc05ab3
mov edx, dword [edi + ecx*4]
cmp edx, dword [eax*4 + 0xa192e8]
je 0xc05aa9
inc eax
cmp eax, 0x26
jb 0xc05a8d
inc ecx
xor eax, eax
cmp ecx, dword [ebp - 0x8c0]
jae 0xc05ab3
jmp 0xc05a8a
mov ebx, eax
xor eax, eax
mov dword [ebp - 0x8c4], ebx
mov edi, dword [0xc93054]
mov ecx, edi
push eax
mov dword [ebp - 0x8f0], eax
lea eax, [ebp - 0xc0]
push 0x55
push eax
push dword [ebx*4 + 0xa192e8]
call dword [0xc99200]
call edi
test eax, eax
je 0xc05b1c
mov edi, dword [0xc93048]
lea eax, [ebp - 0x420]
push 0x10
push eax
push 0x58
lea eax, [ebp - 0xc0]
mov ecx, edi
push eax
call dword [0xc99200]
call edi
test eax, eax
jle 0xc05b1c
mov ebx, dword [ebp - 0x414]
shr ebx, 0x1b
and ebx, 1
mov dword [ebp - 0x8f0], ebx
mov ebx, dword [ebp - 0x8c4]
xor eax, eax
mov edx, 0x9fba10
mov edi, eax
mov ecx, edx
mov dword [ebp + edi*4 - 0x128], edx
lea eax, [ecx + 2]
mov dword [ebp - 0x8c8], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x910]
jne 0xc05b37
sub ecx, dword [ebp - 0x8c8]
sar ecx, 1
lea edx, [edx + ecx*2]
add edx, 2
inc edi
cmp edi, 0x13
jb 0xc05b25
imul ecx, ebx, 3
movzx eax, byte [ecx + 0xa00b58]
mov eax, dword [ebp + eax*4 - 0x128]
mov dword [ebp - 0x8cc], eax
movzx eax, byte [ecx + 0xa00b59]
mov eax, dword [ebp + eax*4 - 0x128]
mov dword [ebp - 0x90c], eax
movzx eax, byte [ecx + 0xa00b5a]
mov eax, dword [ebp + eax*4 - 0x128]
mov dword [ebp - 0x908], eax
xor ebx, ebx
push 0x1c90
mov eax, ebx
push ebx
mov dword [ebp - 0x8b8], eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapAlloc]
mov ecx, eax
mov dword [ebp - 0x8d0], ecx
test ecx, ecx
jne 0xc05bcc
mov ebx, 0x8007000e
jmp 0xc05816
or dword [ebp - 0x8dc], 0xffffffff
lea esi, [ecx + 7]
mov al, bl
mov dword [ebp - 0x8c0], ebx
mov dword [ebp - 0x8e4], ebx
mov edi, ebx
mov ebx, 0xa19392
mov dword [ebp - 0x2b0], 0xab69605e
mov dword [ebp - 0x2ac], 0x7f1137f
mov dword [ebp - 0x8bc], ebx
mov dword [ebp - 0x8d8], 0x392
movzx edx, byte [ebx - 2]
movzx ecx, byte [ebx - 1]
shl edx, 8
or edx, ecx
movzx ecx, byte [ebx]
shl edx, 8
or edx, ecx
movzx ecx, byte [ebx + 1]
movzx ebx, byte [ebx + 2]
shl edx, 8
or edx, ecx
shl ebx, 8
mov ecx, dword [ebp - 0x8bc]
xor edi, edx
mov dword [ebp - 0x8c8], edx
mov edx, dword [ebp - 0x8e4]
mov dword [ebp - 0x8b4], edi
movzx ecx, byte [ecx + 3]
or ebx, ecx
mov ecx, dword [ebp - 0x8bc]
shl ebx, 8
movzx ecx, byte [ecx + 4]
or ebx, ecx
mov ecx, dword [ebp - 0x8bc]
shl ebx, 8
add dword [ebp - 0x8bc], 8
movzx ecx, byte [ecx + 5]
or ebx, ecx
xor edx, ebx
xor edx, edi
xor edx, 0xac987321
mov edi, edx
lea ecx, [edx + 0x54969fa2]
rol edx, 0xa
rol ecx, 5
imul ecx, ecx, 0x137f
add ecx, edx
mov edx, dword [ebp - 0x8b4]
xor edx, ecx
mov dword [ebp - 0x8b4], edx
lea ecx, [edx + 0x7f1137f]
ror ecx, 9
imul edx, ecx, 0xab69
mov ecx, dword [ebp - 0x8b4]
rol ecx, 2
sub edx, ecx
xor edi, edx
imul edx, edi, 0x605e
mov ecx, edi
shr ecx, 0xd
sub edx, ecx
mov ecx, dword [ebp - 0x8b4]
sub edx, 0x756c8a2
xor ecx, edx
mov dword [ebp - 0x8b4], ecx
xor ecx, 0xab69
rol ecx, 6
imul edx, ecx, 0x7f1
mov ecx, dword [ebp - 0x8b4]
rol ecx, 2
sub edx, ecx
mov ecx, 0x7f1137f
xor edi, edx
mov edx, edi
xor edx, 0xab69605e
sub ecx, edx
mov edx, dword [ebp - 0x8b4]
xor edx, ecx
mov dword [ebp - 0x8b4], edx
mov ecx, dword [ebp - 0x8b4]
xor ecx, 0x137f
ror edx, 6
imul ecx, ecx, 0xab69
xor edx, ecx
xor edi, edx
lea ecx, [edi + 0x7f1137f]
ror ecx, 0xf
imul edx, ecx, 0x605e
mov ecx, edi
rol ecx, 2
add edx, ecx
mov ecx, dword [ebp - 0x8b4]
xor ecx, edx
mov dword [ebp - 0x8b4], ecx
add ecx, 0x54969fa2
ror ecx, 0xe
imul edx, ecx, 0x7f1
mov ecx, dword [ebp - 0x8b4]
rol ecx, 8
sub edx, ecx
xor edi, edx
mov ecx, edi
xor ecx, 0xab69605e
ror ecx, 0xc
imul edx, ecx, 0x137f
mov ecx, edi
ror ecx, 0xa
xor edx, ecx
mov ecx, dword [ebp - 0x8b4]
xor ecx, edx
mov dword [ebp - 0x8b4], ecx
xor ecx, 0x7f1
imul edx, ecx, 0xab69
mov ecx, dword [ebp - 0x8b4]
shr ecx, 0xa
xor edx, ecx
xor edi, edx
mov edx, dword [ebp - 0x8b4]
mov ecx, edi
not ecx
ror ecx, 5
add ecx, 0x605e
imul ecx, ecx, 0x7f1
xor edx, ecx
mov dword [ebp - 0x8b4], edx
lea ecx, [edx - 0x7f1]
xor ecx, edi
mov edi, dword [ebp - 0x8b4]
xor ecx, 0xab69605e
mov dword [ebp - 0x8e4], ecx
xor ecx, 0x7f1
rol ecx, 2
imul edx, ecx, 0x137f
mov ecx, dword [ebp - 0x8e4]
shr ecx, 2
add edx, ecx
xor edi, edx
lea ecx, [edi - 0x7f1137f]
ror ecx, 6
imul edx, ecx, 0xab69
mov ecx, edi
rol ecx, 7
add edx, ecx
mov ecx, dword [ebp - 0x8e4]
xor ecx, edx
mov dword [ebp - 0x8e4], ecx
mov edx, ecx
xor ecx, 0x137f
ror edx, 9
imul ecx, ecx, 0x605e
add edx, ecx
xor edi, edx
mov ecx, edi
xor ecx, 0xab69
rol ecx, 5
imul edx, ecx, 0x7f1
mov ecx, edi
rol ecx, 7
add edx, ecx
xor dword [ebp - 0x8e4], edx
mov edx, dword [ebp - 0x8e4]
xor edi, edx
xor edi, 0xac987321
mov ecx, edi
ror ecx, 3
imul ecx, ecx, 0x137f
sub ecx, 0xd0dd417
xor edx, ecx
mov dword [ebp - 0x8e4], edx
lea ecx, [edx - 0x7f1137f]
ror ecx, 1
imul edx, ecx, 0x605e
mov ecx, dword [ebp - 0x8e4]
ror ecx, 6
sub edx, ecx
xor edi, edx
lea ecx, [edi - 0x54969fa2]
rol ecx, 3
imul edx, ecx, 0x7f1
mov ecx, edi
rol ecx, 0xe
add edx, ecx
mov ecx, dword [ebp - 0x8e4]
xor ecx, edx
mov dword [ebp - 0x8e4], ecx
add ecx, 0xab69605e
rol ecx, 0xf
imul edx, ecx, 0x137f
mov ecx, dword [ebp - 0x8e4]
ror ecx, 0xe
sub edx, ecx
xor edi, edx
mov ecx, edi
mov dword [ebp - 0x8b4], edi
xor ecx, 0x605e
imul edx, ecx, 0xab69
mov ecx, edi
mov edi, dword [ebp - 0x8e4]
shr ecx, 3
xor edx, ecx
xor edi, edx
mov ecx, edi
mov dword [ebp - 0x8e4], edi
xor ecx, 0x7f1137f
rol ecx, 4
imul edx, ecx, 0x605e
mov ecx, edi
rol ecx, 2
xor edx, ecx
mov ecx, dword [ebp - 0x8b4]
xor edx, dword [ebp - 0x8c0]
xor ecx, edx
mov edx, edi
xor edx, dword [ebp - 0x8dc]
mov byte [esi - 4], cl
mov byte [esi], dl
lea esi, [esi + 8]
ror ecx, 8
mov byte [esi - 0xd], cl
ror edx, 8
mov byte [esi - 9], dl
ror ecx, 8
mov byte [esi - 0xe], cl
ror edx, 8
ror ecx, 8
mov byte [esi - 0xa], dl
mov byte [esi - 0xf], cl
ror edx, 8
ror ecx, 8
mov byte [esi - 0xb], dl
mov dword [ebp - 0x8b4], ecx
mov ecx, dword [ebp - 0x8c8]
mov edi, dword [ebp - 0x8b4]
ror edx, 8
sub dword [ebp - 0x8d8], 1
mov dword [ebp - 0x8dc], ebx
mov ebx, dword [ebp - 0x8bc]
mov dword [ebp - 0x8e4], edx
mov dword [ebp - 0x8c0], ecx
jne 0xc05c0f
mov esi, dword [ebp - 0x8f4]
xor ecx, ecx
mov edx, ecx
mov edi, 0x1c90
mov ecx, dword [ebp - 0x8d0]
xor al, byte [edx + ecx]
inc edx
cmp edx, edi
jb 0xc05fba
movzx eax, al
cdq
cmp eax, dword [0xa1b020]
jne 0xc05fee
cmp edx, dword [0xa1b024]
jne 0xc05fee
mov ebx, dword [ebp - 0x8b8]
xor edx, edx
mov dword [ebp - 0x928], ecx
mov ecx, edx
mov dword [ebp - 0x8ec], edi
jmp 0xc05ffb
mov ebx, 0xc004d501
xor edx, edx
mov dword [ebp - 0x8b8], ebx
test ecx, ecx
je 0xc0600e
push ecx
push edx
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapFree]
test ebx, ebx
js 0xc05816
mov edi, dword [ebp - 0x928]
xor eax, eax
mov ebx, dword [ebp - 0x8c4]
mov esi, eax
mov edx, eax
cmp ebx, edx
jne 0xc06033
mov dword [ebp + esi*4 - 0xd8], edi
mov ecx, edi
lea eax, [ecx + 1]
mov dword [ebp - 0x8c8], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0xc0603e
sub ecx, dword [ebp - 0x8c8]
inc edi
add edi, ecx
inc edx
cmp edx, 0x26
jb 0xc06028
inc esi
push 0
pop eax
cmp esi, 6
jb 0xc06026
push 0xc
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapAlloc]
mov ebx, dword [ebp - 0x8b8]
mov esi, eax
test esi, esi
je 0xc05bc2
xor eax, eax
mov edi, esi
mov edx, esi
mov dword [ebp - 0x8c4], edx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov ecx, eax
mov eax, esi
sub eax, esi
mov dword [ebp - 0x8c0], ecx
mov dword [ebp - 0x8dc], eax
movzx edi, word [ebp + ecx*2 - 0xc]
xor eax, eax
cmp di, word [eax*2 + 0xa19380]
je 0xc060bc
inc eax
cmp eax, 6
jb 0xc060a7
jmp 0xc0618d
mov edi, dword [ebp + eax*4 - 0xd8]
mov ecx, edi
mov edx, dword [0xc93060]
mov dword [ebp - 0x8d0], edx
lea eax, [ecx + 1]
mov dword [ebp - 0x8c8], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0xc060da
sub ecx, dword [ebp - 0x8c8]
xor eax, eax
push eax
push eax
lea eax, [ecx + 1]
mov ecx, edx
push eax
push edi
xor eax, eax
push eax
push 0xfde9
call dword [0xc99200]
call dword [ebp - 0x8d0]
mov dword [ebp - 0x8d0], eax
test eax, eax
je 0xc061e7
lea ecx, [eax + eax]
xor eax, eax
push ecx
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapAlloc]
mov ecx, dword [ebp - 0x8c4]
mov edx, dword [ebp - 0x8dc]
mov dword [edx + ecx], eax
mov edx, dword [ecx]
test edx, edx
je 0xc05bc2
mov ecx, edi
lea eax, [ecx + 1]
mov dword [ebp - 0x8c8], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0xc0614c
push dword [ebp - 0x8d0]
sub ecx, dword [ebp - 0x8c8]
push edx
lea eax, [ecx + 1]
push eax
push edi
mov edi, dword [0xc93060]
xor eax, eax
push eax
push 0xfde9
mov ecx, edi
call dword [0xc99200]
call edi
test eax, eax
je 0xc061c5
mov ecx, dword [ebp - 0x8c0]
mov edx, dword [ebp - 0x8c4]
push 4
inc ecx
pop eax
add edx, eax
mov dword [ebp - 0x8c0], ecx
mov dword [ebp - 0x8c4], edx
cmp ecx, 3
jb 0xc060a0
mov eax, dword [ebp - 0x8f0]
mov edi, esi
xor ecx, ecx
mov dword [ebp - 0x8e0], edi
mov esi, ecx
mov dword [ebp - 0x598], eax
jmp 0xc0581e
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0xc061dc
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0xc05816
jmp 0xc05811
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0xc061fe
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
mov edi, dword [ebp - 0x8e0]
js 0xc0581c
mov ebx, 0x80004005
jmp 0xc0581c
xor ecx, ecx
mov eax, dword [ebp - 0x904]
test eax, eax
je 0xc0622f
push eax
push ecx
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapFree]
test ebx, ebx
js 0xc06c5d
mov eax, dword [edi]
xor ecx, ecx
mov esi, dword [0xc930b4]
mov ebx, ecx
mov dword [ebp - 0x590], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x58c], eax
mov eax, dword [edi + 8]
mov edi, ecx
push ecx
mov dword [ebp - 0x588], eax
lea eax, [ebp - 0x980]
push eax
push ecx
mov dword [ebp - 0x97c], ecx
mov dword [ebp - 0x978], ecx
mov ecx, esi
push 0x42
mov dword [ebp - 0x980], 0xc
call dword [0xc99200]
call esi
test eax, eax
jne 0xc062ac
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0xc062a3
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0xc062b5
mov ebx, 0x80004005
jmp 0xc062b5
mov edi, dword [ebp - 0x97c]
and edi, 1
mov dword [ebp - 0x594], edi
test ebx, ebx
js 0xc06c5d
mov ebx, dword [ebp - 0x8e8]
mov eax, ebx
push 0xb
pop edx
push 0x2a
pop ecx
mov dword [ebp - 0x904], ecx
sub eax, 1
je 0xc06305
sub eax, 1
je 0xc062f9
sub eax, 1
jne 0xc06311
mov eax, 0xe1
mov dword [ebp - 0x900], eax
mov dword [ebp - 0x8f8], eax
jmp 0xc06311
mov dword [ebp - 0x900], 0xf
jmp 0xc0630b
mov dword [ebp - 0x900], ecx
mov dword [ebp - 0x8f8], edx
push 0x60
pop edi
xor eax, eax
mov dword [ebp - 0x910], edi
lea esi, [edi + 0x7c]
push esi
push eax
lea eax, [ebp - 0x540]
push eax
call fcn.00ab4bf6
add esp, 0xc
mov word [ebp - 0x4fc], si
mov esi, dword [0xc93070]
lea eax, [ebp - 0x540]
mov ecx, esi
push eax
push 0xffffffffffffffff
xor eax, eax
push eax
call dword [0xc99200]
call esi
test eax, eax
je 0xc06398
movzx edi, word [ebp - 0x49a]
mov eax, dword [ebp - 0x494]
mov ecx, dword [ebp - 0x490]
mov dword [ebp - 0x910], edi
mov dword [ebp - 0x8c4], eax
mov dword [ebp - 0x988], eax
mov dword [ebp - 0x8dc], ecx
mov dword [ebp - 0x984], ecx
cmp edi, 0x60
jae 0xc063b0
push 0x60
pop edi
mov dword [ebp - 0x910], edi
jmp 0xc063b0
mov eax, dword [ebp - 0x984]
mov dword [ebp - 0x8dc], eax
mov eax, dword [ebp - 0x988]
mov dword [ebp - 0x8c4], eax
mov eax, dword [ebp - 0x8cc]
cmp ebx, 1
je 0xc063c1
mov eax, dword [ebp - 0x908]
mov dword [ebp - 0x8c0], eax
xor eax, eax
push 0x5c
push eax
lea eax, [ebp - 0x400]
push eax
call fcn.00ab4bf6
mov esi, dword [0xc9307c]
add esp, 0xc
xor eax, eax
mov ecx, esi
mov ebx, eax
push 0x403
push eax
push eax
call dword [0xc99200]
call esi
mov dword [ebp - 0x8c8], eax
test eax, eax
jne 0xc06427
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0xc06417
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0xc064c7
mov ebx, 0x80004005
jmp 0xc06c5d
mov esi, dword [0xc9305c]
mov ecx, esi
push 0x48
push edi
push dword [ebp - 0x900]
call dword [0xc99200]
call esi
push dword [ebp - 0x8c0]
neg eax
mov dword [ebp - 0x3f0], 0x190
push 0x20
pop edx
lea ecx, [ebp - 0x3e4]
mov dword [ebp - 0x400], eax
mov byte [ebp - 0x3e6], 5
call fcn.00a535e0
mov esi, dword [0xc93010]
lea eax, [ebp - 0x400]
push eax
mov ecx, esi
call dword [0xc99200]
call esi
test eax, eax
jne 0xc064a8
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0xc0649f
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0xc064ae
mov ebx, 0x80004005
jmp 0xc064ae
mov dword [ebp - 0x584], eax
push dword [ebp - 0x8c8]
mov esi, dword [0xc930b0]
xor eax, eax
push eax
mov ecx, esi
call dword [0xc99200]
call esi
test ebx, ebx
js 0xc06c5d
cmp dword [ebp - 0x8e8], 1
je 0xc064e4
mov eax, dword [ebp - 0x908]
mov dword [ebp - 0x8cc], eax
xor eax, eax
push 0x5c
push eax
lea eax, [ebp - 0x3a0]
push eax
call fcn.00ab4bf6
mov esi, dword [0xc9307c]
add esp, 0xc
xor eax, eax
mov ecx, esi
mov ebx, eax
push 0x403
push eax
push eax
call dword [0xc99200]
call esi
mov dword [ebp - 0x8c8], eax
test eax, eax
jne 0xc065b5
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0xc06538
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
jns 0xc0641d
push 0x20
pop edi
test ebx, ebx
js 0xc06c5d
mov ebx, dword [ebp - 0x8e8]
xor eax, eax
mov ecx, eax
mov edx, eax
mov eax, ebx
sub eax, 1
je 0xc0656a
sub eax, 1
je 0xc0665c
sub eax, 1
jne 0xc06576
mov ecx, dword [ebp - 0x8c4]
mov edx, dword [ebp - 0x8dc]
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x12c], edx
xor edx, edx
inc edx
cmp ebx, edx
je 0xc0669f
lea eax, [ebx - 2]
xor ebx, ebx
cmp eax, edx
ja 0xc06673
mov eax, ebx
mov dword [ebp - 0x904], ebx
mov edx, ebx
mov dword [ebp - 0x8c4], eax
mov dword [ebp - 0x8cc], ebx
jmp 0xc066b4
mov esi, dword [0xc9305c]
mov ecx, esi
push 0x48
push edi
push dword [ebp - 0x8f8]
call dword [0xc99200]
call esi
push dword [ebp - 0x8cc]
neg eax
mov dword [ebp - 0x390], 0x190
push 0x20
pop edi
mov edx, edi
mov dword [ebp - 0x3a0], eax
lea ecx, [ebp - 0x384]
mov byte [ebp - 0x386], 5
call fcn.00a535e0
mov esi, dword [0xc93010]
lea eax, [ebp - 0x3a0]
push eax
mov ecx, esi
call dword [0xc99200]
call esi
test eax, eax
jne 0xc06638
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0xc0662f
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0xc0663e
mov ebx, 0x80004005
jmp 0xc0663e
mov dword [ebp - 0x580], eax
push dword [ebp - 0x8c8]
mov esi, dword [0xc930b0]
xor eax, eax
push eax
mov ecx, esi
call dword [0xc99200]
call esi
jmp 0xc06541
mov eax, dword [ebp - 0x8c4]
push 4
cdq
pop ecx
idiv ecx
mov ecx, eax
xor eax, eax
mov edx, eax
jmp 0xc06576
mov eax, dword [ebp - 0x920]
mov edx, dword [ebp - 0x920]
mov dword [ebp - 0x8cc], eax
mov eax, dword [ebp - 0x920]
mov dword [ebp - 0x904], eax
mov eax, dword [ebp - 0x920]
mov dword [ebp - 0x8c4], eax
jmp 0xc066b4
xor ebx, ebx
mov dword [ebp - 0x8cc], edi
mov edx, 0x96
mov dword [ebp - 0x8c4], ebx
mov eax, ebx
mov dword [ebp - 0x908], edx
push dword [ebp - 0x584]
mov esi, dword [0xc9303c]
sub ecx, edx
push dword [ebp - 0x8d4]
mov edi, dword [ebp - 0x590]
sub ecx, eax
mov dword [ebp - 0x8d0], ecx
mov dword [ebp - 0x55c], ecx
mov dword [ebp - 0x56c], ecx
mov ecx, esi
call dword [0xc99200]
call esi
mov esi, dword [0xc9306c]
mov ecx, esi
mov dword [ebp - 0x8c8], eax
xor eax, eax
push eax
push 0xc50
lea eax, [ebp - 0x574]
push eax
push 0xffffffffffffffff
push edi
mov edi, dword [ebp - 0x8d4]
push edi
call dword [0xc99200]
call esi
test eax, eax
jne 0xc0672a
mov ebx, 0x80004005
mov eax, dword [ebp - 0x8c8]
test eax, eax
je 0xc06746
mov esi, dword [0xc9303c]
mov ecx, esi
push eax
push edi
call dword [0xc99200]
call esi
test ebx, ebx
js 0xc06c5d
push dword [ebp - 0x580]
mov esi, dword [0xc9303c]
xor eax, eax
push dword [ebp - 0x8d4]
mov edi, dword [ebp - 0x58c]
mov ecx, esi
mov ebx, eax
call dword [0xc99200]
call esi
mov esi, dword [0xc9306c]
mov ecx, esi
mov dword [ebp - 0x8c8], eax
xor eax, eax
push eax
push 0xc50
lea eax, [ebp - 0x564]
push eax
push 0xffffffffffffffff
push edi
mov edi, dword [ebp - 0x8d4]
push edi
call dword [0xc99200]
call esi
test eax, eax
jne 0xc067ac
mov ebx, 0x80004005
mov eax, dword [ebp - 0x8c8]
test eax, eax
je 0xc067c8
mov esi, dword [0xc9303c]
mov ecx, esi
push eax
push edi
call dword [0xc99200]
call esi
test ebx, ebx
js 0xc06c5d
mov eax, dword [ebp - 0x8e8]
cmp eax, 2
je 0xc067e0
cmp eax, 3
jne 0xc067f6
mov edi, dword [ebp - 0x55c]
cmp dword [ebp - 0x56c], edi
jle 0xc067fc
mov edi, dword [ebp - 0x56c]
jmp 0xc067fc
mov edi, dword [ebp - 0x8d0]
cmp dword [ebp - 0x598], 0
mov esi, dword [0xc930a8]
mov ecx, esi
push dword [ebp - 0x904]
je 0xc0683d
mov ebx, dword [ebp - 0x8c4]
mov eax, ebx
sub eax, dword [ebp - 0x56c]
add eax, edi
push eax
lea eax, [ebp - 0x574]
push eax
call dword [0xc99200]
call esi
sub ebx, dword [ebp - 0x55c]
add ebx, edi
jmp 0xc06853
mov ebx, dword [ebp - 0x908]
lea eax, [ebp - 0x574]
push ebx
push eax
call dword [0xc99200]
call esi
mov eax, dword [ebp - 0x568]
add eax, dword [ebp - 0x8cc]
mov esi, dword [0xc930a8]
mov ecx, esi
push eax
push ebx
lea eax, [ebp - 0x564]
push eax
call dword [0xc99200]
call esi
mov eax, dword [ebp - 0x8e8]
cmp eax, 2
je 0xc06b47
cmp eax, 3
je 0xc06b47
xor edx, edx
inc edx
cmp eax, edx
jne 0xc06b66
xor eax, eax
mov dword [ebp - 0x578], 0xffffff
push 0x5c
push eax
lea eax, [ebp - 0x340]
push eax
call fcn.00ab4bf6
mov esi, dword [0xc9307c]
add esp, 0xc
xor eax, eax
mov ecx, esi
mov ebx, eax
push 0x403
push eax
push eax
call dword [0xc99200]
call esi
mov dword [ebp - 0x8c8], eax
test eax, eax
jne 0xc06900
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0xc068f5
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0xc069a1
jmp 0xc0641d
mov esi, dword [0xc9305c]
mov ecx, esi
push 0x48
push dword [ebp - 0x910]
push 0xb
call dword [0xc99200]
call esi
push dword [ebp - 0x90c]
neg eax
mov dword [ebp - 0x330], 0x190
push 0x20
pop edx
lea ecx, [ebp - 0x324]
mov dword [ebp - 0x340], eax
mov byte [ebp - 0x326], 5
call fcn.00a535e0
mov esi, dword [0xc93010]
lea eax, [ebp - 0x340]
push eax
mov ecx, esi
call dword [0xc99200]
call esi
test eax, eax
jne 0xc06982
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0xc06979
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0xc06988
mov ebx, 0x80004005
jmp 0xc06988
mov dword [ebp - 0x57c], eax
push dword [ebp - 0x8c8]
mov esi, dword [0xc930b0]
xor eax, eax
push eax
mov ecx, esi
call dword [0xc99200]
call esi
test ebx, ebx
js 0xc06c5d
push dword [ebp - 0x57c]
mov esi, dword [0xc9303c]
xor eax, eax
push dword [ebp - 0x8d4]
mov dword [ebp - 0x54c], edi
mov ecx, esi
mov edi, dword [ebp - 0x588]
mov ebx, eax
call dword [0xc99200]
call esi
mov esi, dword [0xc9306c]
mov ecx, esi
mov dword [ebp - 0x8c8], eax
xor eax, eax
push eax
push 0x460
lea eax, [ebp - 0x554]
push eax
push 0xffffffffffffffff
push edi
mov edi, dword [ebp - 0x8d4]
push edi
call dword [0xc99200]
call esi
test eax, eax
jne 0xc06a0d
mov ebx, 0x80004005
mov eax, dword [ebp - 0x8c8]
test eax, eax
je 0xc06a29
mov esi, dword [0xc9303c]
mov ecx, esi
push eax
push edi
call dword [0xc99200]
call esi
test ebx, ebx
js 0xc06c5d
mov eax, dword [ebp - 0x54c]
push 0x5a
add eax, 0x18
pop ecx
mov dword [ebp - 0x54c], eax
cmp eax, ecx
jge 0xc06a4d
mov dword [ebp - 0x54c], ecx
mov ebx, dword [ebp - 0x910]
mov esi, dword [0xc9305c]
mov ecx, esi
push 0x60
pop edi
push edi
push ebx
push dword [ebp - 0x554]
mov dword [ebp - 0x548], 0x20
call dword [0xc99200]
call esi
mov esi, dword [0xc9305c]
mov ecx, esi
push edi
push ebx
push dword [ebp - 0x550]
mov dword [ebp - 0x554], eax
call dword [0xc99200]
call esi
mov esi, dword [0xc9305c]
mov ecx, esi
push edi
push ebx
push dword [ebp - 0x54c]
mov dword [ebp - 0x550], eax
call dword [0xc99200]
call esi
mov esi, dword [0xc9305c]
mov ecx, esi
push edi
push ebx
push dword [ebp - 0x548]
mov dword [ebp - 0x54c], eax
call dword [0xc99200]
call esi
cmp dword [ebp - 0x598], 0
mov esi, dword [0xc930a8]
mov dword [ebp - 0x548], eax
je 0xc06b19
mov ecx, dword [ebp - 0x558]
mov eax, dword [ebp - 0x574]
add ecx, 0x24
cmp eax, dword [ebp - 0x564]
jl 0xc06b04
mov eax, dword [ebp - 0x564]
push ecx
push eax
lea eax, [ebp - 0x554]
mov ecx, esi
push eax
call dword [0xc99200]
call esi
jmp 0xc06b63
mov eax, dword [ebp - 0x558]
mov ecx, dword [ebp - 0x56c]
add eax, 0x24
cmp ecx, dword [ebp - 0x55c]
jg 0xc06b36
mov ecx, dword [ebp - 0x55c]
push eax
mov eax, dword [ebp - 0x554]
sub eax, dword [ebp - 0x54c]
add eax, ecx
jmp 0xc06b05
mov eax, dword [ebp - 0x558]
mov dword [ebp - 0x130], edi
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x578], 0xffa8a8a8
xor edx, edx
inc edx
mov eax, dword [ebp - 0x598]
mov ebx, dword [ebp - 0x130]
mov dword [ebp - 0x8c8], eax
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x8c0], eax
mov eax, dword [ebp - 0x8e8]
sub eax, 1
je 0xc06ef2
sub eax, 1
je 0xc06e1f
sub eax, 1
jne 0xc06c5b
mov esi, dword [0xc930a4]
lea edi, [ebp - 0x2e0]
push 0xa
pop ecx
rep stosd dword es:[edi], eax
push edx
push eax
mov ecx, esi
call dword [0xc99200]
call esi
mov esi, dword [0xc93084]
lea ecx, [ebp - 0x2e0]
push ecx
push eax
mov ecx, esi
mov dword [ebp - 0x2e0], 0x28
call dword [0xc99200]
call esi
test eax, eax
je 0xc06c5b
mov esi, dword [0xc930a0]
lea eax, [ebp - 0x2cc]
push eax
xor eax, eax
mov ecx, esi
push eax
call dword [0xc99200]
call esi
mov esi, dword [0xc930a0]
lea eax, [ebp - 0x2c4]
push eax
xor eax, eax
mov ecx, esi
push eax
call dword [0xc99200]
call esi
mov eax, dword [ebp - 0x2c4]
lea esi, [ebp - 0x2cc]
sub eax, ebx
lea edi, [ebp - 0x9a0]
imul eax, eax, 0x32
push 0x64
pop ecx
movsd dword es:[edi], dword [esi]
cdq
idiv ecx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x2c0]
sub eax, dword [ebp - 0x8c0]
movsd dword es:[edi], dword [esi]
imul eax, eax, 0x32
movsd dword es:[edi], dword [esi]
cdq
idiv ecx
mov dword [ebp - 0x134], eax
xor ebx, ebx
push dword [ebp - 0x8d4]
mov esi, dword [0xc930b0]
xor eax, eax
push eax
mov ecx, esi
call dword [0xc99200]
call esi
xor esi, esi
mov edi, 0xc96238
inc esi
mov ecx, esi
xor eax, eax
lock cmpxchg dword [edi], ecx
test eax, eax
jne 0xc06c7e
mov eax, dword [0xc95890]
test eax, eax
jle 0xc06cde
sub eax, 1
mov dword [0xc95890], eax
jne 0xc06cde
xor eax, eax
mov esi, eax
mov eax, dword [esi + 0xc960a0]
test eax, eax
je 0xc06cb2
push eax
call dword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_FreeLibrary]
add esi, 0x10
cmp esi, 0x40
jb 0xc06ca1
push 0x40
xor eax, eax
push eax
push 0xc960a0
call fcn.00ab4bf6
add esp, 0xc
mov esi, 0x9e6748
mov edi, section..data
push 0x2e
pop ecx
rep movsd dword es:[edi], dword [esi]
xor esi, esi
inc esi
xor eax, eax
mov ecx, 0xc96238
xchg dword [ecx], eax
mov eax, dword [ebp - 0x8e0]
test eax, eax
je 0xc06d02
push eax
xor eax, eax
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapFree]
test ebx, ebx
js 0xc08b4a
mov eax, dword [ebp - 0x95c]
mov ebx, dword [ebp - 0x960]
mov dword [ebp - 0x8c0], eax
xor eax, eax
push 0x54
push eax
lea eax, [ebp - 0x5f0]
push eax
call fcn.00ab4bf6
add esp, 0xc
mov edi, esi
mov esi, dword [0xc93028]
mov ecx, esi
push 7
push dword [ebp - 0x914]
call dword [0xc99200]
call esi
test eax, eax
je 0xc06d93
mov esi, dword [0xc93034]
lea ecx, [ebp - 0x5f0]
push ecx
push 0x54
push eax
mov ecx, esi
call dword [0xc99200]
call esi
test eax, eax
je 0xc06d93
push 0x20
pop eax
cmp word [ebp - 0x5de], ax
jne 0xc06d93
cmp dword [ebp - 0x5dc], 0
je 0xc06d93
cmp dword [ebp - 0x5ec], 0
jle 0xc06d93
cmp dword [ebp - 0x5e8], 0
jg 0xc06da4
xor eax, eax
cmp dword [ebp - 0x8e8], 1
mov edi, eax
jne 0xc06f05
push dword [ebp - 0x8c0]
mov esi, dword [0xc930a8]
lea eax, [ebp - 0x574]
push ebx
push eax
mov ecx, esi
call dword [0xc99200]
call esi
push dword [ebp - 0x8c0]
mov esi, dword [0xc930a8]
lea eax, [ebp - 0x564]
push ebx
push eax
mov ecx, esi
call dword [0xc99200]
call esi
mov ebx, dword [ebp - 0x8e8]
cmp ebx, 1
jne 0xc06f0b
mov eax, dword [ebp - 0x594]
mov esi, dword [0xc93014]
neg eax
mov ecx, esi
sbb eax, eax
and eax, 0xff4d98e0
add eax, 0xb26720
push eax
call dword [0xc99200]
call esi
mov dword [ebp - 0x934], eax
jmp 0xc06f0b
mov esi, dword [0xc930a4]
lea edi, [ebp - 0x28c]
push 0xa
pop ecx
xor eax, eax
rep stosd dword es:[edi], eax
push edx
push eax
mov ecx, esi
call dword [0xc99200]
call esi
mov esi, dword [0xc93084]
lea ecx, [ebp - 0x28c]
push ecx
push eax
mov ecx, esi
mov dword [ebp - 0x28c], 0x28
call dword [0xc99200]
call esi
test eax, eax
je 0xc06c5b
mov esi, dword [0xc930a0]
lea eax, [ebp - 0x278]
push eax
xor eax, eax
mov ecx, esi
push eax
call dword [0xc99200]
call esi
mov esi, dword [0xc930a0]
lea eax, [ebp - 0x270]
push eax
xor eax, eax
mov ecx, esi
push eax
call dword [0xc99200]
call esi
cmp dword [ebp - 0x8c8], 0
lea esi, [ebp - 0x278]
lea edi, [ebp - 0x9a0]
movsd dword es:[edi], dword [esi]
push 0x64
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0xc06eca
imul eax, dword [ebp - 0x270], 5
cdq
idiv ecx
add eax, dword [ebp - 0x278]
jmp 0xc06ed8
mov eax, dword [ebp - 0x270]
sub eax, ebx
imul eax, eax, 0x5f
cdq
idiv ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x26c]
sub eax, dword [ebp - 0x8c0]
imul eax, eax, 0x5f
jmp 0xc06c52
xor ebx, ebx
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x134], ebx
jmp 0xc06c5d
mov ebx, dword [ebp - 0x8e8]
mov esi, dword [0xc93040]
mov ecx, esi
push 1
push dword [ebp - 0x914]
call dword [0xc99200]
call esi
cmp dword [ebp - 0x598], 0
mov dword [ebp - 0x920], eax
mov dword [ebp - 0x8e4], 0x810
je 0xc06f46
mov dword [ebp - 0x8e4], 0x20812
test edi, edi
je 0xc07b08
mov eax, dword [ebp - 0x594]
mov ebx, dword [ebp - 0x590]
mov dword [ebp - 0x8c0], eax
mov eax, dword [ebp - 0x584]
mov dword [ebp - 0x8c8], eax
xor eax, eax
push 0x54
push eax
lea eax, [ebp - 0x750]
mov dword [ebp - 0x8d0], ebx
push eax
call fcn.00ab4bf6
add esp, 0xc
xor eax, eax
push 0x54
push eax
lea eax, [ebp - 0x858]
push eax
call fcn.00ab4bf6
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x8d8], eax
mov dword [ebp - 0x8dc], eax
mov dword [ebp - 0x8c4], eax
push 0x2c
push eax
mov dword [ebp - 0x8bc], eax
lea eax, [ebp - 0x1a4]
push eax
call fcn.00ab4bf6
xor eax, eax
lea edi, [ebp - 0x178]
mov dword [ebp - 0x8ec], eax
add esp, 0xc
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
test ebx, ebx
jne 0xc06fe6
mov ebx, 0x80070057
jmp 0xc08b2f
mov esi, dword [0xc93028]
mov ecx, esi
mov ebx, dword [ebp - 0x914]
push 7
push ebx
call dword [0xc99200]
call esi
test eax, eax
jne 0xc07025
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0xc0701a
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0xc07524
jmp 0xc07bb4
mov esi, dword [0xc93034]
lea ecx, [ebp - 0x750]
push ecx
push 0x54
push eax
mov ecx, esi
call dword [0xc99200]
call esi
test eax, eax
je 0xc07067
mov eax, dword [ebp - 0x73c]
mov dword [ebp - 0x8d8], eax
mov eax, dword [ebp - 0x74c]
mov dword [ebp - 0x8c4], eax
mov eax, dword [ebp - 0x748]
mov dword [ebp - 0x8bc], eax
mov esi, dword [0xc93008]
mov ecx, esi
push ebx
call dword [0xc99200]
call esi
mov edi, eax
mov dword [ebp - 0x900], edi
test edi, edi
je 0xc07003
mov eax, dword [ebp - 0x56c]
xor ecx, ecx
sub eax, dword [ebp - 0x574]
mov ebx, ecx
mov esi, dword [0xc9300c]
mov dword [ebp - 0x1a0], eax
mov eax, dword [ebp - 0x570]
sub eax, dword [ebp - 0x568]
mov dword [ebp - 0x19c], eax
xor eax, eax
push 0x20
inc eax
mov dword [ebp - 0x968], ecx
mov word [ebp - 0x198], ax
pop eax
push ecx
push ecx
mov word [ebp - 0x196], ax
lea eax, [ebp - 0x968]
push eax
push ecx
lea eax, [ebp - 0x1a4]
mov dword [ebp - 0x194], ecx
push eax
mov dword [ebp - 0x190], ecx
mov dword [ebp - 0x18c], ecx
mov dword [ebp - 0x188], ecx
mov dword [ebp - 0x184], ecx
mov dword [ebp - 0x180], ecx
mov dword [ebp - 0x17c], ecx
mov ecx, esi
push edi
mov dword [ebp - 0x8b8], ebx
mov dword [ebp - 0x1a4], 0x28
call dword [0xc99200]
call esi
mov dword [ebp - 0x8cc], eax
test eax, eax
jne 0xc07166
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
mov dword [ebp - 0x8b8], ebx
test ebx, ebx
jle 0xc07153
movzx ebx, bx
or ebx, 0x80070000
mov dword [ebp - 0x8b8], ebx
test ebx, ebx
mov eax, dword [ebp - 0x8cc]
js 0xc07166
mov ebx, 0x80004005
mov dword [ebp - 0x8b8], ebx
test ebx, ebx
js 0xc074dc
test eax, eax
je 0xc0719c
mov esi, dword [0xc93034]
lea ecx, [ebp - 0x858]
push ecx
push 0x54
push eax
mov ecx, esi
call dword [0xc99200]
call esi
test eax, eax
je 0xc0719c
mov eax, dword [ebp - 0x844]
mov dword [ebp - 0x8dc], eax
mov eax, dword [ebp - 0x56c]
sub eax, dword [ebp - 0x574]
push dword [ebp - 0x8cc]
mov esi, dword [0xc9303c]
mov ecx, esi
mov dword [ebp - 0x170], eax
mov eax, dword [ebp - 0x568]
sub eax, dword [ebp - 0x570]
push edi
mov dword [ebp - 0x16c], eax
call dword [0xc99200]
call esi
mov esi, dword [0xc93040]
xor eax, eax
inc eax
mov ecx, esi
push eax
push edi
call dword [0xc99200]
call esi
push dword [ebp - 0x8c8]
mov esi, dword [0xc9303c]
mov ecx, esi
push edi
call dword [0xc99200]
call esi
mov esi, dword [0xc93038]
mov ecx, esi
mov edi, dword [0xc93074]
mov dword [ebp - 0x8ec], eax
xor eax, eax
push eax
call dword [0xc99200]
call esi
push eax
lea eax, [ebp - 0x178]
mov ecx, edi
push eax
push dword [ebp - 0x900]
call dword [0xc99200]
call edi
mov edi, dword [ebp - 0x900]
xor eax, eax
mov esi, dword [0xc9306c]
mov ecx, esi
push eax
push dword [ebp - 0x8e4]
lea eax, [ebp - 0x178]
push eax
push 0xffffffffffffffff
push dword [ebp - 0x8d0]
push edi
call dword [0xc99200]
call esi
xor eax, eax
inc eax
cmp dword [ebp - 0x8e8], eax
jne 0xc072a3
cmp dword [ebp - 0x8c0], 0
je 0xc07297
mov esi, dword [0xc9308c]
mov ecx, esi
push 8
call dword [0xc99200]
call esi
mov dword [ebp - 0x8d4], eax
jmp 0xc072ad
mov dword [ebp - 0x8d4], 0xffffff
jmp 0xc072ad
mov dword [ebp - 0x8d4], 0xffa8a8a8
mov esi, dword [ebp - 0x574]
xor ecx, ecx
mov eax, dword [ebp - 0x570]
mov edx, ecx
mov dword [ebp - 0x908], esi
mov dword [ebp - 0x8c0], edx
test esi, esi
jns 0xc072df
mov edx, esi
neg edx
xor esi, esi
mov dword [ebp - 0x8c0], edx
mov dword [ebp - 0x908], esi
test eax, eax
jns 0xc072e9
mov ecx, eax
neg ecx
xor eax, eax
mov esi, dword [ebp - 0x170]
sub esi, edx
mov edx, dword [ebp - 0x8c4]
sub edx, dword [ebp - 0x908]
mov dword [ebp - 0x8f0], esi
cmp esi, edx
jl 0xc0730f
mov esi, edx
mov dword [ebp - 0x8f0], edx
mov edx, dword [ebp - 0x16c]
sub dword [ebp - 0x8bc], eax
sub edx, ecx
mov dword [ebp - 0x8f8], edx
cmp edx, dword [ebp - 0x8bc]
jl 0xc07337
mov edx, dword [ebp - 0x8bc]
mov dword [ebp - 0x8f8], edx
test esi, esi
jle 0xc074dc
test edx, edx
jle 0xc074dc
mov ebx, dword [ebp - 0x170]
mov edx, dword [ebp - 0x8dc]
mov edi, dword [ebp - 0x8d8]
imul ecx, ebx
shl ebx, 2
mov dword [ebp - 0x8c8], ebx
add ecx, dword [ebp - 0x8c0]
lea ecx, [edx + ecx*4]
mov edx, dword [ebp - 0x8c4]
imul eax, edx
mov dword [ebp - 0x8f4], ecx
add eax, dword [ebp - 0x908]
shl edx, 2
mov dword [ebp - 0x8d0], edx
lea eax, [edi + eax*4]
mov dword [ebp - 0x8d8], eax
mov edi, eax
mov dword [ebp - 0x8dc], esi
lea ebx, [eax + 3]
sub edi, ecx
lea edx, [ecx + 2]
mov dword [ebp - 0x8bc], ebx
mov dword [ebp - 0x8c4], edx
mov dword [ebp - 0x8c0], edi
movzx eax, byte [edx - 2]
movzx ecx, byte [edx - 1]
lea ecx, [eax + ecx*2]
movzx eax, byte [edx]
add ecx, eax
shr ecx, 2
not cl
test cl, cl
je 0xc07477
mov bl, byte [edi + edx]
mov edi, 0xff
mov eax, dword [ebp - 0x8d4]
movzx eax, al
movzx esi, cl
movzx ecx, bl
sub eax, ecx
mov ecx, dword [ebp - 0x8c4]
imul eax, esi
cdq
idiv edi
mov edx, dword [ebp - 0x8c0]
add al, bl
mov byte [edx + ecx], al
mov eax, dword [ebp - 0x8bc]
mov bl, byte [eax - 2]
mov eax, dword [ebp - 0x8d4]
movzx eax, ah
movzx ecx, bl
sub eax, ecx
mov ecx, dword [ebp - 0x8bc]
imul eax, esi
cdq
idiv edi
add al, bl
mov byte [ecx - 2], al
mov bl, byte [ecx - 3]
movzx eax, byte [ebp - 0x8d2]
movzx ecx, bl
sub eax, ecx
mov ecx, dword [ebp - 0x8bc]
imul eax, esi
cdq
idiv edi
add al, bl
mov byte [ecx - 3], al
mov eax, edi
mov bl, byte [ecx]
movzx ecx, bl
sub eax, ecx
imul eax, esi
mov esi, dword [ebp - 0x8dc]
cdq
idiv edi
mov edx, dword [ebp - 0x8c4]
mov edi, dword [ebp - 0x8c0]
add al, bl
mov ebx, dword [ebp - 0x8bc]
mov byte [ebx], al
push 4
pop eax
add edx, eax
add ebx, eax
sub esi, 1
mov dword [ebp - 0x8c4], edx
mov dword [ebp - 0x8bc], ebx
mov dword [ebp - 0x8dc], esi
jne 0xc073b7
mov ecx, dword [ebp - 0x8f4]
mov eax, dword [ebp - 0x8d8]
add ecx, dword [ebp - 0x8c8]
add eax, dword [ebp - 0x8d0]
sub dword [ebp - 0x8f8], 1
mov esi, dword [ebp - 0x8f0]
mov dword [ebp - 0x8f4], ecx
mov dword [ebp - 0x8d8], eax
jne 0xc07395
mov ebx, dword [ebp - 0x8b8]
mov edi, dword [ebp - 0x900]
mov eax, dword [ebp - 0x8cc]
test eax, eax
je 0xc074f7
mov esi, dword [0xc9301c]
mov ecx, esi
push eax
call dword [0xc99200]
call esi
mov eax, dword [ebp - 0x8ec]
test eax, eax
je 0xc07513
mov esi, dword [0xc9303c]
mov ecx, esi
push eax
push edi
call dword [0xc99200]
call esi
mov esi, dword [0xc93018]
mov ecx, esi
push edi
call dword [0xc99200]
call esi
test ebx, ebx
js 0xc08b2f
mov eax, dword [ebp - 0x594]
mov ebx, dword [ebp - 0x58c]
mov dword [ebp - 0x8c0], eax
mov eax, dword [ebp - 0x580]
mov dword [ebp - 0x8c8], eax
xor eax, eax
push 0x54
push eax
lea eax, [ebp - 0x6f8]
mov dword [ebp - 0x8d0], ebx
push eax
call fcn.00ab4bf6
add esp, 0xc
xor eax, eax
push 0x54
push eax
lea eax, [ebp - 0x800]
push eax
call fcn.00ab4bf6
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x8d8], eax
mov dword [ebp - 0x8dc], eax
mov dword [ebp - 0x8c4], eax
push 0x2c
push eax
mov dword [ebp - 0x8bc], eax
lea eax, [ebp - 0x254]
push eax
call fcn.00ab4bf6
xor eax, eax
lea edi, [ebp - 0x168]
mov dword [ebp - 0x8ec], eax
add esp, 0xc
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
test ebx, ebx
je 0xc06fdc
mov esi, dword [0xc93028]
mov ecx, esi
mov ebx, dword [ebp - 0x914]
push 7
push ebx
call dword [0xc99200]
call esi
test eax, eax
jne 0xc075fd
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0xc075f2
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0xc07afb
jmp 0xc07bb4
mov esi, dword [0xc93034]
lea ecx, [ebp - 0x6f8]
push ecx
push 0x54
push eax
mov ecx, esi
call dword [0xc99200]
call esi
test eax, eax
je 0xc0763f
mov eax, dword [ebp - 0x6e4]
mov dword [ebp - 0x8d8], eax
mov eax, dword [ebp - 0x6f4]
mov dword [ebp - 0x8c4], eax
mov eax, dword [ebp - 0x6f0]
mov dword [ebp - 0x8bc], eax
mov esi, dword [0xc93008]
mov ecx, esi
push ebx
call dword [0xc99200]
call esi
mov edi, eax
mov dword [ebp - 0x904], edi
test edi, edi
je 0xc075db
mov eax, dword [ebp - 0x55c]
xor ecx, ecx
sub eax, dword [ebp - 0x564]
mov ebx, ecx
mov esi, dword [0xc9300c]
mov dword [ebp - 0x250], eax
mov eax, dword [ebp - 0x560]
sub eax, dword [ebp - 0x558]
mov dword [ebp - 0x24c], eax
xor eax, eax
push 0x20
inc eax
mov dword [ebp - 0x974], ecx
mov word [ebp - 0x248], ax
pop eax
push ecx
push ecx
mov word [ebp - 0x246], ax
lea eax, [ebp - 0x974]
push eax
push ecx
lea eax, [ebp - 0x254]
mov dword [ebp - 0x244], ecx
push eax
mov dword [ebp - 0x240], ecx
mov dword [ebp - 0x23c], ecx
mov dword [ebp - 0x238], ecx
mov dword [ebp - 0x234], ecx
mov dword [ebp - 0x230], ecx
mov dword [ebp - 0x22c], ecx
mov ecx, esi
push edi
mov dword [ebp - 0x8b8], ebx
mov dword [ebp - 0x254], 0x28
call dword [0xc99200]
call esi
mov dword [ebp - 0x8cc], eax
test eax, eax
jne 0xc0773e
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
mov dword [ebp - 0x8b8], ebx
test ebx, ebx
jle 0xc0772b
movzx ebx, bx
or ebx, 0x80070000
mov dword [ebp - 0x8b8], ebx
test ebx, ebx
mov eax, dword [ebp - 0x8cc]
js 0xc0773e
mov ebx, 0x80004005
mov dword [ebp - 0x8b8], ebx
test ebx, ebx
js 0xc07ab3
test eax, eax
je 0xc07774
mov esi, dword [0xc93034]
lea ecx, [ebp - 0x800]
push ecx
push 0x54
push eax
mov ecx, esi
call dword [0xc99200]
call esi
test eax, eax
je 0xc07774
mov eax, dword [ebp - 0x7ec]
mov dword [ebp - 0x8dc], eax
mov eax, dword [ebp - 0x55c]
sub eax, dword [ebp - 0x564]
push dword [ebp - 0x8cc]
mov esi, dword [0xc9303c]
mov ecx, esi
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x558]
sub eax, dword [ebp - 0x560]
push edi
mov dword [ebp - 0x15c], eax
call dword [0xc99200]
call esi
mov esi, dword [0xc93040]
xor eax, eax
inc eax
mov ecx, esi
push eax
push edi
call dword [0xc99200]
call esi
push dword [ebp - 0x8c8]
mov esi, dword [0xc9303c]
mov ecx, esi
push edi
call dword [0xc99200]
call esi
mov esi, dword [0xc93038]
mov ecx, esi
mov edi, dword [0xc93074]
mov dword [ebp - 0x8ec], eax
xor eax, eax
push eax
call dword [0xc99200]
call esi
push eax
lea eax, [ebp - 0x168]
mov ecx, edi
push eax
push dword [ebp - 0x904]
call dword [0xc99200]
call edi
mov edi, dword [ebp - 0x904]
xor eax, eax
mov esi, dword [0xc9306c]
mov ecx, esi
push eax
push dword [ebp - 0x8e4]
lea eax, [ebp - 0x168]
push eax
push 0xffffffffffffffff
push dword [ebp - 0x8d0]
push edi
call dword [0xc99200]
call esi
xor eax, eax
inc eax
cmp dword [ebp - 0x8e8], eax
jne 0xc07875
cmp dword [ebp - 0x8c0], 0
je 0xc07869
mov esi, dword [0xc9308c]
mov ecx, esi
push 8
call dword [0xc99200]
call esi
jmp 0xc0787a
mov dword [ebp - 0x8f8], 0xffffff
jmp 0xc07886
mov eax, 0xffa8a8a8
mov dword [ebp - 0x8f8], eax
mov dword [ebp - 0x8fc], eax
mov esi, dword [ebp - 0x564]
xor ecx, ecx
mov eax, dword [ebp - 0x560]
mov edx, ecx
mov dword [ebp - 0x908], esi
mov dword [ebp - 0x8c0], edx
test esi, esi
jns 0xc078b8
mov edx, esi
neg edx
xor esi, esi
mov dword [ebp - 0x8c0], edx
mov dword [ebp - 0x908], esi
test eax, eax
jns 0xc078c2
mov ecx, eax
neg ecx
xor eax, eax
mov esi, dword [ebp - 0x160]
sub esi, edx
mov edx, dword [ebp - 0x8c4]
sub edx, dword [ebp - 0x908]
mov dword [ebp - 0x8f0], esi
cmp esi, edx
jl 0xc078e8
mov esi, edx
mov dword [ebp - 0x8f0], edx
mov edx, dword [ebp - 0x15c]
sub dword [ebp - 0x8bc], eax
sub edx, ecx
mov dword [ebp - 0x900], edx
cmp edx, dword [ebp - 0x8bc]
jl 0xc07910
mov edx, dword [ebp - 0x8bc]
mov dword [ebp - 0x900], edx
test esi, esi
jle 0xc07ab3
test edx, edx
jle 0xc07ab3
mov ebx, dword [ebp - 0x160]
mov edx, dword [ebp - 0x8dc]
mov edi, dword [ebp - 0x8d8]
imul ecx, ebx
shl ebx, 2
mov dword [ebp - 0x8c8], ebx
add ecx, dword [ebp - 0x8c0]
lea ecx, [edx + ecx*4]
mov edx, dword [ebp - 0x8c4]
imul eax, edx
mov dword [ebp - 0x8f4], ecx
add eax, dword [ebp - 0x908]
shl edx, 2
mov dword [ebp - 0x8d0], edx
lea eax, [edi + eax*4]
mov edi, 0xff
mov dword [ebp - 0x8d8], eax
lea ebx, [eax + 3]
mov dword [ebp - 0x8dc], esi
lea edx, [ecx + 2]
mov dword [ebp - 0x8bc], ebx
sub eax, ecx
mov dword [ebp - 0x8c4], edx
mov dword [ebp - 0x8c0], eax
movzx eax, byte [edx - 2]
movzx ecx, byte [edx - 1]
lea ecx, [eax + ecx*2]
movzx eax, byte [edx]
add ecx, eax
shr ecx, 2
not cl
test cl, cl
je 0xc07a4e
mov eax, dword [ebp - 0x8c0]
movzx esi, cl
mov bl, byte [eax + edx]
mov eax, dword [ebp - 0x8fc]
movzx eax, al
movzx ecx, bl
sub eax, ecx
mov ecx, dword [ebp - 0x8c4]
imul eax, esi
cdq
idiv edi
mov edx, dword [ebp - 0x8c0]
add al, bl
mov byte [edx + ecx], al
mov eax, dword [ebp - 0x8bc]
mov bl, byte [eax - 2]
mov eax, dword [ebp - 0x8fc]
movzx eax, ah
movzx ecx, bl
sub eax, ecx
mov ecx, dword [ebp - 0x8bc]
imul eax, esi
cdq
idiv edi
add al, bl
mov byte [ecx - 2], al
mov bl, byte [ecx - 3]
movzx eax, byte [ebp - 0x8f6]
movzx ecx, bl
sub eax, ecx
mov ecx, dword [ebp - 0x8bc]
imul eax, esi
cdq
idiv edi
add al, bl
mov byte [ecx - 3], al
mov eax, edi
mov bl, byte [ecx]
movzx ecx, bl
sub eax, ecx
imul eax, esi
mov esi, dword [ebp - 0x8dc]
cdq
idiv edi
mov edx, dword [ebp - 0x8c4]
add al, bl
mov ebx, dword [ebp - 0x8bc]
mov byte [ebx], al
push 4
pop eax
add edx, eax
add ebx, eax
sub esi, 1
mov dword [ebp - 0x8c4], edx
mov dword [ebp - 0x8bc], ebx
mov dword [ebp - 0x8dc], esi
jne 0xc07993
mov ecx, dword [ebp - 0x8f4]
mov eax, dword [ebp - 0x8d8]
add ecx, dword [ebp - 0x8c8]
add eax, dword [ebp - 0x8d0]
sub dword [ebp - 0x900], 1
mov esi, dword [ebp - 0x8f0]
mov dword [ebp - 0x8f4], ecx
mov dword [ebp - 0x8d8], eax
jne 0xc07973
mov ebx, dword [ebp - 0x8b8]
mov edi, dword [ebp - 0x904]
mov eax, dword [ebp - 0x8cc]
test eax, eax
je 0xc07ace
mov esi, dword [0xc9301c]
mov ecx, esi
push eax
call dword [0xc99200]
call esi
mov eax, dword [ebp - 0x8ec]
test eax, eax
je 0xc07aea
mov esi, dword [0xc9303c]
mov ecx, esi
push eax
push edi
call dword [0xc99200]
call esi
mov esi, dword [0xc93018]
mov ecx, esi
push edi
call dword [0xc99200]
call esi
test ebx, ebx
js 0xc08b2f
jmp 0xc08add
xor edx, edx
inc edx
cmp dword [ebp - 0x594], 0
jne 0xc07b1c
cmp ebx, edx
je 0xc07b1c
mov al, 0xc0
jmp 0xc07b1e
or al, 0xff
mov esi, dword [0xc93008]
xor ecx, ecx
push dword [ebp - 0x914]
mov byte [ebp - 0x906], al
mov eax, ecx
mov word [ebp - 0x908], cx
mov dword [ebp - 0x90c], ecx
mov dword [ebp - 0x94c], ecx
mov dword [ebp - 0x948], ecx
mov dword [ebp - 0x940], ecx
mov dword [ebp - 0x93c], ecx
mov dword [ebp - 0x938], ecx
mov ecx, esi
mov byte [ebp - 0x905], dl
mov dword [ebp - 0x8f8], eax
mov dword [ebp - 0x954], eax
mov dword [ebp - 0x950], eax
mov dword [ebp - 0x910], eax
mov dword [ebp - 0x944], eax
call dword [0xc99200]
call esi
mov dword [ebp - 0x91c], eax
test eax, eax
jne 0xc07bbe
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0xc07bae
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0xc08b2f
mov ebx, 0x80004005
jmp 0xc08b2f
xor eax, eax
inc eax
cmp ebx, eax
jne 0xc07cc4
mov eax, dword [ebp - 0x56c]
mov ecx, dword [ebp - 0x55c]
sub ecx, dword [ebp - 0x564]
sub eax, dword [ebp - 0x574]
mov dword [ebp - 0x8b4], ecx
cmp ecx, eax
jg 0xc07bf3
mov ecx, eax
mov dword [ebp - 0x8b4], eax
mov eax, dword [ebp - 0x558]
xor edx, edx
sub eax, dword [ebp - 0x570]
mov dword [ebp - 0x8c4], eax
mov eax, edx
cmp dword [ebp - 0x598], eax
je 0xc07c47
mov ebx, dword [ebp - 0x574]
sub ebx, dword [ebp - 0x56c]
mov edx, dword [ebp - 0x564]
add ebx, ecx
sub edx, dword [ebp - 0x55c]
mov eax, ebx
add edx, ecx
mov dword [ebp - 0x8f8], ebx
mov dword [ebp - 0x954], ebx
mov dword [ebp - 0x910], edx
mov dword [ebp - 0x944], edx
sub eax, dword [ebp - 0x574]
add eax, dword [ebp - 0x56c]
mov edi, dword [ebp - 0x560]
sub edi, dword [ebp - 0x570]
sub edx, dword [ebp - 0x564]
add edx, dword [ebp - 0x55c]
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x94c], eax
mov eax, dword [ebp - 0x568]
sub eax, dword [ebp - 0x570]
mov dword [ebp - 0x8d8], edi
mov dword [ebp - 0x940], edi
sub edi, dword [ebp - 0x560]
add edi, dword [ebp - 0x558]
mov dword [ebp - 0x8e0], eax
mov dword [ebp - 0x948], eax
mov dword [ebp - 0x904], edx
mov dword [ebp - 0x93c], edx
mov dword [ebp - 0x8f4], edi
mov dword [ebp - 0x938], edi
jmp 0xc07d5c
mov eax, dword [ebp - 0x12c]
lea esi, [ebp - 0x574]
lea edi, [ebp - 0x954]
mov ecx, dword [ebp - 0x130]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x8c4], eax
mov dword [ebp - 0x8b4], ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x948]
lea esi, [ebp - 0x564]
lea edi, [ebp - 0x944]
mov dword [ebp - 0x8e0], eax
mov eax, dword [ebp - 0x94c]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x8cc], eax
mov eax, dword [ebp - 0x950]
mov dword [ebp - 0x90c], eax
mov eax, dword [ebp - 0x954]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x8f8], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x938]
mov dword [ebp - 0x8f4], eax
mov eax, dword [ebp - 0x93c]
mov dword [ebp - 0x904], eax
mov eax, dword [ebp - 0x940]
mov dword [ebp - 0x8d8], eax
mov eax, dword [ebp - 0x944]
mov dword [ebp - 0x910], eax
mov edi, dword [ebp - 0x8c4]
xor edx, edx
mov esi, dword [0xc9300c]
mov eax, edi
neg eax
mov dword [ebp - 0x224], ecx
mov dword [ebp - 0x220], eax
mov ecx, esi
xor eax, eax
mov dword [ebp - 0x964], edx
push 0x20
inc eax
mov dword [ebp - 0x218], edx
mov word [ebp - 0x21c], ax
mov ebx, edx
pop eax
push edx
push edx
mov word [ebp - 0x21a], ax
lea eax, [ebp - 0x964]
push eax
push edx
lea eax, [ebp - 0x228]
mov dword [ebp - 0x214], edx
push eax
push dword [ebp - 0x91c]
mov dword [ebp - 0x210], edx
mov dword [ebp - 0x20c], edx
mov dword [ebp - 0x208], edx
mov dword [ebp - 0x204], edx
mov dword [ebp - 0x200], edx
mov dword [ebp - 0x228], 0x28
call dword [0xc99200]
call esi
mov dword [ebp - 0x92c], eax
test eax, eax
jne 0xc07e19
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0xc07e0c
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
mov eax, dword [ebp - 0x92c]
js 0xc07e19
mov ebx, 0x80004005
test ebx, ebx
js 0xc08af9
mov ebx, dword [ebp - 0x91c]
mov esi, dword [0xc9303c]
mov ecx, esi
push eax
push ebx
call dword [0xc99200]
call esi
xor eax, eax
inc eax
cmp dword [ebp - 0x8e8], eax
jne 0xc07e87
mov ecx, dword [ebp - 0x934]
test ecx, ecx
je 0xc07e87
mov esi, dword [0xc93074]
xor eax, eax
mov dword [ebp - 0x264], eax
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x8b4]
push ecx
mov dword [ebp - 0x25c], eax
mov ecx, esi
lea eax, [ebp - 0x264]
mov dword [ebp - 0x258], edi
push eax
push ebx
call dword [0xc99200]
call esi
mov eax, dword [ebp - 0x594]
mov ebx, dword [ebp - 0x590]
mov dword [ebp - 0x918], eax
mov eax, dword [ebp - 0x584]
mov dword [ebp - 0x8c8], eax
xor eax, eax
push 0x54
push eax
lea eax, [ebp - 0x648]
mov dword [ebp - 0x8ec], ebx
push eax
call fcn.00ab4bf6
add esp, 0xc
xor eax, eax
push 0x54
push eax
lea eax, [ebp - 0x8b0]
push eax
call fcn.00ab4bf6
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x8dc], eax
mov dword [ebp - 0x8c0], eax
mov dword [ebp - 0x8f0], eax
push 0x2c
push eax
mov dword [ebp - 0x8d4], eax
lea eax, [ebp - 0x1fc]
push eax
call fcn.00ab4bf6
xor eax, eax
lea edi, [ebp - 0x158]
mov dword [ebp - 0x8d0], eax
add esp, 0xc
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
test ebx, ebx
jne 0xc07f1f
mov ebx, 0x80070057
jmp 0xc08af9
mov esi, dword [0xc93028]
mov ecx, esi
mov ebx, dword [ebp - 0x91c]
push 7
push ebx
call dword [0xc99200]
call esi
test eax, eax
jne 0xc07f63
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0xc07f53
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0xc0847b
mov ebx, 0x80004005
jmp 0xc08af9
mov esi, dword [0xc93034]
lea ecx, [ebp - 0x648]
push ecx
push 0x54
push eax
mov ecx, esi
call dword [0xc99200]
call esi
test eax, eax
je 0xc07fa5
mov eax, dword [ebp - 0x634]
mov dword [ebp - 0x8dc], eax
mov eax, dword [ebp - 0x644]
mov dword [ebp - 0x8f0], eax
mov eax, dword [ebp - 0x640]
mov dword [ebp - 0x8d4], eax
mov esi, dword [0xc93008]
mov ecx, esi
push ebx
call dword [0xc99200]
call esi
mov ecx, eax
mov dword [ebp - 0x8bc], ecx
test ecx, ecx
je 0xc07f3c
mov eax, dword [ebp - 0x8cc]
xor edx, edx
sub eax, dword [ebp - 0x8f8]
mov ebx, edx
mov edi, dword [ebp - 0x90c]
mov esi, dword [0xc9300c]
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x1f8], eax
mov eax, edi
sub eax, dword [ebp - 0x8e0]
mov dword [ebp - 0x1f4], eax
xor eax, eax
push 0x20
inc eax
mov dword [ebp - 0x96c], edx
mov word [ebp - 0x1f0], ax
pop eax
push edx
push edx
mov word [ebp - 0x1ee], ax
lea eax, [ebp - 0x96c]
push eax
push edx
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x8b8], ebx
push eax
push ecx
mov ecx, esi
mov dword [ebp - 0x1ec], edx
mov dword [ebp - 0x1e8], edx
mov dword [ebp - 0x1e4], edx
mov dword [ebp - 0x1e0], edx
mov dword [ebp - 0x1dc], edx
mov dword [ebp - 0x1d8], edx
mov dword [ebp - 0x1d4], edx
mov dword [ebp - 0x1fc], 0x28
call dword [0xc99200]
call esi
mov dword [ebp - 0x900], eax
test eax, eax
jne 0xc080ac
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
mov dword [ebp - 0x8b8], ebx
test ebx, ebx
jle 0xc08099
movzx ebx, bx
or ebx, 0x80070000
mov dword [ebp - 0x8b8], ebx
test ebx, ebx
mov eax, dword [ebp - 0x900]
js 0xc080ac
mov ebx, 0x80004005
mov dword [ebp - 0x8b8], ebx
test ebx, ebx
js 0xc0842d
test eax, eax
je 0xc080e2
mov esi, dword [0xc93034]
lea ecx, [ebp - 0x8b0]
push ecx
push 0x54
push eax
mov ecx, esi
call dword [0xc99200]
call esi
test eax, eax
je 0xc080e2
mov eax, dword [ebp - 0x89c]
mov dword [ebp - 0x8c0], eax
mov eax, dword [ebp - 0x8cc]
push dword [ebp - 0x900]
mov esi, dword [0xc9303c]
mov ecx, esi
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0x8e0]
sub eax, edi
mov edi, dword [ebp - 0x8bc]
push edi
mov dword [ebp - 0x14c], eax
call dword [0xc99200]
call esi
mov esi, dword [0xc93040]
xor eax, eax
inc eax
mov ecx, esi
push eax
push edi
call dword [0xc99200]
call esi
push dword [ebp - 0x8c8]
mov esi, dword [0xc9303c]
mov ecx, esi
push edi
call dword [0xc99200]
call esi
mov esi, dword [0xc93038]
mov ecx, esi
mov edi, dword [0xc93074]
mov dword [ebp - 0x8d0], eax
xor eax, eax
push eax
call dword [0xc99200]
call esi
push eax
lea eax, [ebp - 0x158]
mov ecx, edi
push eax
push dword [ebp - 0x8bc]
call dword [0xc99200]
call edi
mov edi, dword [ebp - 0x8bc]
xor eax, eax
mov esi, dword [0xc9306c]
mov ecx, esi
push eax
push dword [ebp - 0x8e4]
lea eax, [ebp - 0x158]
push eax
push 0xffffffffffffffff
push dword [ebp - 0x8ec]
push edi
call dword [0xc99200]
call esi
xor eax, eax
inc eax
cmp dword [ebp - 0x8e8], eax
jne 0xc081e5
cmp dword [ebp - 0x918], 0
je 0xc081d9
mov esi, dword [0xc9308c]
mov ecx, esi
push 8
call dword [0xc99200]
call esi
mov dword [ebp - 0x8e0], eax
jmp 0xc081ef
mov dword [ebp - 0x8e0], 0xffffff
jmp 0xc081ef
mov dword [ebp - 0x8e0], 0xffa8a8a8
mov ecx, dword [ebp - 0x8f8]
xor eax, eax
mov dword [ebp - 0x8ec], eax
mov edx, eax
test ecx, ecx
jns 0xc0820f
mov esi, ecx
mov ecx, eax
neg esi
mov dword [ebp - 0x8ec], esi
mov eax, dword [ebp - 0x90c]
test eax, eax
jns 0xc0821f
mov edx, eax
neg edx
xor eax, eax
mov esi, dword [ebp - 0x150]
sub esi, dword [ebp - 0x8ec]
mov edi, dword [ebp - 0x8f0]
mov dword [ebp - 0x8cc], edi
sub dword [ebp - 0x8cc], ecx
mov dword [ebp - 0x90c], esi
cmp esi, dword [ebp - 0x8cc]
jl 0xc08257
mov esi, dword [ebp - 0x8cc]
mov dword [ebp - 0x90c], esi
mov esi, dword [ebp - 0x14c]
sub dword [ebp - 0x8d4], eax
sub esi, edx
mov dword [ebp - 0x8cc], esi
cmp esi, dword [ebp - 0x8d4]
jl 0xc0827f
mov esi, dword [ebp - 0x8d4]
mov dword [ebp - 0x8cc], esi
cmp dword [ebp - 0x90c], 0
mov edi, dword [ebp - 0x8bc]
jle 0xc08433
test esi, esi
jle 0xc08433
imul eax, dword [ebp - 0x8f0]
imul edx, dword [ebp - 0x150]
mov esi, dword [ebp - 0x8c0]
add eax, ecx
mov ecx, dword [ebp - 0x8dc]
add edx, dword [ebp - 0x8ec]
lea eax, [ecx + eax*4]
mov ecx, dword [ebp - 0x150]
shl ecx, 2
lea esi, [esi + edx*4]
mov dword [ebp - 0x918], ecx
mov ecx, dword [ebp - 0x8f0]
shl ecx, 2
mov dword [ebp - 0x8ec], esi
mov dword [ebp - 0x8f8], eax
mov dword [ebp - 0x8c8], ecx
mov edi, eax
lea edx, [esi + 2]
sub edi, esi
mov dword [ebp - 0x8f0], edx
mov esi, dword [ebp - 0x90c]
lea ebx, [eax + 3]
mov dword [ebp - 0x8d4], ebx
mov dword [ebp - 0x8c0], edi
mov dword [ebp - 0x8dc], esi
movzx eax, byte [edx - 2]
movzx ecx, byte [edx - 1]
lea ecx, [eax + ecx*2]
movzx eax, byte [edx]
add ecx, eax
shr ecx, 2
not cl
test cl, cl
je 0xc083d4
mov bl, byte [edi + edx]
mov edi, 0xff
mov eax, dword [ebp - 0x8e0]
movzx eax, al
movzx esi, cl
movzx ecx, bl
sub eax, ecx
mov ecx, dword [ebp - 0x8f0]
imul eax, esi
cdq
idiv edi
mov edx, dword [ebp - 0x8c0]
add al, bl
mov byte [edx + ecx], al
mov eax, dword [ebp - 0x8d4]
mov bl, byte [eax - 2]
mov eax, dword [ebp - 0x8e0]
movzx eax, ah
movzx ecx, bl
sub eax, ecx
mov ecx, dword [ebp - 0x8d4]
imul eax, esi
cdq
idiv edi
add al, bl
mov byte [ecx - 2], al
mov bl, byte [ecx - 3]
movzx eax, byte [ebp - 0x8de]
movzx ecx, bl
sub eax, ecx
mov ecx, dword [ebp - 0x8d4]
imul eax, esi
cdq
idiv edi
add al, bl
mov byte [ecx - 3], al
mov eax, edi
mov bl, byte [ecx]
movzx ecx, bl
sub eax, ecx
imul eax, esi
mov esi, dword [ebp - 0x8dc]
cdq
idiv edi
mov edx, dword [ebp - 0x8f0]
mov edi, dword [ebp - 0x8c0]
add al, bl
mov ebx, dword [ebp - 0x8d4]
mov byte [ebx], al
push 4
pop eax
add edx, eax
add ebx, eax
sub esi, 1
mov dword [ebp - 0x8f0], edx
mov dword [ebp - 0x8d4], ebx
mov dword [ebp - 0x8dc], esi
jne 0xc08314
mov esi, dword [ebp - 0x8ec]
mov eax, dword [ebp - 0x8f8]
add esi, dword [ebp - 0x918]
add eax, dword [ebp - 0x8c8]
sub dword [ebp - 0x8cc], 1
mov dword [ebp - 0x8ec], esi
mov dword [ebp - 0x8f8], eax
jne 0xc082ec
mov ebx, dword [ebp - 0x8b8]
mov edi, dword [ebp - 0x8bc]
mov eax, dword [ebp - 0x900]
test eax, eax
je 0xc0844e
mov esi, dword [0xc9301c]
mov ecx, esi
push eax
call dword [0xc99200]
call esi
mov eax, dword [ebp - 0x8d0]
test eax, eax
je 0xc0846a
mov esi, dword [0xc9303c]
mov ecx, esi
push eax
push edi
call dword [0xc99200]
call esi
mov esi, dword [0xc93018]
mov ecx, esi
push edi
call dword [0xc99200]
call esi
test ebx, ebx
js 0xc08af9
mov eax, dword [ebp - 0x594]
mov ebx, dword [ebp - 0x58c]
mov dword [ebp - 0x8d0], eax
mov eax, dword [ebp - 0x580]
mov dword [ebp - 0x918], eax
xor eax, eax
push 0x54
push eax
lea eax, [ebp - 0x6a0]
mov dword [ebp - 0x8c8], ebx
push eax
call fcn.00ab4bf6
add esp, 0xc
xor eax, eax
push 0x54
push eax
lea eax, [ebp - 0x7a8]
push eax
call fcn.00ab4bf6
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x8dc], eax
mov dword [ebp - 0x8c0], eax
mov dword [ebp - 0x8cc], eax
push 0x2c
push eax
mov dword [ebp - 0x8bc], eax
lea eax, [ebp - 0x1d0]
push eax
call fcn.00ab4bf6
xor eax, eax
lea edi, [ebp - 0x148]
mov dword [ebp - 0x8d4], eax
add esp, 0xc
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
test ebx, ebx
je 0xc07f15
mov esi, dword [0xc93028]
mov ecx, esi
mov edi, dword [ebp - 0x91c]
push 7
push edi
call dword [0xc99200]
call esi
test eax, eax
jne 0xc08554
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0xc08549
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0xc08a53
jmp 0xc07f59
mov esi, dword [0xc93034]
lea ecx, [ebp - 0x6a0]
push ecx
push 0x54
push eax
mov ecx, esi
call dword [0xc99200]
call esi
test eax, eax
je 0xc08596
mov eax, dword [ebp - 0x68c]
mov dword [ebp - 0x8dc], eax
mov eax, dword [ebp - 0x69c]
mov dword [ebp - 0x8cc], eax
mov eax, dword [ebp - 0x698]
mov dword [ebp - 0x8bc], eax
mov esi, dword [0xc93008]
mov ecx, esi
push edi
call dword [0xc99200]
call esi
mov ecx, eax
mov dword [ebp - 0x900], ecx
test ecx, ecx
je 0xc08532
mov eax, dword [ebp - 0x904]
xor edx, edx
sub eax, dword [ebp - 0x910]
mov ebx, edx
mov edi, dword [ebp - 0x8d8]
mov esi, dword [0xc9300c]
mov dword [ebp - 0x904], eax
mov dword [ebp - 0x1cc], eax
mov eax, edi
sub eax, dword [ebp - 0x8f4]
mov dword [ebp - 0x1c8], eax
xor eax, eax
push 0x20
inc eax
mov dword [ebp - 0x970], edx
mov word [ebp - 0x1c4], ax
pop eax
push edx
push edx
mov word [ebp - 0x1c2], ax
lea eax, [ebp - 0x970]
push eax
push edx
lea eax, [ebp - 0x1d0]
mov dword [ebp - 0x8b8], ebx
push eax
push ecx
mov ecx, esi
mov dword [ebp - 0x1c0], edx
mov dword [ebp - 0x1bc], edx
mov dword [ebp - 0x1b8], edx
mov dword [ebp - 0x1b4], edx
mov dword [ebp - 0x1b0], edx
mov dword [ebp - 0x1ac], edx
mov dword [ebp - 0x1a8], edx
mov dword [ebp - 0x1d0], 0x28
call dword [0xc99200]
call esi
mov dword [ebp - 0x8f8], eax
test eax, eax
jne 0xc0869d
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
mov dword [ebp - 0x8b8], ebx
test ebx, ebx
jle 0xc0868a
movzx ebx, bx
or ebx, 0x80070000
mov dword [ebp - 0x8b8], ebx
test ebx, ebx
mov eax, dword [ebp - 0x8f8]
js 0xc0869d
mov ebx, 0x80004005
mov dword [ebp - 0x8b8], ebx
test ebx, ebx
js 0xc089ff
test eax, eax
je 0xc086d3
mov esi, dword [0xc93034]
lea ecx, [ebp - 0x7a8]
push ecx
push 0x54
push eax
mov ecx, esi
call dword [0xc99200]
call esi
test eax, eax
je 0xc086d3
mov eax, dword [ebp - 0x794]
mov dword [ebp - 0x8c0], eax
mov eax, dword [ebp - 0x904]
push dword [ebp - 0x8f8]
mov esi, dword [0xc9303c]
mov ecx, esi
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 0x8f4]
sub eax, edi
mov edi, dword [ebp - 0x900]
push edi
mov dword [ebp - 0x13c], eax
call dword [0xc99200]
call esi
mov esi, dword [0xc93040]
xor eax, eax
inc eax
mov ecx, esi
push eax
push edi
call dword [0xc99200]
call esi
push dword [ebp - 0x918]
mov esi, dword [0xc9303c]
mov ecx, esi
push edi
call dword [0xc99200]
call esi
mov esi, dword [0xc93038]
mov ecx, esi
mov edi, dword [0xc93074]
mov dword [ebp - 0x8d4], eax
xor eax, eax
push eax
call dword [0xc99200]
call esi
mov esi, dword [ebp - 0x900]
mov ecx, edi
push eax
lea eax, [ebp - 0x148]
push eax
push esi
call dword [0xc99200]
call edi
xor eax, eax
push eax
push dword [ebp - 0x8e4]
lea eax, [ebp - 0x148]
push eax
push 0xffffffffffffffff
push dword [ebp - 0x8c8]
push esi
mov esi, dword [0xc9306c]
mov ecx, esi
call dword [0xc99200]
call esi
xor eax, eax
inc eax
cmp dword [ebp - 0x8e8], eax
jne 0xc087cb
cmp dword [ebp - 0x8d0], 0
je 0xc087bf
mov esi, dword [0xc9308c]
mov ecx, esi
push 8
call dword [0xc99200]
call esi
jmp 0xc087d0
mov dword [ebp - 0x8f4], 0xffffff
jmp 0xc087dc
mov eax, 0xffa8a8a8
mov dword [ebp - 0x8f4], eax
mov dword [ebp - 0x8fc], eax
mov edx, dword [ebp - 0x910]
xor eax, eax
mov dword [ebp - 0x8d0], eax
mov edi, eax
mov ecx, eax
test edx, edx
jns 0xc087fe
mov edi, edx
mov edx, eax
neg edi
mov dword [ebp - 0x8d0], edi
mov eax, dword [ebp - 0x8d8]
test eax, eax
jns 0xc0880e
mov ecx, eax
neg ecx
xor eax, eax
mov esi, dword [ebp - 0x140]
sub esi, edi
mov edi, dword [ebp - 0x8cc]
sub edi, edx
mov dword [ebp - 0x8ec], esi
cmp esi, edi
jl 0xc08830
mov esi, edi
mov dword [ebp - 0x8ec], edi
mov edi, dword [ebp - 0x13c]
sub dword [ebp - 0x8bc], eax
sub edi, ecx
mov dword [ebp - 0x8f0], edi
cmp edi, dword [ebp - 0x8bc]
jl 0xc08858
mov edi, dword [ebp - 0x8bc]
mov dword [ebp - 0x8f0], edi
test esi, esi
jle 0xc089ff
test edi, edi
jle 0xc089ff
imul eax, dword [ebp - 0x8cc]
imul ecx, dword [ebp - 0x140]
mov esi, dword [ebp - 0x8c0]
add eax, edx
mov edx, dword [ebp - 0x8dc]
add ecx, dword [ebp - 0x8d0]
lea eax, [edx + eax*4]
mov edx, dword [ebp - 0x140]
shl edx, 2
lea ecx, [esi + ecx*4]
mov esi, dword [ebp - 0x8ec]
mov dword [ebp - 0x918], edx
mov edx, dword [ebp - 0x8cc]
shl edx, 2
mov dword [ebp - 0x90c], ecx
mov dword [ebp - 0x8dc], eax
mov dword [ebp - 0x8c8], edx
lea ebx, [eax + 3]
mov dword [ebp - 0x8c0], esi
lea edx, [ecx + 2]
mov dword [ebp - 0x8bc], ebx
sub eax, ecx
mov dword [ebp - 0x8d8], edx
mov dword [ebp - 0x8d0], eax
mov edi, 0xff
movzx eax, byte [edx - 2]
movzx ecx, byte [edx - 1]
lea ecx, [eax + ecx*2]
movzx eax, byte [edx]
add ecx, eax
shr ecx, 2
not cl
test cl, cl
je 0xc089a0
mov eax, dword [ebp - 0x8d0]
movzx esi, cl
mov bl, byte [eax + edx]
mov eax, dword [ebp - 0x8fc]
movzx eax, al
movzx ecx, bl
sub eax, ecx
mov ecx, dword [ebp - 0x8d8]
imul eax, esi
cdq
idiv edi
mov edx, dword [ebp - 0x8d0]
add al, bl
mov byte [edx + ecx], al
mov eax, dword [ebp - 0x8bc]
mov bl, byte [eax - 2]
mov eax, dword [ebp - 0x8fc]
movzx eax, ah
movzx ecx, bl
sub eax, ecx
mov ecx, dword [ebp - 0x8bc]
imul eax, esi
cdq
idiv edi
add al, bl
mov byte [ecx - 2], al
mov bl, byte [ecx - 3]
movzx eax, byte [ebp - 0x8f2]
movzx ecx, bl
sub eax, ecx
mov ecx, dword [ebp - 0x8bc]
imul eax, esi
cdq
idiv edi
add al, bl
mov byte [ecx - 3], al
mov eax, edi
mov bl, byte [ecx]
movzx ecx, bl
sub eax, ecx
imul eax, esi
mov esi, dword [ebp - 0x8c0]
cdq
idiv edi
mov edx, dword [ebp - 0x8d8]
add al, bl
mov ebx, dword [ebp - 0x8bc]
mov byte [ebx], al
push 4
pop eax
add edx, eax
add ebx, eax
sub esi, 1
mov dword [ebp - 0x8d8], edx
mov dword [ebp - 0x8bc], ebx
mov dword [ebp - 0x8c0], esi
jne 0xc088e5
mov ecx, dword [ebp - 0x90c]
mov eax, dword [ebp - 0x8dc]
add ecx, dword [ebp - 0x918]
add eax, dword [ebp - 0x8c8]
sub dword [ebp - 0x8f0], 1
mov esi, dword [ebp - 0x8ec]
mov dword [ebp - 0x90c], ecx
mov dword [ebp - 0x8dc], eax
jne 0xc088c0
mov ebx, dword [ebp - 0x8b8]
mov eax, dword [ebp - 0x8f8]
test eax, eax
je 0xc08a1a
mov esi, dword [0xc9301c]
mov ecx, esi
push eax
call dword [0xc99200]
call esi
mov eax, dword [ebp - 0x8d4]
mov edi, dword [ebp - 0x900]
test eax, eax
je 0xc08a3c
mov esi, dword [0xc9303c]
mov ecx, esi
push eax
push edi
call dword [0xc99200]
call esi
mov esi, dword [0xc93018]
mov ecx, esi
push edi
call dword [0xc99200]
call esi
mov edi, dword [ebp - 0x91c]
test ebx, ebx
js 0xc08af9
xor eax, eax
inc eax
cmp dword [ebp - 0x8e8], eax
jne 0xc08aa0
mov esi, dword [section..data]
xor eax, eax
push 0xcc0020
push eax
push eax
push edi
push dword [ebp - 0x8c4]
mov ecx, esi
push dword [ebp - 0x8b4]
push dword [ebp - 0x570]
push dword [ebp - 0x574]
push dword [ebp - 0x914]
call dword [0xc99200]
call esi
jmp 0xc08add
push dword [ebp - 0x908]
mov ecx, dword [ebp - 0x8c4]
xor edx, edx
mov eax, dword [ebp - 0x8b4]
mov esi, dword [0xc93020]
push ecx
push eax
push edx
push edx
push edi
push ecx
push eax
push dword [ebp - 0x134]
mov ecx, esi
push dword [ebp - 0x138]
push dword [ebp - 0x914]
call dword [0xc99200]
call esi
push dword [ebp - 0x920]
mov esi, dword [0xc93040]
mov ecx, esi
push dword [ebp - 0x914]
call dword [0xc99200]
call esi
mov eax, dword [ebp - 0x92c]
test eax, eax
je 0xc08b14
mov esi, dword [0xc9301c]
mov ecx, esi
push eax
call dword [0xc99200]
call esi
mov eax, dword [ebp - 0x91c]
test eax, eax
je 0xc08b2f
mov esi, dword [0xc93018]
mov ecx, esi
push eax
call dword [0xc99200]
call esi
mov eax, dword [ebp - 0x934]
test eax, eax
je 0xc08b4a
mov esi, dword [0xc9301c]
mov ecx, esi
push eax
call dword [0xc99200]
call esi
mov ecx, dword [ebp - 0x590]
test ecx, ecx
je 0xc08ba1
lea edx, [ecx + 2]
xor esi, esi
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0xc08b59
mov eax, dword [ebp - 0x590]
sub ecx, edx
sar ecx, 1
lea ecx, [ecx*2 + 2]
test ecx, ecx
je 0xc08b83
xor edx, edx
mov byte [eax], dl
inc eax
sub ecx, 1
jne 0xc08b7b
push dword [ebp - 0x590]
xor eax, eax
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapFree]
xor eax, eax
mov dword [ebp - 0x590], eax
mov ecx, dword [ebp - 0x58c]
test ecx, ecx
je 0xc08bf8
lea edx, [ecx + 2]
xor esi, esi
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0xc08bb0
mov eax, dword [ebp - 0x58c]
sub ecx, edx
sar ecx, 1
lea ecx, [ecx*2 + 2]
test ecx, ecx
je 0xc08bda
xor edx, edx
mov byte [eax], dl
inc eax
sub ecx, 1
jne 0xc08bd2
push dword [ebp - 0x58c]
xor eax, eax
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapFree]
xor eax, eax
mov dword [ebp - 0x58c], eax
mov edx, dword [ebp - 0x588]
test edx, edx
je 0xc08c4c
mov ecx, edx
xor edi, edi
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, di
jne 0xc08c09
sub ecx, esi
xor eax, eax
sar ecx, 1
lea ecx, [ecx*2 + 2]
test ecx, ecx
je 0xc08c33
mov byte [edx], al
inc edx
sub ecx, 1
jne 0xc08c25
mov edx, dword [ebp - 0x588]
push edx
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapFree]
xor edx, edx
mov dword [ebp - 0x588], edx
jmp 0xc08c4e
xor edx, edx
cmp dword [ebp - 0x584], 0
je 0xc08c75
push dword [ebp - 0x584]
mov esi, dword [0xc9301c]
mov ecx, esi
call dword [0xc99200]
call esi
xor edx, edx
mov dword [ebp - 0x584], edx
cmp dword [ebp - 0x580], 0
je 0xc08c9c
push dword [ebp - 0x580]
mov esi, dword [0xc9301c]
mov ecx, esi
call dword [0xc99200]
call esi
xor edx, edx
mov dword [ebp - 0x580], edx
cmp dword [ebp - 0x57c], 0
je 0xc08cc3
push dword [ebp - 0x57c]
mov esi, dword [0xc9301c]
mov ecx, esi
call dword [0xc99200]
call esi
xor edx, edx
mov dword [ebp - 0x57c], edx
xor edx, edx
mov edi, 0xc96238
lea ecx, [edx + 1]
xor eax, eax
lock cmpxchg dword [edi], ecx
test eax, eax
jne 0xc08cca
mov eax, dword [0xc95890]
push 0
pop edx
test eax, eax
jle 0xc08d29
sub eax, 1
mov dword [0xc95890], eax
jne 0xc08d29
mov edi, edx
mov eax, dword [edi + 0xc960a0]
test eax, eax
je 0xc08d00
push eax
call dword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_FreeLibrary]
add edi, 0x10
cmp edi, 0x40
jb 0xc08cef
push 0x40
xor eax, eax
push eax
push 0xc960a0
call fcn.00ab4bf6
add esp, 0xc
mov esi, 0x9e6748
mov edi, section..data
push 0x2e
pop ecx
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov eax, 0xc96238
xchg dword [eax], ecx
lea eax, [ebp - 0x460]
push eax
mov eax, dword [ebp - 0x958]
push dword [eax + 0x18]
call dword [sym.imp.ext_ms_win_ntuser_draw_l1_1_0.dll_EndPaint]
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00ab3c50
leave
ret