Function at 0x5c8200
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x6b0
call 0x5c8214
pop eax
mov dword [esp + 0x104], edx
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xa4], eax
mov eax, dword [0x6d6b64]
mov dword [esp + 0x148], eax
mov dword [esp + 0x14c], 0
mov dword [esp + 0x150], 0
mov edi, dword [edx + 0x1c]
mov eax, dword [edx + 0x18]
test edi, edi
mov dword [esp + 0x394], eax
mov dword [esp + 0x398], edi
mov dword [esp + 0x39c], 0
je 0x5c8b06
mov ecx, dword [0x6d6b64]
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x30], ecx
nop word cs:[eax + eax]
nop dword [eax + eax]
lea ecx, [esp + 0x1e0]
lea edx, [esp + 0x394]
push eax
call fcn.005d7700
add esp, 4
cmp dword [esp + 0x1e0], 1
je 0x5c8427
mov esi, dword [esp + 0x398]
sub edi, esi
add dword [esp + 0x39c], edi
cmp byte [esp + 0x1f9], 3
je 0x5c833b
mov edx, ebx
mov edi, dword [esp + 0x1e4]
mov ebx, dword [esp + 0x1ec]
cmp edx, dword [esp + 0x14c]
jne 0x5c8310
lea ecx, [esp + 0x148]
call fcn.005c7320
mov eax, dword [esp + 0x148]
mov edx, dword [esp + 0x150]
jmp 0x5c8314
mov eax, dword [esp + 0x30]
mov dword [eax + edx*8], ebx
mov dword [eax + edx*8 + 4], edi
inc edx
test esi, esi
mov ebx, edx
mov dword [esp + 0x150], edx
je 0x5c833b
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x39c]
mov edi, esi
jmp 0x5c8290
mov eax, dword [esp + 0x148]
cmp ebx, 0x15
mov dword [esp + 0x28], ebx
mov dword [esp + 4], eax
mov eax, ebx
jae 0x5c8461
cmp ebx, 2
jb 0x5c8b06
mov esi, dword [esp + 0x28]
dec esi
je 0x5c8b06
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 4]
mov ebx, 0xffffffff
lea edi, [ecx + eax*8]
jmp 0x5c839f
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x70]
mov dword [esi], eax
mov dword [esi + 4], ecx
add edi, 0xfffffff8
inc ebx
test edx, edx
mov esi, edx
je 0x5c8b06
mov ecx, dword [esp + 4]
lea edx, [esi - 1]
mov eax, dword [ecx + esi*8]
cmp eax, dword [ecx + esi*8 - 8]
jae 0x5c8391
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 4]
sub eax, edx
lea esi, [ecx + esi*8]
mov dword [esp + 0x70], eax
mov eax, dword [ecx + edx*8]
movq xmm0, qword [esi]
cmp dword [esp + 0x70], 3
mov dword [esp + 0x70], edx
mov dword [esp + 0x30], eax
mov eax, dword [ecx + edx*8 + 4]
movq qword [ecx + edx*8], xmm0
mov dword [esp + 0x50], eax
jb 0x5c8380
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x30]
cmp dword [eax + ecx*8 + 0x10], edx
mov ecx, ebx
mov eax, edi
jae 0x5c8380
nop dword [eax]
mov esi, eax
mov eax, dword [eax]
sub ecx, 1
mov edx, dword [esi + 4]
mov dword [esi - 8], eax
mov dword [esi - 4], edx
jb 0x5c8380
mov edx, dword [esp + 0x30]
lea eax, [esi + 8]
cmp dword [esi + 8], edx
jb 0x5c8400
jmp 0x5c8380
mov eax, dword [esp + 0x1e8]
mov edi, dword [esp + 0xf0]
mov ecx, dword [esp + 0x1ec]
mov edx, dword [esp + 0x1f0]
mov esi, dword [esp + 0x1f4]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [edi + 0x14], esi
mov dword [edi + 0x10], edx
mov dword [edi], 1
jmp 0x5cdfc0
mov eax, ebx
mov ecx, 8
xor ebx, ebx
shr eax, 1
mul ecx
mov ecx, eax
setno al
jo 0x5ce024
mov bl, al
shl ebx, 2
test ecx, ecx
js 0x5ce024
mov dword [esp + 0x9c], ecx
je 0x5c84c5
mov eax, dword [0x6f1130]
test eax, eax
jne 0x5c84b1
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x5cdce0
mov dword [0x6f1130], eax
mov ecx, dword [esp + 0x9c]
push ecx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov edx, eax
test edx, edx
jne 0x5c84cf
jmp 0x5cdce0
mov edx, ebx
test edx, edx
je 0x5cdce0
mov ecx, dword [esp + 4]
mov eax, dword [0x6d6b64]
mov dword [esp + 0x30], edx
lea esi, [ecx - 8]
add ecx, 8
mov edi, eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x1e4], 0
mov dword [esp + 0x1e8], 0
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x20], ecx
xor ecx, ecx
mov edx, esi
jmp 0x5c8531
mov ecx, 1
mov eax, dword [esp + 0x30]
test edx, edx
je 0x5c8acf
mov dword [esp + 0x70], ecx
mov ecx, edx
dec ecx
je 0x5c8580
mov esi, dword [esp + 4]
mov ebx, edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], ebx
mov eax, dword [esi + ebx*8 - 0x10]
cmp dword [esi + ebx*8 - 8], eax
jae 0x5c85b0
nop word cs:[eax + eax]
nop dword [eax]
cmp ecx, 1
je 0x5c85de
mov edx, dword [esp + 4]
mov edx, dword [edx + ecx*8 - 0x10]
dec ecx
cmp eax, edx
mov eax, edx
jb 0x5c8560
jmp 0x5c85e0
mov esi, 1
xor edx, edx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x10], edx
cmp ecx, dword [esp + 0x1e4]
je 0x5c8751
jmp 0x5c8771
lea ecx, [ebx - 3]
mov esi, 1
nop dword [eax + eax]
cmp ecx, 0xffffffff
je 0x5c8a54
mov edx, dword [esp + 4]
inc esi
mov edx, dword [edx + ecx*8]
dec ecx
cmp eax, edx
mov eax, edx
jae 0x5c85c0
mov ecx, ebx
sub ecx, esi
jmp 0x5c8643
xor ecx, ecx
mov esi, ebx
sub esi, ecx
jb 0x5ce013
cmp ebx, dword [esp + 0x28]
ja 0x5ce00b
cmp esi, 2
jb 0x5c8643
mov edx, dword [esp + 4]
mov eax, esi
shr eax, 1
lea edi, [edx + ecx*8]
mov edx, dword [esp + 0x2c]
lea ebx, [edx + ebx*8]
nop dword [eax + eax]
mov edx, dword [edi]
movq xmm0, qword [ebx]
mov dword [esp + 0x4c], edx
mov edx, dword [edi + 4]
movq qword [edi], xmm0
add edi, 8
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x4c]
mov dword [ebx], edx
mov edx, dword [esp + 0x50]
mov dword [ebx + 4], edx
add ebx, 0xfffffff8
dec eax
jne 0x5c8610
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
test ecx, ecx
je 0x5c8a8e
cmp esi, 9
ja 0x5c8a72
cmp ebx, dword [esp + 0x28]
ja 0x5ce040
mov eax, dword [esp + 0x20]
lea eax, [eax + ecx*8]
mov dword [esp + 0x4c], eax
mov eax, ebx
sub eax, ecx
add eax, 0xfffffffe
lea edx, [ecx - 1]
mov esi, ebx
sub esi, edx
jb 0x5cdec4
cmp esi, 1
jbe 0x5c8729
mov dword [esp + 0x10], edx
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x10]
mov edi, dword [edx + ecx*8]
cmp edi, dword [edx + ebx*8]
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
jae 0x5c8729
mov edi, edx
mov edx, dword [esp + 4]
cmp esi, 3
mov ebx, dword [edx + edi*8]
lea ecx, [edx + ecx*8]
movq xmm0, qword [ecx]
mov dword [esp + 0x50], ebx
mov ebx, dword [edx + edi*8 + 4]
movq qword [edx + edi*8], xmm0
mov dword [esp + 0x48], ebx
jb 0x5c8710
mov edx, dword [esp + 4]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x50]
cmp dword [edx + edi*8 + 0x10], ebx
mov edi, dword [esp + 0x4c]
mov ebx, eax
jae 0x5c8710
nop dword [eax + eax]
mov ecx, edi
mov edi, dword [edi]
sub ebx, 1
mov edx, dword [ecx + 4]
mov dword [ecx - 8], edi
mov dword [ecx - 4], edx
jb 0x5c8710
mov edx, dword [esp + 0x50]
lea edi, [ecx + 8]
cmp dword [ecx + 8], edx
jb 0x5c86f0
nop
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
mov dword [ecx], edx
mov edx, dword [esp + 0x48]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x10]
test edx, edx
je 0x5c8740
add dword [esp + 0x4c], 0xfffffff8
inc eax
cmp esi, 0xa
mov ecx, edx
jb 0x5c8670
nop
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x10], edx
cmp ecx, dword [esp + 0x1e4]
jne 0x5c8771
mov edx, ecx
lea ecx, [esp + 0x1e0]
call fcn.005c7320
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x1e0]
mov ecx, dword [esp + 0x1e8]
mov dword [edi + ecx*8], edx
mov dword [edi + ecx*8 + 4], esi
inc ecx
mov dword [esp + 0x1c], edi
cmp ecx, 2
mov dword [esp + 0x1e8], ecx
mov dword [esp + 0x24], ecx
jae 0x5c8808
jmp 0x5c8525
mov edx, dword [esp + 0x70]
sub edx, ecx
and edx, 0xfffffff8
push edx
push ecx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
add edx, dword [esp + 0x6c]
mov dword [edi + eax*8], ecx
mov ecx, dword [esp + 0x44]
mov dword [edi + eax*8 + 4], edx
mov edx, dword [esp + 0x14]
lea eax, [edi + ecx*8]
lea ecx, [edi + ecx*8 + 8]
lea edx, [edx*8 - 0x10]
push edx
push ecx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
cmp eax, 1
mov dword [esp + 0x1e8], eax
jbe 0x5c8520
mov ebx, dword [esp + 0x24]
cmp dword [edi + ebx*8 - 8], 0
lea ecx, [ebx - 1]
mov dword [esp + 0x24], ecx
je 0x5c8870
mov esi, dword [edi + ebx*8 - 0xc]
mov eax, dword [edi + ecx*8 + 4]
cmp esi, eax
jbe 0x5c8870
cmp ebx, 3
jb 0x5c8aaa
lea edx, [ebx - 3]
mov dword [esp + 0x70], ebx
mov ebx, dword [edi + ebx*8 - 0x14]
mov dword [esp + 0x48], edx
lea edx, [eax + esi]
cmp ebx, edx
mov dword [esp + 0x50], ebx
jbe 0x5c8a3b
mov ebx, dword [esp + 0x70]
cmp ebx, 4
jb 0x5c8ab4
mov ecx, dword [esp + 0x50]
add esi, ecx
cmp dword [edi + ebx*8 - 0x1c], esi
mov esi, dword [esp + 0x48]
jbe 0x5c8888
jmp 0x5c8ac2
cmp ebx, 3
jb 0x5c8890
mov eax, dword [esp + 0x24]
mov ecx, dword [edi + ebx*8 - 0x14]
lea esi, [ebx - 3]
mov dword [esp + 0x70], ebx
mov eax, dword [edi + eax*8 + 4]
mov ebx, dword [esp + 0x70]
cmp ecx, eax
jb 0x5c8893
lea esi, [ebx - 2]
lea ecx, [esi + 1]
cmp ebx, ecx
jbe 0x5cdd70
mov eax, ebx
sub eax, esi
jbe 0x5cdd81
mov edx, edi
mov edi, dword [edi + esi*8 + 8]
mov ebx, dword [edx + esi*8 + 4]
mov edx, dword [edx + esi*8]
mov dword [esp + 0x4c], edi
add edx, ebx
mov dword [esp + 8], ebx
mov ebx, edx
sub ebx, dword [esp + 0x4c]
jb 0x5cde85
cmp edx, dword [esp + 0x28]
mov dword [esp + 0x14], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x50], edx
ja 0x5cde98
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x48], esi
mov ecx, dword [esp + 0x4c]
mov edx, dword [eax + esi*8 + 0xc]
mov esi, dword [esp + 4]
lea esi, [esi + ecx*8]
mov ecx, ebx
mov dword [esp + 0x6c], edx
sub ecx, edx
lea edi, [esi + edx*8]
cmp ecx, edx
jae 0x5c89a0
lea eax, [ecx*8]
push eax
push edi
push dword [esp + 0x38]
mov ebx, edx
mov dword [esp + 0x7c], ecx
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x7c]
add esp, 0xc
mov eax, dword [esp + 0x30]
test ebx, ebx
lea edx, [eax + ecx*8]
jle 0x5c8a30
test ecx, ecx
jle 0x5c8a30
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x50]
lea ecx, [eax + ecx*8]
jmp 0x5c8972
add edi, 0xfffffff8
mov ebx, edx
mov edx, edi
movq xmm0, qword [edx]
cmp esi, edi
movq qword [ecx], xmm0
jae 0x5c898b
add ecx, 0xfffffff8
cmp ebx, dword [esp + 0x30]
mov edx, ebx
jbe 0x5c8a30
mov eax, dword [edx - 8]
cmp eax, dword [edi - 8]
jb 0x5c8950
add edx, 0xfffffff8
mov ebx, edx
movq xmm0, qword [edx]
cmp esi, edi
movq qword [ecx], xmm0
jb 0x5c8963
mov ecx, dword [esp + 0x30]
mov esi, edi
mov edx, ebx
jmp 0x5c87a4
lea eax, [edx*8]
push eax
push esi
push dword [esp + 0x38]
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x3c]
add esp, 0xc
lea edx, [ecx + eax*8]
test eax, eax
mov dword [esp + 0x70], edx
jle 0x5c87a0
cmp ebx, eax
jle 0x5c87a0
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x50]
lea eax, [eax + edx*8]
mov dword [esp + 0x50], eax
nop word cs:[eax + eax]
nop dword [eax]
mov eax, ecx
mov ecx, dword [edi]
xor ebx, ebx
xor edx, edx
cmp ecx, dword [eax]
setae bl
lea ecx, [eax + ebx*8]
cmovb eax, edi
movq xmm0, qword [eax]
setb al
movq qword [esi], xmm0
add esi, 8
cmp ecx, dword [esp + 0x70]
jae 0x5c87a0
mov dl, al
lea edi, [edi + edx*8]
cmp edi, dword [esp + 0x50]
jb 0x5c89f0
jmp 0x5c87a0
mov ecx, dword [esp + 0x30]
mov esi, edi
jmp 0x5c87a4
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x70]
cmp ecx, eax
jae 0x5c8890
jmp 0x5c8893
xor edx, edx
mov esi, ebx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x10], edx
cmp ecx, dword [esp + 0x1e4]
je 0x5c8751
jmp 0x5c8771
mov edx, ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x10], edx
cmp ecx, dword [esp + 0x1e4]
jne 0x5c8771
jmp 0x5c8751
mov edx, ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x10], edx
cmp ecx, dword [esp + 0x1e4]
je 0x5c8751
jmp 0x5c8771
mov ecx, 2
jmp 0x5c8525
mov edx, dword [esp + 0x10]
mov ecx, 3
jmp 0x5c8525
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x70]
jmp 0x5c8525
test dword [esp + 0x1e4], 0x1fffffff
je 0x5c8aee
push edi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x9c], 0
je 0x5c8b06
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [0x6d3de0]
mov dword [esp + 0xb8], eax
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0xbc], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0x15c], 0
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x5cd272
mov edi, dword [eax + 0x20]
xor edx, edx
mov esi, ecx
mov dword [esp + 0x48], edx
jmp 0x5c8b82
mov edi, dword [esp + 0x6c]
test ebx, ebx
mov esi, ebx
mov dword [esp + 0x48], ecx
je 0x5cd272
cmp esi, 4
jb 0x5cdcf0
mov eax, dword [edi]
lea ecx, [edi + 4]
lea ebx, [esi - 4]
cmp eax, 0xfffffff0
jae 0x5c8bb0
mov dword [esp + 0x30], 0x400
mov edx, eax
sub ebx, edx
jae 0x5c8be7
jmp 0x5cdd5a
cmp eax, 0xffffffff
jne 0x5cdd0c
cmp ebx, 8
jb 0x5cdd5a
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x5cdd13
add edi, 0xc
lea ebx, [esi - 0xc]
mov dword [esp + 0x30], 0x800
mov ecx, edi
sub ebx, edx
jb 0x5cdd5a
cmp edx, 2
jb 0x5cdd5a
mov dword [esp + 0x1c], eax
lea eax, [ecx + edx]
mov edi, ecx
mov edi, edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x6c], eax
lea eax, [ecx + 2]
mov dword [esp + 4], edi
mov dword [esp + 0x70], eax
mov eax, ecx
movzx ecx, word [ecx]
lea edx, [ecx - 2]
cmp dx, 3
lea edx, [edi - 2]
jae 0x5c8c60
cmp dword [esp + 0x1c], 0xfffffff0
mov edi, ecx
jae 0x5c8cb0
cmp edx, 4
jb 0x5cdd25
mov ecx, dword [esp + 4]
lea edx, [ecx - 6]
mov ecx, eax
mov eax, dword [eax + 2]
add ecx, 6
mov dword [esp + 0x10], eax
test edx, edx
jne 0x5c8ce1
jmp 0x5cdd5a
cmp cx, 5
jne 0x5cdd37
test edx, edx
je 0x5cdd45
mov ecx, dword [esp + 4]
cmp ecx, 3
je 0x5cdd55
mov dh, byte [eax + 2]
cmp dword [esp + 0x1c], 0xfffffff0
mov dl, byte [eax + 3]
mov esi, ecx
lea ecx, [eax + 4]
mov edi, eax
lea esi, [esi - 4]
jae 0x5c8cff
cmp esi, 4
jb 0x5cdcfc
mov ecx, dword [ecx]
mov esi, dword [esp + 4]
mov dword [esp + 0x10], ecx
mov ecx, eax
jmp 0x5c8d18
cmp edx, 8
jb 0x5cdd25
mov ecx, dword [esp + 0x70]
cmp dword [ecx + 4], 0
jne 0x5cdd65
mov ecx, dword [ecx]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 4]
lea edx, [ecx - 0xa]
mov ecx, eax
add ecx, 0xa
test edx, edx
je 0x5cdd5a
dec edx
mov eax, edi
mov dword [esp + 0x28], 0
mov dword [esp + 0x44], edx
mov dl, byte [ecx]
inc ecx
shl eax, 0x10
mov dword [esp + 0x2c], ecx
jmp 0x5c8df0
cmp esi, 8
jb 0x5cdcfc
cmp dword [ecx + 4], 0
jne 0x5cdd65
mov eax, dword [ecx]
mov dword [esp + 0x10], eax
dec dh
mov dword [esp + 0x28], 0
cmp dh, 5
ja 0x5cddc9
movzx edi, dh
lea eax, [ecx + 8]
mov ebx, ecx
mov ecx, edx
mov edi, dword [edi*4 + 0x5ce2fc]
mov dword [esp + 0x2c], eax
lea eax, [esi - 8]
mov edx, ecx
mov dword [esp + 0x44], eax
mov eax, 0x50000
add edi, dword [esp + 0xa4]
jmp edi
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x9c], eax
mov ebx, dword [esp + 0x24]
or ecx, eax
movzx eax, dl
or eax, ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x104]
add ecx, dword [esp + 0x48]
mov edi, dword [eax + 0xc]
lea edx, [eax + 8]
sub ecx, ebx
sub edi, dword [esp + 0x10]
jb 0x5c8b70
mov ebx, dword [esp + 0x15c]
mov esi, dword [0x6d3de0]
mov dword [esp + 0x134], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x144], ebx
mov ebx, dword [edx]
mov dword [esp + 0x108], esi
mov dword [esp + 0x10c], 0
mov dword [esp + 0x110], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
je 0x5ca320
add ebx, dword [esp + 0x10]
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
xor ecx, ecx
mov dword [esp + 0xd8], edx
mov al, byte [ebx]
cmp ecx, 0x3f
jne 0x5c8eb4
cmp al, 1
ja 0x5ca320
mov edx, eax
xor esi, esi
mov dword [esp + 0x30], ebx
mov ebx, 0
and dl, 0x7f
movzx edx, dl
shld esi, edx, cl
shl edx, cl
test cl, 0x20
cmovne esi, edx
cmovne edx, ebx
mov ebx, dword [esp + 8]
or ebx, esi
mov esi, dword [esp + 0x14]
mov dword [esp + 8], ebx
or esi, edx
test al, al
lea eax, [edi - 1]
mov dword [esp + 0x14], esi
js 0x5c8f30
mov edx, dword [esp + 0x30]
mov ecx, esi
or ecx, ebx
je 0x5ca444
test eax, eax
je 0x5ca320
movzx eax, byte [edx + 1]
lea ecx, [edi - 2]
mov esi, eax
and esi, 0x7f
test al, al
js 0x5c8f47
add edx, 2
mov edi, ecx
mov ebx, edx
test si, si
jne 0x5c8fb0
jmp 0x5ca320
mov ebx, dword [esp + 0x30]
add ecx, 7
mov edi, eax
inc ebx
test eax, eax
jne 0x5c8ea5
jmp 0x5ca320
test ecx, ecx
je 0x5ca320
movzx eax, byte [edx + 2]
movzx esi, si
lea ebx, [edx + 3]
mov ecx, eax
and ecx, 0x7f
shl ecx, 7
or esi, ecx
test al, al
lea eax, [edi - 3]
js 0x5c8f76
mov edi, eax
test si, si
jne 0x5c8fb0
jmp 0x5ca320
test eax, eax
je 0x5ca320
movzx eax, byte [ebx]
cmp ax, 3
ja 0x5ca320
movzx eax, ax
add edx, 4
movzx esi, si
add edi, 0xfffffffc
shl eax, 0xe
mov ebx, edx
or esi, eax
test si, si
je 0x5ca320
nop word [eax + eax]
test edi, edi
je 0x5ca320
mov al, byte [ebx]
mov dword [esp + 0x8c], esi
test al, al
je 0x5c8fd7
cmp al, 1
jne 0x5ca320
mov byte [esp + 0xb4], 1
jmp 0x5c8fde
mov byte [esp + 0xb4], al
dec edi
pxor xmm0, xmm0
mov dword [esp + 0x1fc], 0
mov dword [esp + 0x1f8], 0
mov dword [esp + 0x200], 0
mov dword [esp + 0x20c], 0
mov dword [esp + 0x208], 0
mov dword [esp + 0x210], 0
mov dword [esp + 0x21c], 0
mov dword [esp + 0x218], 0
mov dword [esp + 0x220], 0
mov dword [esp + 0x22c], 0
mov dword [esp + 0x228], 0
mov dword [esp + 0x230], 0
mov dword [esp + 0x1f0], 0
movdqa xmmword [esp + 0x1e0], xmm0
je 0x5ca2e4
inc ebx
movzx ecx, byte [ebx]
lea eax, [edi - 1]
mov edx, ecx
and edx, 0x7f
test cl, cl
js 0x5c90a0
inc ebx
mov ecx, ebx
jmp 0x5c90f0
test eax, eax
je 0x5ca2e4
movzx eax, byte [ebx + 1]
movzx edx, dx
mov ecx, eax
and ecx, 0x7f
shl ecx, 7
or edx, ecx
test al, al
lea ecx, [ebx + 2]
lea eax, [edi - 2]
jns 0x5c90f0
test eax, eax
je 0x5ca2e4
movzx eax, byte [ecx]
cmp ax, 3
ja 0x5ca2e4
movzx eax, ax
add ebx, 3
add edi, 0xfffffffd
movzx edx, dx
shl eax, 0xe
mov ecx, ebx
or edx, eax
mov eax, edi
nop dword [eax]
test dx, dx
je 0x5c942b
test eax, eax
mov dword [esp + 0x20], edx
je 0x5ca2e4
movzx edx, byte [ecx]
lea edi, [eax - 1]
mov esi, edx
and esi, 0x7f
test dl, dl
js 0x5c91a0
inc ecx
mov ebx, ecx
cmp si, 0x21
jne 0x5c91d5
xor ecx, ecx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x70], 0
mov dword [esp + 0x50], 0
jmp 0x5c9179
inc edx
xor esi, esi
mov ebx, edi
mov edi, 0
mov dword [esp + 0x30], edx
mov edx, eax
and dl, 0x7f
movzx edx, dl
shld esi, edx, cl
shl edx, cl
test cl, 0x20
cmovne esi, edx
cmovne edx, edi
mov edi, ebx
add ecx, 7
or dword [esp + 0x50], esi
or dword [esp + 0x70], edx
test al, al
jns 0x5c9265
mov edx, dword [esp + 0x30]
sub edi, 1
jb 0x5ca2e4
movzx eax, byte [edx]
cmp ecx, 0x3f
jne 0x5c9140
cmp al, 0x7f
je 0x5c9140
test al, al
je 0x5c9140
jmp 0x5ca2e4
test edi, edi
je 0x5ca2e4
movzx edx, byte [ecx + 1]
mov edi, esi
lea ebx, [ecx + 2]
movzx edi, di
mov esi, edx
and esi, 0x7f
shl esi, 7
or edi, esi
test dl, dl
mov esi, edi
lea edi, [eax - 2]
js 0x5c93f2
cmp si, 0x21
je 0x5c9125
test si, si
mov dword [esp + 0x70], 0
mov dword [esp + 0x50], 0
je 0x5ca2e4
cmp dword [esp + 0x1e0], 1
mov dword [esp + 0x30], esi
jne 0x5c92b6
mov edx, dword [esp + 0x1ec]
cmp edx, dword [esp + 0x1e8]
jne 0x5c9223
lea ecx, [esp + 0x1e4]
call fcn.005d7d00
mov edx, dword [esp + 0x1ec]
mov ecx, dword [esp + 0x1e4]
mov esi, dword [esp + 0x50]
mov eax, edx
inc edx
shl eax, 4
mov dword [ecx + eax + 4], esi
mov esi, dword [esp + 0x70]
mov dword [ecx + eax], esi
mov esi, dword [esp + 0x20]
mov word [ecx + eax + 8], si
mov esi, dword [esp + 0x30]
mov word [ecx + eax + 0xa], si
mov dword [esp + 0x1ec], edx
test edi, edi
jne 0x5c9082
jmp 0x5ca2e4
cmp ecx, 0x40
mov esi, 0xffffffff
mov edi, 0
setl dl
and al, 0x40
shl esi, cl
shr al, 6
test cl, 0x20
mov ecx, 0xffffffff
cmovne ecx, esi
cmovne esi, edi
test dl, al
cmove esi, edi
cmove ecx, edi
mov edi, ebx
mov ebx, dword [esp + 0x30]
or dword [esp + 0x70], esi
or dword [esp + 0x50], ecx
mov si, 0x21
cmp dword [esp + 0x1e0], 1
mov dword [esp + 0x30], esi
je 0x5c9200
mov ecx, dword [esp + 0x1e4]
cmp ecx, 5
jne 0x5c93aa
mov dword [esp + 0x90], edi
mov eax, dword [0x6f1130]
test eax, eax
jne 0x5c92e8
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x5ce091
mov dword [0x6f1130], eax
push 0x50
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x5ce091
mov dword [esp + 0x320], eax
mov dword [esp + 0x324], 5
mov ecx, 0x14
mov edi, eax
lea esi, [esp + 0x1e8]
mov edx, 5
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x320]
mov dword [esp + 0x328], 5
call fcn.005d7d00
mov eax, dword [esp + 0x328]
mov edx, dword [esp + 0x320]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x90]
mov ecx, eax
inc eax
shl ecx, 4
mov dword [edx + ecx + 4], esi
mov esi, dword [esp + 0x70]
mov dword [edx + ecx], esi
mov esi, dword [esp + 0x20]
mov word [edx + ecx + 8], si
mov esi, dword [esp + 0x30]
mov word [edx + ecx + 0xa], si
mov dword [esp + 0x328], eax
lea ecx, [esp + 0x1e4]
movq xmm0, qword [esp + 0x320]
mov dword [ecx + 8], eax
movq qword [ecx], xmm0
mov dword [esp + 0x1e0], 1
test edi, edi
jne 0x5c9082
jmp 0x5ca2e4
mov edx, dword [esp + 0x20]
cmp ecx, 4
ja 0x5cde71
mov esi, dword [esp + 0x50]
shl ecx, 4
lea eax, [esp + 0x1e8]
mov dword [eax + ecx + 4], esi
mov esi, dword [esp + 0x70]
mov dword [eax + ecx], esi
mov word [eax + ecx + 8], dx
mov edx, dword [esp + 0x30]
mov word [eax + ecx + 0xa], dx
inc dword [esp + 0x1e4]
test edi, edi
jne 0x5c9082
jmp 0x5ca2e4
test edi, edi
je 0x5ca2e4
movzx edx, byte [ebx]
cmp dx, 3
ja 0x5ca2e4
movzx edx, dx
add eax, 0xfffffffd
add ecx, 3
movzx esi, si
shl edx, 0xe
mov ebx, ecx
mov edi, eax
or esi, edx
cmp si, 0x21
jne 0x5c91d5
jmp 0x5c9125
test eax, eax
je 0x5ca2e4
movzx ebx, byte [ecx]
lea esi, [eax - 1]
mov edx, ebx
and edx, 0x7f
test bl, bl
js 0x5c9447
inc ecx
mov ebx, ecx
jmp 0x5c9498
test esi, esi
je 0x5ca2e4
movzx ebx, byte [ecx + 1]
movzx edx, dx
lea edi, [ecx + 2]
mov esi, ebx
and esi, 0x7f
shl esi, 7
or edx, esi
test bl, bl
lea esi, [eax - 2]
js 0x5c946e
mov ebx, edi
jmp 0x5c9498
test esi, esi
je 0x5ca2e4
movzx esi, byte [edi]
cmp si, 3
ja 0x5ca2e4
movzx esi, si
add ecx, 3
add eax, 0xfffffffd
movzx edx, dx
shl esi, 0xe
mov ebx, ecx
or edx, esi
mov esi, eax
test dx, dx
jne 0x5ca2e4
movdqa xmm0, xmmword [esp + 0x1e0]
lea edx, [esp + 0x170]
mov dword [esp + 0xc], esi
mov ecx, 0x12
lea esi, [esp + 0x1f0]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x12
lea edi, [esp + 0x1e4]
mov esi, edx
movdqa xmmword [esp + 0x320], xmm0
mov eax, dword [esp + 0x32c]
mov dword [esp + 0x1e0], eax
movd eax, xmm0
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x13
lea edi, [esp + 0x660]
lea esi, [esp + 0x1e0]
cmp eax, 2
rep movsd dword es:[edi], dword [esi]
je 0x5ca444
pshufd xmm1, xmm0, 0xee
mov dword [esp + 0xd4], eax
mov ecx, 0x13
lea edi, [esp + 0x4b0]
lea esi, [esp + 0x660]
pshufd xmm0, xmm0, 0x55
movd dword [esp + 0xb0], xmm1
rep movsd dword es:[edi], dword [esi]
movd dword [esp + 0xd0], xmm0
mov dword [esp + 0x30], ebx
mov al, byte [esp + 0x1df]
mov ecx, dword [esp + 0x1db]
cmp dword [esp + 8], 0
mov byte [esp + 0x164], al
mov dword [esp + 0x160], ecx
jne 0x5c965e
mov eax, dword [esp + 0x14]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x110]
jb 0x5ca402
jne 0x5c965e
cmp dword [esp + 0x11c], 0
je 0x5c9781
mov eax, dword [esp + 0x118]
test eax, eax
je 0x5c9781
mov ecx, dword [esp + 0x114]
mov dword [esp + 0x18], edx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x20], eax
movzx eax, word [eax + 0x4d6]
mov esi, 0xffffffff
lea ebx, [eax*8]
mov dword [esp + 0x98], eax
test ebx, ebx
je 0x5c962c
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
xor ecx, ecx
mov edi, dword [eax + esi*8 + 8]
mov eax, dword [eax + esi*8 + 0xc]
mov dword [esp + 0x70], eax
xor eax, dword [esp + 8]
mov dword [esp + 0x50], edi
xor edi, edx
or edi, eax
mov eax, dword [esp + 8]
setne cl
cmp edx, dword [esp + 0x50]
sbb eax, dword [esp + 0x70]
mov eax, 0xff
cmovb ecx, eax
inc esi
add ebx, 0xfffffff8
cmp cl, 1
je 0x5c95d8
mov edx, dword [esp + 0x18]
cmp cl, 0xff
je 0x5c9637
jmp 0x5ca402
mov esi, dword [esp + 0x98]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x90]
mov eax, dword [esp + 0x20]
sub edi, 1
jb 0x5c9781
mov eax, dword [eax + esi*4 + 0x4d8]
mov dword [esp + 0x90], edi
jmp 0x5c95ba
mov eax, dword [esp + 0x118]
test eax, eax
je 0x5c9679
mov ecx, dword [esp + 0x114]
mov dword [esp + 0x98], ecx
jmp 0x5c96d9
mov eax, dword [0x6f1130]
test eax, eax
jne 0x5c9694
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x5ce122
mov dword [0x6f1130], eax
push 0x4d8
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x5ce122
mov dword [eax + 0x4d0], 0
mov word [eax + 0x4d6], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x118], eax
mov dword [esp + 0x98], 0
mov ecx, eax
mov dword [esp + 0x18], eax
movzx eax, word [ecx + 0x4d6]
mov edi, 0xffffffff
mov dword [esp + 0x20], ecx
lea ebx, [eax*8]
mov dword [esp + 0x90], eax
nop dword [eax]
test ebx, ebx
je 0x5c9755
mov eax, dword [esp + 0x20]
mov ecx, edi
xor edx, edx
mov esi, dword [eax + edi*8 + 8]
mov edi, dword [eax + edi*8 + 0xc]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x70], edi
xor edi, dword [esp + 8]
mov dword [esp + 0x50], esi
xor esi, eax
or esi, edi
mov esi, dword [esp + 8]
mov edi, ecx
setne dl
cmp eax, dword [esp + 0x50]
mov eax, 0xff
sbb esi, dword [esp + 0x70]
cmovb edx, eax
inc edi
add ebx, 0xfffffff8
cmp dl, 1
je 0x5c9700
cmp dl, 0xff
jne 0x5ca402
jmp 0x5c975c
mov edi, dword [esp + 0x90]
mov ecx, dword [esp + 0x20]
sub dword [esp + 0x98], 1
lea edx, [esp + 0x440]
jb 0x5c9848
mov ecx, dword [ecx + edi*4 + 0x4d8]
jmp 0x5c96df
cmp edx, dword [esp + 0x10c]
mov esi, dword [esp + 0x14]
jne 0x5c97a1
lea ecx, [esp + 0x108]
call fcn.0049f9e0
mov edx, dword [esp + 0x110]
mov eax, dword [esp + 0x108]
mov ecx, dword [esp + 8]
imul ebx, edx, 0x68
mov edi, dword [esp + 0xb0]
inc edx
mov dword [eax + ebx + 4], ecx
mov ecx, dword [esp + 0xd4]
mov dword [eax + ebx], esi
lea esi, [esp + 0x660]
mov dword [eax + ebx + 8], ecx
mov ecx, dword [esp + 0xd0]
mov dword [eax + ebx + 0xc], ecx
mov dword [eax + ebx + 0x10], edi
lea edi, [eax + ebx + 0x14]
mov ecx, 0x13
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x8c]
mov edi, dword [esp + 0xc]
mov word [eax + ebx + 0x60], cx
mov cl, byte [esp + 0xb4]
mov byte [eax + ebx + 0x62], cl
mov ecx, dword [esp + 0x1db]
mov dword [eax + ebx + 0x63], ecx
mov cl, byte [esp + 0x1df]
mov byte [eax + ebx + 0x67], cl
mov dword [esp + 0x110], edx
mov ebx, dword [esp + 0x30]
test edi, edi
mov ecx, 0
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
jne 0x5c8ea5
jmp 0x5ca320
lea ebx, [esp + 0x4b0]
mov dword [esp + 0x70], edi
mov ecx, 0x13
lea edi, [esp + 0x4fc]
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x13
mov edi, edx
mov esi, ebx
mov al, byte [esp + 0x164]
mov byte [esp + 0x16c], al
mov eax, dword [esp + 0x160]
mov dword [esp + 0x168], eax
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x160]
mov cl, byte [esp + 0x164]
cmp dx, 0xb
mov dword [esp + 0x64], eax
mov byte [esp + 0x68], cl
jae 0x5c9935
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x30]
cmp esi, edx
lea eax, [edi + esi*8]
jae 0x5c995b
lea ecx, [esi + 1]
mov dword [esp + 0x98], ecx
lea ecx, [edi + ecx*8]
mov dword [esp + 0x50], ecx
mov ecx, edx
sub ecx, esi
lea edx, [ecx*8]
mov dword [esp + 0x18], ecx
push edx
push eax
push dword [esp + 0x58]
call sub.msvcrt.dll_memmove
add esp, 0xc
mov eax, dword [esp + 8]
imul ecx, dword [esp + 0x98], 0x68
imul edx, dword [esp + 0x18], 0x68
mov dword [edi + esi*8 + 4], eax
mov eax, dword [esp + 0x14]
lea ecx, [edi + ecx + 0x58]
mov dword [edi + esi*8], eax
lea eax, [edi + 0x58]
mov dword [esp + 0x50], eax
imul eax, esi, 0x68
lea eax, [edi + eax + 0x58]
push edx
push eax
push ecx
call sub.msvcrt.dll_memmove
mov ecx, dword [esp + 0x14]
add esp, 0xc
jmp 0x5c996f
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x20]
cmp edi, 5
jae 0x5c9a0c
mov edi, 4
mov dword [esp + 0x88], 0
jmp 0x5c9a50
mov ecx, dword [esp + 0x14]
lea edx, [edi + 0x58]
mov dword [esp + 0x50], edx
mov dword [eax], ecx
mov ecx, dword [esp + 8]
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x50]
imul esi, esi, 0x68
mov dword [esp + 0x70], esi
mov dword [eax + esi + 4], ecx
mov ecx, dword [esp + 0x14]
lea edi, [eax + esi + 0x14]
mov dword [eax + esi], ecx
mov ecx, dword [esp + 0xd4]
mov dword [eax + esi + 8], ecx
mov ecx, dword [esp + 0xd0]
mov dword [eax + esi + 0xc], ecx
mov ecx, dword [esp + 0xb0]
mov dword [eax + esi + 0x10], ecx
mov ecx, 0x13
lea esi, [esp + 0x4fc]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0xc]
mov word [eax + esi + 0x60], cx
mov cl, byte [esp + 0xb4]
mov byte [eax + esi + 0x62], cl
mov ecx, dword [esp + 0x168]
mov dword [eax + esi + 0x63], ecx
mov cl, byte [esp + 0x16c]
mov byte [eax + esi + 0x67], cl
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x20]
inc ecx
mov word [eax + 0x4d6], cx
inc dword [esp + 0x11c]
jmp 0x5c9826
cmp edi, 5
je 0x5c9a2e
cmp edi, 6
jne 0x5c9a3b
mov cl, 1
mov edi, 5
mov dword [esp + 0x70], 0
mov dword [esp + 0x88], ecx
jmp 0x5c9a50
mov dword [esp + 0x88], 0
jmp 0x5c9a50
add edi, 0xfffffff9
mov cl, 1
mov dword [esp + 0x70], edi
mov dword [esp + 0x88], ecx
mov edi, 6
mov ecx, 0x4d8
mov edx, 8
call fcn.00404a50
test eax, eax
je 0x5ce122
mov dword [eax + 0x4d0], 0
mov word [eax + 0x4d6], 0
mov ebx, edi
mov dword [esp + 0x50], edi
movzx edx, word [esi + 0x4d6]
not ebx
add ebx, edx
mov word [eax + 0x4d6], bx
mov ecx, dword [esi + edi*8]
mov dword [esp + 0x60], ecx
mov ecx, dword [esi + edi*8 + 4]
mov dword [esp + 0x98], ecx
imul ecx, edi, 0x68
lea edi, [esp + 0x1e0]
cmp ebx, 0xc
lea esi, [esi + ecx + 0x58]
mov ecx, 0x1a
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
jae 0x5ce144
mov esi, dword [esp + 0x50]
inc esi
sub edx, esi
cmp edx, ecx
jne 0x5ce100
mov ebx, dword [esp + 0x20]
mov dword [esp + 0xa8], ecx
lea ecx, [ecx*8]
lea edx, [ebx + 0x58]
mov dword [esp + 0xa0], edx
lea edx, [ebx + esi*8]
push ecx
push edx
push eax
mov edi, eax
mov dword [esp + 0x9c], eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
imul ecx, esi, 0x68
imul edx, dword [esp + 0xa8], 0x68
lea eax, [edi + 0x58]
add ecx, dword [esp + 0xa0]
push edx
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x50]
mov ecx, 0x1a
lea edi, [esp + 0x170]
lea esi, [esp + 0x1e0]
mov word [ebx + 0x4d6], ax
rep movsd dword es:[edi], dword [esi]
cmp byte [esp + 0x88], 0
mov ecx, dword [esp + 0x90]
cmove ecx, ebx
mov ebx, dword [esp + 0x70]
movzx edi, word [ecx + 0x4d6]
mov dword [esp + 0x50], ecx
lea edx, [ebx + 1]
lea eax, [ecx + ebx*8]
cmp edx, edi
mov dword [esp + 0x88], edi
jbe 0x5c9b91
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x14]
add ecx, 0x58
mov dword [esp + 0xa0], ecx
mov dword [eax], edx
mov dword [eax + 4], esi
jmp 0x5c9bfb
mov esi, ecx
lea ecx, [ecx + edx*8]
mov dword [esp + 0xa8], edx
mov edx, edi
sub edx, ebx
lea edi, [edx*8]
mov dword [esp + 0x94], edx
push edi
push eax
push ecx
call sub.msvcrt.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x14]
imul ecx, dword [esp + 0xa8], 0x68
mov edi, dword [esp + 8]
imul edx, dword [esp + 0x94], 0x68
mov dword [esi + ebx*8], eax
lea eax, [esi + 0x58]
mov dword [esi + ebx*8 + 4], edi
lea ecx, [esi + ecx + 0x58]
mov dword [esp + 0xa0], eax
imul eax, ebx, 0x68
lea eax, [esi + eax + 0x58]
mov esi, edi
push edx
push eax
push ecx
call sub.msvcrt.dll_memmove
add esp, 0xc
imul eax, ebx, 0x68
mov ebx, dword [esp + 0xa0]
mov ecx, dword [esp + 0xb0]
lea edx, [esp + 0x440]
mov dword [ebx + eax + 4], esi
mov esi, dword [esp + 0x14]
lea edi, [ebx + eax + 0x14]
mov dword [ebx + eax], esi
mov esi, dword [esp + 0xd4]
mov dword [ebx + eax + 8], esi
mov esi, dword [esp + 0xd0]
mov dword [ebx + eax + 0xc], esi
mov dword [ebx + eax + 0x10], ecx
mov ecx, 0x13
mov esi, edx
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x170]
mov ecx, dword [esp + 0x8c]
mov word [ebx + eax + 0x60], cx
mov cl, byte [esp + 0xb4]
mov byte [ebx + eax + 0x62], cl
mov ecx, dword [esp + 0x64]
mov dword [ebx + eax + 0x63], ecx
mov cl, byte [esp + 0x68]
mov byte [ebx + eax + 0x67], cl
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x50]
inc ecx
mov word [eax + 0x4d6], cx
lea eax, [esp + 0x320]
mov ecx, 0x1a
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x1a
mov edi, edx
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x4d0]
test eax, eax
je 0x5ca08e
mov dword [esp + 0x88], 0
jmp 0x5c9d0d
lea edx, [esp + 0x440]
mov ecx, 0x1a
lea esi, [esp + 0x1e0]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0xd4]
mov edi, dword [esp + 0xb0]
mov esi, dword [esp + 0x50]
mov eax, dword [ecx + 0x4d0]
mov dword [esp + 0x98], ebx
mov dword [esp + 0x60], edi
mov dword [esp + 0x90], esi
test eax, eax
je 0x5ca155
movzx ebx, word [ecx + 0x4d4]
mov ecx, 0x1a
lea edi, [esp + 0x320]
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
movzx eax, word [eax + 0x4d6]
mov edi, ecx
mov dword [esp + 0x20], ecx
cmp eax, 0xb
mov dword [esp + 0x8c], eax
jb 0x5ca095
cmp bx, 5
jae 0x5c9d5b
mov esi, 4
mov dword [esp + 0xb4], 0
jmp 0x5c9d92
cmp bx, 5
je 0x5c9d72
cmp bx, 6
jne 0x5c9d81
mov al, 1
xor ebx, ebx
mov esi, 5
jmp 0x5c9d8b
mov dword [esp + 0xb4], 0
mov esi, ebx
jmp 0x5c9d92
mov al, 1
add ebx, 0xfffffff9
mov esi, 6
mov dword [esp + 0xb4], eax
mov eax, dword [0x6f1130]
test eax, eax
jne 0x5c9dad
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x5ce133
mov dword [0x6f1130], eax
push 0x508
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x5ce133
mov dword [eax + 0x4d0], 0
mov word [eax + 0x4d6], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x50], eax
movzx edx, word [edi + 0x4d6]
mov dword [esp + 8], edx
mov edx, esi
not edx
add edx, dword [esp + 8]
mov word [eax + 0x4d6], dx
mov ecx, dword [edi + esi*8]
mov dword [esp + 0xb0], ecx
imul ecx, esi, 0x68
cmp edx, 0xc
lea ecx, [edi + ecx + 0x58]
mov dword [esp + 0x70], ecx
mov ecx, dword [edi + esi*8 + 4]
lea edi, [esp + 0x1e0]
mov esi, dword [esp + 0x70]
mov dword [esp + 0xd4], ecx
mov ecx, 0x1a
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
jae 0x5ce144
mov edx, dword [esp + 0x14]
mov dword [esp + 0x70], eax
lea esi, [edx + 1]
mov edx, dword [esp + 8]
sub edx, esi
cmp edx, ecx
jne 0x5ce100
mov edi, dword [esp + 0x20]
mov dword [esp + 0xd0], ecx
lea ecx, [ecx*8]
lea edx, [edi + 0x58]
lea eax, [edi + esi*8]
mov dword [esp + 8], edx
push ecx
push eax
push dword [esp + 0x58]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x70]
imul ecx, esi, 0x68
imul edx, dword [esp + 0xd0], 0x68
mov dword [esp + 0x18], esi
add ecx, dword [esp + 8]
add eax, 0x58
push edx
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x14]
mov ecx, 0x1a
lea esi, [esp + 0x1e0]
mov word [edi + 0x4d6], ax
lea edi, [esp + 0x170]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x50]
movzx esi, word [edi + 0x4d6]
lea ecx, [esi + 1]
cmp esi, 0xc
jae 0x5ce158
mov edx, dword [esp + 0x8c]
sub edx, eax
cmp edx, ecx
jne 0x5ce100
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
inc dword [esp + 0x88]
shl edx, 2
lea eax, [eax + ecx*4 + 0x4d8]
mov ecx, dword [esp + 0x70]
add ecx, 0x4d8
push edx
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
xor eax, eax
mov ecx, eax
cmp eax, esi
mov edx, dword [edi + ecx*4 + 0x4d8]
adc eax, 0
cmp ecx, esi
mov dword [edx + 0x4d0], edi
mov word [edx + 0x4d4], cx
jae 0x5c9f39
cmp eax, esi
jbe 0x5c9f16
mov ecx, 0x1a
lea edi, [esp + 0x1e0]
lea esi, [esp + 0x170]
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebx + 1]
cmp byte [esp + 0xb4], 0
mov edx, dword [esp + 0x70]
mov dword [esp + 8], ecx
cmove edx, dword [esp + 0x20]
movzx edi, word [edx + 0x4d6]
lea eax, [edx + ebx*8]
mov dword [esp + 0x70], edx
cmp ecx, edi
jbe 0x5c9f8d
mov ecx, dword [esp + 0x60]
mov dword [eax], ecx
mov ecx, dword [esp + 0x98]
mov dword [eax + 4], ecx
lea ecx, [edx + 0x58]
jmp 0x5c9ffc
lea ecx, [edx + ecx*8]
mov esi, edx
mov dword [esp + 0x8c], ecx
mov ecx, edi
sub ecx, ebx
lea edx, [ecx*8]
mov dword [esp + 0x14], ecx
push edx
push eax
push dword [esp + 0x94]
call sub.msvcrt.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x98]
imul ecx, dword [esp + 8], 0x68
imul edx, dword [esp + 0x14], 0x68
mov dword [esi + ebx*8 + 4], eax
mov eax, dword [esp + 0x60]
lea ecx, [esi + ecx + 0x58]
mov dword [esi + ebx*8], eax
lea eax, [esi + 0x58]
mov dword [esp + 0x8c], eax
imul eax, ebx, 0x68
lea eax, [esi + eax + 0x58]
push edx
push eax
push ecx
call sub.msvcrt.dll_memmove
mov ecx, dword [esp + 0x98]
add esp, 0xc
imul eax, ebx, 0x68
lea esi, [edi + 1]
add eax, ecx
push 0x68
lea ecx, [esp + 0x324]
push ecx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
lea edx, [edi + 2]
lea eax, [ebx + 2]
cmp eax, edx
jae 0x5ca04d
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 8]
sub edi, ebx
shl edi, 2
add ecx, 0x4d8
lea eax, [ecx + eax*4]
lea ecx, [ecx + edx*4]
push edi
push ecx
push eax
call sub.msvcrt.dll_memmove
mov edx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x70]
cmp dword [esp + 8], edx
mov dword [ecx + ebx*4 + 0x4dc], eax
mov word [ecx + 0x4d6], si
jae 0x5c9cc0
mov eax, dword [ecx + ebx*4 + 0x4dc]
inc ebx
cmp esi, ebx
mov dword [eax + 0x4d0], ecx
mov word [eax + 0x4d4], bx
jne 0x5ca070
jmp 0x5c9cc0
xor ebx, ebx
jmp 0x5ca179
mov eax, dword [esp + 0x8c]
lea esi, [ebx + 1]
mov dword [esp + 0x70], esi
lea ecx, [eax + 1]
cmp ax, bx
mov dword [esp + 0x50], ecx
jbe 0x5ca260
mov esi, dword [esp + 0x8c]
mov ecx, dword [esp + 0x70]
lea eax, [edi + ebx*8]
sub esi, ebx
lea ecx, [edi + ecx*8]
lea edx, [esi*8]
mov dword [esp + 8], esi
push edx
push eax
push ecx
call sub.msvcrt.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x20]
mov dword [edi + ebx*8 + 4], eax
mov eax, dword [esp + 0x60]
mov dword [edi + ebx*8], eax
imul eax, ebx, 0x68
lea edi, [ecx + eax + 0x58]
imul eax, dword [esp + 0x70], 0x68
mov ecx, dword [esp + 0x20]
lea eax, [ecx + eax + 0x58]
imul ecx, esi, 0x68
push ecx
push edi
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov ecx, 0x1a
lea esi, [esp + 0x440]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x70]
lea esi, [edi + 0x4d8]
shl edx, 2
lea eax, [edi + eax*4 + 0x4d8]
lea ecx, [edi + ebx*4 + 0x4e0]
push edx
push eax
push ecx
call sub.msvcrt.dll_memmove
add esp, 0xc
jmp 0x5ca290
mov eax, dword [esp + 0x118]
mov dword [esp + 0x98], ebx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x60], edi
mov dword [esp + 0x90], esi
mov dword [esp + 0x18], eax
mov ecx, 0x1a
lea edi, [esp + 0x3d0]
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x18]
test edi, edi
je 0x5ce1e7
mov esi, dword [esp + 0x114]
mov ecx, 0x508
mov edx, 8
call fcn.00404a50
test eax, eax
je 0x5ce133
cmp esi, ebx
lea ecx, [esi + 1]
mov dword [eax + 0x4d0], 0
mov word [eax + 0x4d6], 0
mov dword [eax + 0x4d8], edi
mov dword [edi + 0x4d0], eax
mov word [edi + 0x4d4], 0
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], eax
jne 0x5ce200
movzx edx, word [eax + 0x4d6]
cmp edx, 0xb
jae 0x5ce219
mov ecx, dword [esp + 0x98]
lea ebx, [edx + 1]
lea esi, [esp + 0x3d0]
mov word [eax + 0x4d6], bx
mov dword [eax + edx*8 + 4], ecx
mov ecx, dword [esp + 0x60]
mov dword [eax + edx*8], ecx
imul ecx, edx, 0x68
lea edi, [eax + ecx + 0x58]
mov ecx, 0x1a
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x90]
mov edi, dword [esp + 0xc]
mov dword [eax + edx*4 + 0x4dc], ecx
mov dword [ecx + 0x4d0], eax
mov word [ecx + 0x4d4], bx
inc dword [esp + 0x11c]
jmp 0x5c9822
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x20]
mov esi, edx
mov dword [edi + ebx*8], eax
mov eax, dword [esp + 0x98]
mov dword [edi + ebx*8 + 4], eax
imul eax, ebx, 0x68
lea edi, [ecx + eax + 0x58]
mov ecx, 0x1a
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x20]
lea esi, [edi + 0x4d8]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x8c]
mov dword [esi + ebx*4 + 4], eax
mov esi, dword [esp + 0x50]
mov ebx, dword [esp + 0x70]
add ecx, 2
cmp ebx, ecx
mov word [edi + 0x4d6], si
mov ecx, edi
mov edi, dword [esp + 0xc]
jae 0x5ca2d8
dec ebx
mov eax, dword [ecx + ebx*4 + 0x4dc]
inc ebx
cmp esi, ebx
mov dword [eax + 0x4d0], ecx
mov word [eax + 0x4d4], bx
jne 0x5ca2bf
inc dword [esp + 0x11c]
jmp 0x5c9822
cmp dword [esp + 0x1e0], 0
je 0x5ca320
mov eax, dword [esp + 0x1e8]
test eax, eax
je 0x5ca320
mov ecx, dword [esp + 0x1e4]
test ecx, ecx
je 0x5ca320
and eax, 0xfffffff
je 0x5ca320
push ecx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
nop dword [eax]
mov eax, dword [esp + 0x110]
mov esi, dword [esp + 0x108]
test eax, eax
je 0x5ca38a
mov ebx, dword [esp + 0x24]
add esi, 0x10
imul edi, eax, 0x68
jmp 0x5ca348
add esi, 0x68
add edi, 0xffffff98
je 0x5ca372
cmp dword [esi - 8], 0
je 0x5ca340
mov eax, dword [esi]
test eax, eax
je 0x5ca340
mov ecx, dword [esi - 4]
test ecx, ecx
je 0x5ca340
and eax, 0xfffffff
je 0x5ca340
push ecx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x5ca340
mov esi, dword [esp + 0x108]
mov eax, dword [esp + 0x10c]
mov edi, dword [esp + 0x6c]
test eax, eax
jne 0x5ca39d
jmp 0x5ca3b6
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x10c]
mov edi, dword [esp + 0x6c]
test eax, eax
je 0x5ca3b6
test esi, esi
je 0x5ca3b6
imul eax, eax, 0x68
test eax, eax
je 0x5ca3b6
push esi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
lea ecx, [esp + 0x114]
call fcn.005d7420
mov ecx, dword [esp + 0x4c]
jmp 0x5c8b74
cmp dword [esp + 0xd4], 0
mov eax, dword [esp + 0xb0]
je 0x5ca320
test eax, eax
je 0x5ca320
cmp dword [esp + 0xd0], 0
je 0x5ca320
and eax, 0xfffffff
je 0x5ca320
push dword [esp + 0xd0]
jmp 0x5ca30c
xor eax, eax
cmp dword [esp + 0x1c], 0xfffffff0
mov ecx, dword [esp + 0x134]
mov edx, dword [esp + 0x9c]
mov edi, dword [esp + 0x28]
mov esi, 0
mov ebx, dword [esp + 0x44]
movdqu xmm0, xmmword [esp + 0x10c]
setae al
cmp byte [ecx + 0x74], 0
mov dword [esp + 0x1e0], edi
sete cl
shr edx, 0x10
cmp dx, 5
setb dl
or dl, cl
lea ecx, [eax*8 + 8]
lea edx, [eax*8 + 0xc]
cmovne ecx, esi
cmovne edx, esi
lea esi, [edi - 3]
xor eax, eax
mov edi, dword [esp + 0x2c]
cmp esi, 2
mov esi, dword [esp + 0x12c]
setb al
test ebx, ebx
mov dword [esp + 0x170], edi
mov dword [esp + 0x174], ebx
mov dword [esp + 0x1ec], esi
mov esi, dword [esp + 0x130]
mov dword [esp + 0x1e8], esi
mov esi, dword [esp + 4]
mov dword [esp + 0x1f0], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x1f4], esi
mov esi, dword [esp + 0x48]
mov dword [esp + 0x1f8], 0
mov dword [esp + 0x1fc], esi
mov esi, dword [esp + 0xac]
mov dword [esp + 0x200], edi
mov dword [esp + 0x204], ebx
mov dword [esp + 0x208], esi
mov esi, dword [esp + 0x108]
mov dword [esp + 0x2c0], esi
mov dword [esp + 8], esi
mov esi, dword [esp + 0x11c]
movdqu xmmword [esp + 0x2c4], xmm0
mov dword [esp + 0x2d4], esi
mov dword [esp + 0x2d8], 0
mov dword [esp + 0x2e0], 0
mov dword [esp + 0x214], 0
mov dword [esp + 0x210], 0
mov dword [esp + 0x2e8], ecx
mov dword [esp + 0x2ec], 0
mov dword [esp + 0x2f0], edx
mov dword [esp + 0x2f4], edx
mov edx, dword [esp + 0x12c]
mov ecx, dword [esp + 0x130]
mov dword [esp + 0x21c], 0
mov dword [esp + 0x218], 0x2f
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x2b4], 0
mov dword [esp + 0x2bc], edx
mov dword [esp + 0x2b8], ecx
lea edx, [esp + 0x1e0]
lea ecx, [esp + 0x2c0]
mov dword [esp + 0x178], edx
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x18c], 2
mov dword [esp + 0x19c], 0
je 0x5cb14b
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x44]
pshufd xmm1, xmm0, 0x55
movd dword [esp + 0x20], xmm1
pshufd xmm1, xmm0, 0xff
pshufd xmm0, xmm0, 0xee
movd dword [esp + 0x14], xmm1
movd dword [esp + 0x28], xmm0
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x70], 0
xor ecx, ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], esi
movzx edx, byte [esi + ebx]
cmp ecx, 0x3f
jne 0x5ca665
cmp dl, 1
ja 0x5cb14b
mov dh, dl
mov dword [esp + 0x30], edi
xor edi, edi
mov eax, 0
and dh, 0x7f
movzx esi, dh
shld edi, esi, cl
shl esi, cl
test cl, 0x20
cmovne edi, esi
cmovne esi, eax
or dword [esp + 0x70], edi
mov edi, dword [esp + 0x30]
or edi, esi
test dl, dl
jns 0x5ca6a9
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x10]
inc ebx
add ecx, 7
cmp eax, ebx
jne 0x5ca653
jmp 0x5cb14b
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x70]
mov edx, edi
lea ecx, [eax - 1]
mov dword [esp + 0x9c], ecx
sub ecx, ebx
or edx, esi
mov edx, dword [esp + 0x10]
lea edx, [edx + ebx + 1]
mov dword [esp + 0x170], edx
mov dword [esp + 0x174], ecx
jne 0x5ca705
cmp dword [esp + 0x9c], ebx
mov esi, edx
mov eax, ecx
mov dword [esp + 0x19c], 0xffffffff
mov dword [esp + 0x18c], 2
jne 0x5ca63d
jmp 0x5cb14b
cmp dword [esp + 0x1c], 0xfffffff0
setae byte [esp + 0x8c]
test esi, esi
jne 0x5cab92
lea ecx, [edi - 1]
cmp ecx, dword [esp + 0x20]
jae 0x5cab92
imul eax, ecx, 0x68
mov ecx, dword [esp + 8]
add ecx, eax
mov al, byte [esp + 0x8c]
xor edx, edx
mov dl, al
mov eax, dword [esp + 4]
lea eax, [eax + edx*8]
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x2c]
sub eax, edx
mov edx, dword [esp + 0x10]
lea esi, [edx + ebx + 1]
not ebx
lea eax, [eax + edx + 4]
xor edx, edx
add ebx, dword [esp + 0x50]
cmp byte [ecx + 0x62], 1
mov dword [esp + 0x30], esi
sete dl
mov dword [esp + 0x19c], edx
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], esi
mov dword [esp + 0x188], ebx
mov dword [esp + 0x190], 0
mov dword [esp + 0x18c], 0
mov dword [esp + 0x194], ecx
lea eax, [esp + 0x1e0]
add ecx, 8
mov dword [esp + 0x198], eax
call fcn.0049fa70
mov edi, dword [esp + 0x30]
mov esi, eax
test edx, edx
lea ecx, [esp + 0x180]
mov dword [esp + 0x440], edi
mov dword [esp + 0x444], ebx
mov dword [esp + 0x448], esi
mov dword [esp + 0x44c], edx
mov dword [esp + 0x450], ecx
je 0x5cac5c
movdqa xmm0, xmmword [0x607440]
mov edi, edx
lea eax, [esp + 0x198]
lea edx, [esp + 0x440]
mov dword [esp + 0x30], 0
mov dword [esp + 0x10], 0x2e
mov dword [esp + 8], 0
movdqa xmmword [esp + 0x70], xmm0
movdqa xmmword [esp + 0x50], xmm0
movzx ebx, word [esi + 0xa]
mov eax, dword [eax]
lea ecx, [esp + 0x320]
push ebx
push dword [esi + 8]
push dword [esi + 4]
push dword [esi]
push dword [eax + 0x28]
call fcn.005ce640
add esp, 0x14
mov eax, dword [esp + 0x320]
xor eax, 1
or eax, dword [esp + 0x324]
je 0x5cb14b
movdqu xmm0, xmmword [esp + 0x328]
add esi, 0x10
dec edi
mov dword [esp + 0x448], esi
mov dword [esp + 0x44c], edi
movd ecx, xmm0
pshufd xmm1, xmm0, 0x55
movd eax, xmm1
xor ecx, 0x2e
or ecx, eax
je 0x5cacba
mov eax, dword [esp + 0x338]
mov ecx, dword [esp + 0x33c]
movdqu xmmword [esp + 0x320], xmm0
cmp ax, 0x71
mov dword [esp + 0x330], eax
mov dword [esp + 0x334], ecx
jle 0x5ca930
movsx ecx, ax
cmp ecx, 0x2130
jg 0x5ca977
add eax, 0xffffff8e
cmp ax, 0x1a
ja 0x5cab66
movzx eax, ax
mov eax, dword [eax*4 + 0x5ce378]
add eax, dword [esp + 0xa4]
jmp eax
add eax, 0xfffffffd
cmp ax, 0x18
ja 0x5cab66
movzx eax, ax
mov eax, dword [eax*4 + 0x5ce314]
add eax, dword [esp + 0xa4]
jmp eax
movzx eax, ax
cmp eax, 0x2131
je 0x5caafb
cmp eax, 0x2132
je 0x5ca9d4
cmp eax, 0x2133
jne 0x5cab66
lea ecx, [esp + 0x3d0]
lea edx, [esp + 0x320]
call fcn.005cfdb0
mov eax, dword [esp + 0x3d0]
xor eax, 0xb
or eax, dword [esp + 0x3d4]
jne 0x5cab66
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x2ec], eax
jmp 0x5cab66
lea ecx, [esp + 0x3d0]
lea edx, [esp + 0x320]
call fcn.005cfdb0
mov eax, dword [esp + 0x3d0]
xor eax, 0x17
or eax, dword [esp + 0x3d4]
jne 0x5cab66
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x2f4], eax
jmp 0x5cab66
mov eax, dword [esp + 0x2b0]
xor eax, 1
or eax, dword [esp + 0x2b4]
je 0x5cab66
lea ecx, [esp + 0x3d0]
lea edx, [esp + 0x320]
call fcn.005cfdb0
mov eax, dword [esp + 0x3d0]
xor eax, 0x2d
or eax, dword [esp + 0x3d4]
jne 0x5cab66
mov eax, dword [esp + 0x3d8]
mov ecx, dword [esp + 0x3dc]
mov dword [esp + 0x2b4], 0
mov dword [esp + 0x2b0], 1
mov dword [esp + 0x2bc], ecx
mov dword [esp + 0x2b8], eax
mov edi, dword [esp + 0x44c]
lea edx, [esp + 0x440]
test edi, edi
je 0x5cac98
mov eax, dword [esp + 0x450]
mov esi, dword [esp + 0x448]
add eax, 0x18
jmp 0x5ca82e
cmp dword [esp + 0x14], 0
je 0x5cb14b
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], edi
movzx ecx, word [eax + 0x4d6]
mov esi, 0xffffffff
mov dword [esp + 0x14], eax
mov dword [esp + 0xac], ecx
lea edi, [ecx*8]
lea ecx, [eax - 0x10]
mov edx, dword [esp + 0x70]
test edi, edi
mov dword [esp + 8], ecx
mov dword [esp + 0x1c], edi
je 0x5cac3a
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], esi
mov dword [esp + 0x70], edx
mov ecx, dword [eax + esi*8 + 8]
mov edi, dword [eax + esi*8 + 0xc]
mov eax, dword [esp + 0x30]
mov esi, ecx
mov dword [esp + 0x9c], edi
xor edi, edx
xor edx, edx
xor esi, eax
or esi, edi
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x1c]
setne dl
cmp eax, ecx
mov ecx, dword [esp + 8]
mov eax, 0xff
sbb esi, dword [esp + 0x9c]
mov esi, dword [esp + 0x20]
cmovb edx, eax
inc esi
add edi, 0xfffffff8
add ecx, 0x68
cmp dl, 1
je 0x5cabc6
cmp dl, 0xff
jne 0x5ca730
jmp 0x5cac41
mov esi, dword [esp + 0xac]
sub dword [esp + 0x28], 1
jb 0x5cb14b
mov eax, dword [esp + 0x14]
mov eax, dword [eax + esi*4 + 0x4d8]
jmp 0x5caba5
movdqa xmm0, xmmword [0x607440]
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0x2e
lea eax, [esp + 0x180]
mov dword [esp + 0x30], 0
lea ecx, [esp + 0x18c]
movdqa xmmword [esp + 0x70], xmm0
movdqa xmmword [esp + 0x50], xmm0
jmp 0x5caca2
mov eax, dword [esp + 0x450]
lea ecx, [eax + 0xc]
cmp dword [ecx], 1
je 0x5cacba
mov edx, dword [esp + 0x440]
sub edx, dword [eax + 4]
mov dword [ecx], 1
mov dword [eax + 0x10], edx
movdqa xmm1, xmmword [esp + 0x50]
mov dword [esp + 4], 0
movd ecx, xmm1
pshufd xmm0, xmm1, 0x55
movd eax, xmm0
xor ecx, 0x2e
or ecx, eax
mov eax, 0
je 0x5cad30
movdqa xmm0, xmmword [esp + 0x50]
mov edx, dword [esp + 0xd8]
lea eax, [esp + 0x320]
lea ecx, [esp + 0x170]
movdqu xmmword [esp + 0x320], xmm0
push eax
lea eax, [esp + 0x1e4]
push eax
call fcn.005d1c40
add esp, 8
xor eax, eax
cmp dword [esp + 0x170], 1
je 0x5cad29
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x178]
movdqa xmm1, xmmword [esp + 0x70]
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x2dc], ecx
movd ecx, xmm1
pshufd xmm0, xmm1, 0x55
movd eax, xmm0
xor ecx, 0x2e
or ecx, eax
je 0x5cadb1
movdqa xmm0, xmmword [esp + 0x70]
mov edx, dword [esp + 0xd8]
lea eax, [esp + 0x320]
lea ecx, [esp + 0x170]
movdqu xmmword [esp + 0x320], xmm0
push eax
lea eax, [esp + 0x1e4]
push eax
call fcn.005d1c40
add esp, 8
cmp dword [esp + 0x170], 1
mov dword [esp + 4], 0
je 0x5cadaa
mov eax, dword [esp + 0x174]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x178]
mov eax, dword [esp + 4]
cmp dword [esp + 0x30], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x2e4], esi
je 0x5cae40
mov eax, dword [esp + 0x134]
mov edx, dword [eax + 0x2c]
sub edx, dword [esp + 0x1c]
jb 0x5cb14b
cmp edx, 4
jb 0x5cb14b
mov al, byte [esp + 0x208]
lea edi, [edx - 4]
mov byte [esp + 0x28], 4
mov byte [esp + 0x2c], al
mov eax, dword [esp + 0x2d8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x134]
mov ebx, dword [eax + 0x28]
add ebx, dword [esp + 0x1c]
mov eax, dword [ebx]
lea ecx, [ebx + 4]
cmp eax, 0xfffffff0
jae 0x5cb0f0
mov dword [esp + 0x50], eax
jmp 0x5cb115
mov ebx, 0x2f
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x218]
xor eax, 0x2f
or eax, dword [esp + 0x21c]
je 0x5cae68
lea ecx, [esp + 0x218]
call fcn.005d6610
mov eax, dword [esp + 0x70]
mov dword [esp + 0x218], ebx
movsd xmm0, qword [esp + 0x3f0]
lea ecx, [esp + 0x1e8]
movq xmm1, qword [esp + 0x3d8]
mov dl, byte [esp + 0x90]
mov dword [esp + 0x21c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x220], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x224], eax
movsd qword [ecx + 0x60], xmm0
movsd xmm0, qword [esp + 0x3e8]
mov eax, dword [esp + 0x1c]
movq qword [ecx + 0x48], xmm1
movsd qword [ecx + 0x58], xmm0
movsd xmm0, qword [esp + 0x3e0]
movsd qword [ecx + 0x50], xmm0
movsd xmm0, qword [esp + 0x3d0]
movsd qword [ecx + 0x40], xmm0
mov dword [esp + 0x250], eax
mov eax, dword [esp + 0x50]
movsd xmm0, qword [esp + 0x660]
mov dword [esp + 0x254], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x258], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x25c], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x260], eax
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x264], eax
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x268], eax
mov eax, dword [esp + 0x3b8]
mov dword [esp + 0x26c], eax
mov eax, dword [esp + 0x668]
movsd qword [ecx + 0x88], xmm0
movq xmm0, qword [esp + 0x108]
mov dword [ecx + 0x90], eax
mov eax, dword [esp + 0x3c8]
mov dword [esp + 0x27c], eax
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x280], eax
mov eax, dword [esp + 0x3c0]
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x110]
movq qword [ecx + 0xa0], xmm0
mov dword [ecx + 0xa8], eax
mov eax, dword [esp + 0x8c]
mov cl, byte [esp + 0xb4]
mov dword [esp + 0x294], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x298], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x29c], eax
mov al, byte [esp + 0x2c]
mov dword [esp + 0x2a0], esi
mov byte [esp + 0x2a4], al
mov al, byte [esp + 0x28]
mov byte [esp + 0x2a5], al
mov eax, dword [esp + 0x30]
mov word [esp + 0x2a6], ax
mov byte [esp + 0x2a8], cl
mov cl, byte [esp + 0xb0]
mov byte [esp + 0x2a9], dl
mov dl, byte [esp + 0x130]
mov byte [esp + 0x2aa], cl
mov cl, byte [esp + 0x12c]
mov byte [esp + 0x2ab], dl
mov dl, byte [esp + 0x98]
mov byte [esp + 0x2ac], cl
mov ecx, dword [esp + 0x10]
mov byte [esp + 0x2ad], dl
xor ecx, 0x2e
or ecx, dword [esp + 8]
je 0x5cb4f4
mov eax, dword [esp + 0x10]
and al, 0x3f
je 0x5cb4de
cmp al, 0xc
jne 0x5cb4f4
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x2ec]
mov esi, dword [eax + 0x14]
sub esi, ecx
jb 0x5cb14b
mov ebx, dword [esp + 0x208]
mov eax, dword [esp + 0x44]
movzx edx, bl
mul edx
jo 0x5cb14b
sub esi, eax
jb 0x5cb14b
dec bl
cmp bl, 7
ja 0x5cb14b
mov edx, dword [esp + 0x134]
add ecx, dword [edx + 0x10]
movzx edx, bl
mov edx, dword [edx*4 + 0x5ce440]
add edx, dword [esp + 0xa4]
jmp edx
cmp eax, 0xffffffff
jne 0x5cb14b
cmp edi, 8
jb 0x5cb14b
cmp dword [ecx + 4], 0
jne 0x5cb14b
mov ecx, dword [ecx]
add edx, 0xfffffff4
add ebx, 0xc
mov byte [esp + 0x28], 8
mov edi, edx
mov dword [esp + 0x50], ecx
mov ecx, ebx
cmp edi, dword [esp + 0x50]
jb 0x5cb14b
cmp dword [esp + 0x50], 1
jbe 0x5cb14b
mov edx, dword [esp + 0x50]
lea ebx, [ecx + 2]
mov dword [esp + 0x64], ebx
add edx, 0xfffffffe
mov dword [esp + 0x68], edx
mov dword [esp + 0xac], edx
movzx edx, word [ecx]
mov dword [esp + 0x30], edx
add edx, 0xfffffffe
cmp dx, 3
jbe 0x5cb168
lea ecx, [esp + 0x1e0]
call fcn.005d7370
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x4c]
jmp 0x5c8b74
cmp word [esp + 0x30], 4
mov edi, ebx
jbe 0x5cb1aa
cmp dword [esp + 0xac], 0
je 0x5cb14b
cmp dword [esp + 0x50], 3
je 0x5cb14b
mov dl, byte [edi]
lea ebx, [ecx + 4]
mov dword [esp + 0x64], ebx
mov edi, ebx
mov byte [esp + 0x2c], dl
mov edx, dword [esp + 0x50]
add edx, 0xfffffffc
mov dword [esp + 0x68], edx
mov dword [esp + 0xac], edx
cmp byte [ecx + 3], 0
jne 0x5cb14b
cmp eax, 0xfffffff0
jae 0x5cb1c8
cmp dword [esp + 0xac], 4
jb 0x5cb14b
mov eax, dword [edi]
add dword [esp + 0xac], 0xfffffffc
add edi, 4
jmp 0x5cb1ed
cmp dword [esp + 0xac], 8
jb 0x5cb14b
cmp dword [edi + 4], 0
jne 0x5cb14b
mov eax, dword [edi]
add dword [esp + 0xac], 0xfffffff8
add edi, 8
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x8c], edi
sub dword [esp + 0xac], eax
jb 0x5cb14b
cmp dword [esp + 0xd8], 0
je 0x5cb14b
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0x8c]
lea eax, [edx + 1]
dec ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
mov dl, byte [edx]
test dl, dl
mov byte [esp + 0xb4], dl
je 0x5cb14b
cmp word [esp + 0x30], 4
mov byte [esp + 0x90], 1
jb 0x5cb28d
test ecx, ecx
je 0x5cb14b
mov eax, dword [esp + 0x8c]
mov al, byte [eax + 1]
test al, al
mov byte [esp + 0x90], al
je 0x5cb14b
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0xd8]
add eax, 2
add ecx, 0xfffffffe
test ecx, ecx
je 0x5cb14b
mov edi, ecx
lea edx, [eax + 1]
dec edi
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], edi
je 0x5cb14b
cmp ecx, 2
je 0x5cb14b
mov dl, byte [edx]
lea edi, [eax + 3]
mov bl, byte [eax]
mov dword [esp + 0x64], edi
mov byte [esp + 0x130], dl
lea edx, [ecx - 3]
mov dword [esp + 0x68], edx
mov bh, byte [eax + 2]
test bh, bh
mov byte [esp + 0x12c], bh
je 0x5cb14b
test bl, bl
setne byte [esp + 0xb0]
test edx, edx
je 0x5cb14b
mov dl, byte [eax + 3]
test dl, dl
mov byte [esp + 0x98], dl
je 0x5cb14b
mov bl, byte [esp + 0x98]
lea edx, [ecx - 4]
dec bl
movzx ebx, bl
sub edx, ebx
mov edi, ebx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0x18], edx
jb 0x5cb14b
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0xd4]
movzx edx, bx
cmp bx, 4
mov dword [esp + 0xa8], edx
lea edx, [eax + 4]
mov dword [esp + 0xd0], edx
lea edx, [edx + edi]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x64], edx
mov dword [esp + 0xc], edx
mov dword [esp + 0x68], edi
mov edi, dword [0x6d3de0]
mov dword [esp + 0x4b0], edi
mov dword [esp + 0x4b4], 0
mov dword [esp + 0x4b8], 0
ja 0x5cb63a
cmp dword [esp + 0x18], 0
je 0x5cb660
add eax, ecx
mov ecx, dword [0x6d3de0]
mov dword [esp + 0x60], 0
xor ebx, ebx
mov edx, dword [esp + 0xc]
cmp byte [edx + ebx], 0
je 0x5cb3bd
mov edx, dword [esp + 0xc]
lea edi, [edx + ebx + 1]
inc ebx
cmp edi, eax
jne 0x5cb3a1
jmp 0x5cb660
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
add eax, ebx
sub edx, ebx
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
je 0x5cb660
mov edi, ebx
mov eax, dword [esp + 0xc]
not edi
add edi, dword [esp + 0x18]
test ebx, ebx
lea eax, [eax + ebx + 1]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edi
je 0x5cba3e
mov eax, dword [esp + 0x60]
cmp eax, dword [esp + 0x4b4]
jne 0x5cb426
mov edx, dword [esp + 0x60]
lea ecx, [esp + 0x4b0]
call fcn.005d7d00
mov ecx, dword [esp + 0x4b0]
mov eax, dword [esp + 0x4b8]
mov dword [esp + 0x60], eax
mov edi, dword [esp + 0x60]
mov edx, dword [esp + 0xc]
mov dword [esp + 0xf4], 0
mov eax, edi
inc edi
shl eax, 4
mov dword [esp + 0x60], edi
mov dword [ecx + eax + 4], 0
mov dword [ecx + eax], 0x1f
mov dword [ecx + eax + 8], edx
mov dword [ecx + eax + 0xc], ebx
mov dword [esp + 0x4b8], edi
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
add eax, edx
test edx, edx
mov dword [esp + 0x18], edx
jne 0x5cb39f
jmp 0x5cb66b
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x210], eax
mov dword [esp + 0x214], ecx
mov eax, dword [esp + 0x1e8]
mov esi, dword [esp + 0x1e0]
mov edi, dword [esp + 0x1e4]
mov ebx, dword [esp + 0x1ec]
mov dword [esp + 0x30], eax
push 0x108
lea eax, [esp + 0x1f4]
push eax
lea eax, [esp + 0x560]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x30]
mov dword [esp + 0x548], esi
mov dword [esp + 0x54c], edi
mov dword [esp + 0x554], ebx
lea esi, [esp + 0x548]
lea edx, [esp + 0x628]
mov dword [esp + 0x550], eax
mov ecx, dword [esp + 0x56c]
mov eax, dword [esp + 0x568]
test ecx, ecx
mov dword [esp + 0x440], eax
mov dword [esp + 0x444], ecx
mov dword [esp + 0x448], esi
mov dword [esp + 0x44c], edx
mov dword [esp + 4], eax
mov dword [esp + 0x450], 0
mov dword [esp + 0x1c], ecx
je 0x5cdf23
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 4]
mov dword [esp + 0x50], 0
xor ecx, ecx
lea esi, [eax + 1]
neg ebx
xor eax, eax
mov dword [esp + 0x30], eax
movzx eax, byte [esi - 1]
cmp ecx, 0x3f
jne 0x5cb5d2
cmp al, 2
jae 0x5cdeee
mov ah, al
xor edx, edx
mov byte [esp + 0x70], al
and ah, 0x7f
movzx edi, ah
mov eax, 0
shld edx, edi, cl
shl edi, cl
test cl, 0x20
cmovne edx, edi
cmovne edi, eax
mov eax, dword [esp + 0x30]
or dword [esp + 0x50], edx
or eax, edi
cmp byte [esp + 0x70], 0
jns 0x5cb610
add ecx, 7
inc esi
inc ebx
jne 0x5cb5bd
jmp 0x5cdf05
mov dword [esp + 0x30], eax
or eax, dword [esp + 0x50]
not ebx
mov dword [esp + 0x440], esi
mov dword [esp + 0x444], ebx
jne 0x5cc5bd
lea ecx, [esp + 0x548]
jmp 0x5cb152
lea ecx, [esp + 0x170]
lea edx, [esp + 0x64]
call fcn.005d7920
cmp dword [esp + 0x170], 1
jne 0x5cb6fa
mov al, 1
mov dword [esp + 4], eax
jmp 0x5cb67f
mov dword [esp + 0xf4], 0
mov eax, dword [0x6dd42c]
mov dword [esp + 0xec], eax
mov dword [esp + 4], 0
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x5cb6aa
mov ecx, dword [esp + 0x4b0]
test ecx, ecx
je 0x5cb6aa
and eax, 0xfffffff
je 0x5cb6aa
push ecx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xf4], 0
mov ecx, dword [esp + 4]
sete al
or cl, al
jne 0x5cb14b
cmp dword [esp + 0xec], 0
je 0x5cb14b
mov eax, dword [esp + 0xf4]
and eax, 0x3fffffff
je 0x5cb14b
push dword [esp + 0xec]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x5cb14b
mov eax, dword [esp + 0x68]
mov byte [esp + 0x88], 0x13
mov ecx, eax
test eax, eax
mov al, 1
mov dword [esp + 0x60], eax
je 0x5cb7a2
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], 0
mov dword [esp + 0xa0], 0
lea edx, [eax + ecx]
neg ecx
inc eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x94], edx
xor ecx, ecx
movzx edx, byte [eax - 1]
cmp ecx, 0x3f
jne 0x5cb74e
cmp dl, 2
jae 0x5cb7a6
mov bh, dl
mov byte [esp + 4], dl
xor edx, edx
and bh, 0x7f
movzx edi, bh
mov ebx, 0
shld edx, edi, cl
shl edi, cl
test cl, 0x20
cmovne edx, edi
cmovne edi, ebx
or dword [esp + 0xa0], edx
or dword [esp + 0x18], edi
cmp byte [esp + 4], 0
jns 0x5cb7be
add ecx, 7
inc eax
inc dword [esp + 0xc]
jne 0x5cb740
mov eax, dword [esp + 0x94]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], 0
xor eax, eax
jmp 0x5cb7ee
xor eax, eax
jmp 0x5cb7ee
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xc]
mov byte [esp + 0x88], 6
not eax
mov dword [esp + 0x68], eax
jmp 0x5cb7ee
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x60], 0
not eax
mov byte [esp + 0x88], dl
mov dword [esp + 0x68], eax
mov eax, edx
shrd eax, ecx, 8
mov ecx, edx
mov ecx, dword [esp + 0x174]
mov edx, dword [esp + 0x178]
cmp byte [esp + 0x60], 0
mov dword [esp + 4], 0
mov dword [esp + 0xec], ecx
mov dword [esp + 0xf4], edx
jne 0x5cb67f
movzx edx, byte [esp + 0x88]
shl eax, 8
mov ecx, dword [esp + 0x17c]
or edx, eax
mov dword [esp + 0x140], ecx
mov eax, edx
mov dword [esp + 0xe0], edx
or eax, dword [esp + 0xa0]
je 0x5cba60
cmp dword [esp + 0x140], 0
je 0x5ce232
mov eax, dword [esp + 0xa8]
movzx ecx, byte [esp + 0x28]
movzx edi, byte [esp + 0x2c]
mov edx, dword [esp + 0x140]
mov dword [esp + 0x94], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0xcc], 0
shl eax, 0x10
shl ecx, 8
shl edx, 2
or ecx, eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0xe4], edx
or edi, ecx
mov ecx, dword [0x6d3de0]
add eax, 2
mov dword [esp + 0xe8], eax
mov dword [esp + 0xc8], ecx
add dword [esp + 0xfc], 1
mov eax, dword [esp + 0xe4]
mov ebx, dword [esp + 0xe8]
mov dword [esp + 4], 0x2e
mov dword [esp + 0xc], 0
adc dword [esp + 0xcc], 0
mov dword [esp + 0x88], eax
movzx eax, word [ebx]
lea ecx, [esp + 0x170]
lea edx, [esp + 0x64]
push eax
push edi
call fcn.005d7d90
add esp, 8
mov eax, dword [esp + 0x170]
xor eax, 1
or eax, dword [esp + 0x174]
je 0x5cb677
cmp word [ebx - 2], 1
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0xc]
cmove ecx, dword [esp + 0x180]
cmove eax, dword [esp + 0x184]
cmove edx, dword [esp + 0x17c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x60], eax
mov dword [esp + 0xc], edx
cmove ecx, dword [esp + 0x178]
add ebx, 4
add dword [esp + 0x88], 0xfffffffc
mov dword [esp + 4], ecx
jne 0x5cb8fc
mov eax, dword [esp + 4]
xor eax, 0x2e
or eax, dword [esp + 0xc]
je 0x5ce232
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0x4b4]
jne 0x5cb9d1
mov edx, dword [esp + 0x94]
lea ecx, [esp + 0x4b0]
call fcn.005d7d00
mov eax, dword [esp + 0x4b0]
mov ecx, dword [esp + 0x4b8]
mov dword [esp + 0xc8], eax
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0xc8]
mov ebx, dword [esp + 0xc]
mov eax, ecx
inc ecx
shl eax, 4
mov dword [esp + 0x94], ecx
mov dword [edx + eax + 4], ebx
mov ebx, dword [esp + 4]
mov dword [edx + eax], ebx
mov ebx, dword [esp + 0x18]
mov dword [edx + eax + 8], ebx
mov ebx, dword [esp + 0x60]
mov dword [edx + eax + 0xc], ebx
mov ebx, dword [esp + 0xfc]
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x4b8], ecx
cmp ebx, dword [esp + 0xe0]
sbb edx, dword [esp + 0xa0]
jb 0x5cb8c7
mov dword [esp + 4], 0
jmp 0x5cba60
mov eax, dword [0x6dd42c]
mov dword [esp + 0xf4], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0xec], eax
cmp word [esp + 0x30], 4
mov eax, dword [0x6d3de0]
mov dword [esp + 0x4fc], eax
mov dword [esp + 0x500], 0
mov dword [esp + 0x504], 0
ja 0x5cbacb
cmp dword [esp + 0x20], 0
je 0x5cbba2
pxor xmm0, xmm0
mov ebx, 0x1f
mov dword [esp + 0x194], 0
mov dword [esp + 0x190], 0
movdqa xmmword [esp + 0x180], xmm0
movdqa xmmword [esp + 0x170], xmm0
jmp 0x5cbba7
lea ecx, [esp + 0x170]
lea edx, [esp + 0x64]
call fcn.005d7920
cmp dword [esp + 0x170], 1
jne 0x5cbaec
mov bl, 1
jmp 0x5cbe7d
mov eax, dword [esp + 0x68]
mov byte [esp + 0x94], 0x13
mov ecx, eax
test eax, eax
mov al, 1
mov dword [esp + 0x88], eax
je 0x5cbe06
mov eax, dword [esp + 0x64]
mov dword [esp + 0x60], 0
mov dword [esp + 0xa0], 0
lea edx, [eax + ecx]
neg ecx
inc eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0xfc], edx
xor ecx, ecx
movzx edx, byte [eax - 1]
cmp ecx, 0x3f
jne 0x5cbb47
cmp dl, 2
jae 0x5cbe0a
mov bh, dl
mov byte [esp + 0xc], dl
xor edx, edx
and bh, 0x7f
movzx edi, bh
mov ebx, 0
shld edx, edi, cl
shl edi, cl
test cl, 0x20
cmovne edx, edi
cmovne edi, ebx
or dword [esp + 0xa0], edx
or dword [esp + 0x60], edi
cmp byte [esp + 0xc], 0
jns 0x5cbe22
add ecx, 7
inc eax
inc dword [esp + 0x18]
jne 0x5cbb35
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], 0
xor eax, eax
jmp 0x5cbe55
mov ebx, 0x2e
mov ecx, dword [esp + 0x68]
movq xmm0, qword [esp + 0x190]
movdqa xmm2, xmmword [esp + 0x170]
movdqa xmm1, xmmword [esp + 0x180]
test ecx, ecx
movq qword [esp + 0x460], xmm0
movdqa xmmword [esp + 0x450], xmm1
movdqa xmmword [esp + 0x440], xmm2
je 0x5cbded
mov eax, dword [esp + 0x64]
mov edi, dword [0x6d3de0]
mov dword [esp + 0x18], 0
lea edx, [eax + ecx]
mov dword [esp + 0xc], eax
mov dword [esp + 0x60], edi
xor eax, eax
mov edi, dword [esp + 0xc]
cmp byte [edi + eax], 0
je 0x5cbc24
mov edi, dword [esp + 0xc]
lea edi, [edi + eax + 1]
inc eax
cmp edi, edx
jne 0x5cbc08
jmp 0x5cbded
mov edx, dword [esp + 0xc]
mov edi, ecx
sub edi, eax
lea edx, [edx + eax]
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], edi
je 0x5cbded
mov edx, dword [esp + 0xc]
mov edi, eax
not edi
add edi, ecx
test eax, eax
lea edx, [edx + eax + 1]
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], edi
je 0x5cc596
lea ecx, [esp + 0x170]
lea edx, [esp + 0x64]
push eax
push dword [esp + 0x10]
call fcn.005d5ed0
add esp, 8
mov eax, dword [esp + 0x170]
xor eax, 1
or eax, dword [esp + 0x174]
je 0x5cbded
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x180]
mov eax, dword [esp + 0x178]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x184]
mov dword [esp + 0xc], edx
lea edx, [esp + 0x180]
mov dword [esp + 0xa8], eax
movsd xmm2, qword [edx + 0x20]
movsd xmm1, qword [edx + 0x18]
movsd xmm0, qword [edx + 0x28]
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x18]
movsd qword [esp + 0x338], xmm2
movsd qword [esp + 0x330], xmm1
movq xmm2, qword [edx + 8]
movsd xmm1, qword [edx + 0x10]
movsd qword [esp + 0x340], xmm0
cmp ecx, dword [esp + 0x500]
movsd qword [esp + 0x328], xmm1
movq qword [esp + 0x320], xmm2
jne 0x5cbd3f
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x4fc]
call fcn.005d61e0
mov eax, dword [esp + 0x4fc]
mov ecx, dword [esp + 0x504]
mov dword [esp + 0x60], eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0xa0]
mov dword [esp + 0xdc], 0
imul eax, ecx, 0x38
inc ecx
mov dword [edx + eax + 4], edi
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x18], ecx
mov dword [edx + eax], edi
mov edi, dword [esp + 0xc]
mov dword [edx + eax + 8], edi
mov edi, dword [esp + 0x88]
mov dword [edx + eax + 0xc], edi
movsd xmm0, qword [esp + 0x320]
movq xmm1, qword [esp + 0x328]
movsd qword [edx + eax + 0x10], xmm0
movq qword [edx + eax + 0x18], xmm1
movsd xmm0, qword [esp + 0x330]
movsd qword [edx + eax + 0x20], xmm0
movsd xmm0, qword [esp + 0x338]
movsd qword [edx + eax + 0x28], xmm0
movq xmm0, qword [esp + 0x340]
movq qword [edx + eax + 0x30], xmm0
mov dword [esp + 0x504], ecx
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
lea edx, [eax + ecx]
test ecx, ecx
mov dword [esp + 0xc], eax
jne 0x5cbc06
jmp 0x5cbdf8
mov dword [esp + 0xdc], 0
mov eax, dword [0x6dd42c]
mov dword [esp + 0xc4], eax
jmp 0x5cbe7b
xor eax, eax
jmp 0x5cbe55
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x18]
mov byte [esp + 0x94], 6
not eax
mov dword [esp + 0x68], eax
jmp 0x5cbe55
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x88], 0
not eax
mov byte [esp + 0x94], dl
mov dword [esp + 0x68], eax
mov eax, edx
shrd eax, ecx, 8
mov ecx, edx
mov ecx, dword [esp + 0x174]
mov edx, dword [esp + 0x178]
cmp byte [esp + 0x88], 0
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xdc], edx
je 0x5cbef7
xor ebx, ebx
mov ecx, dword [esp + 0x500]
test ecx, ecx
je 0x5cbea8
mov eax, dword [esp + 0x4fc]
test eax, eax
je 0x5cbea8
imul ecx, ecx, 0x38
test ecx, ecx
je 0x5cbea8
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xdc], 0
sete al
or bl, al
cmp bl, 1
je 0x5cb677
cmp dword [esp + 0xc4], 0
je 0x5cb677
mov eax, dword [esp + 0xdc]
and eax, 0x3fffffff
je 0x5cb677
push dword [esp + 0xc4]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x5cb677
movzx edx, byte [esp + 0x94]
shl eax, 8
mov ecx, dword [esp + 0x17c]
or edx, eax
mov dword [esp + 0x13c], ecx
mov eax, edx
mov dword [esp + 0x3a0], edx
or eax, dword [esp + 0xa0]
je 0x5cc488
cmp dword [esp + 0x13c], 0
je 0x5ce24b
mov ecx, dword [esp + 0xa8]
movzx eax, byte [esp + 0x28]
mov edx, dword [esp + 0x13c]
mov dword [esp + 0x120], 0
mov dword [esp + 0x304], 0
mov dword [esp + 0x300], 0
shl ecx, 0x10
shl eax, 8
shl edx, 2
or eax, ecx
movzx ecx, byte [esp + 0x2c]
mov dword [esp + 0x3a4], edx
or ecx, eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x60], ecx
mov ecx, dword [0x6d3de0]
add eax, 2
mov dword [esp + 0x3a8], eax
mov dword [esp + 0x2fc], ecx
add dword [esp + 0x304], 1
mov eax, dword [esp + 0x3a4]
mov ebx, dword [esp + 0x3a8]
mov dword [esp + 0x323], 0
mov dword [esp + 0x320], 0
mov dword [esp + 0xa8], 0x2e
mov dword [esp + 0x94], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0x310], 0
mov dword [esp + 0x314], 0
mov dword [esp + 0x30c], 0
mov dword [esp + 0x308], 0
adc dword [esp + 0x300], 0
mov dword [esp + 0x88], eax
jmp 0x5cc0a6
add ebx, 4
add dword [esp + 0x88], 0xfffffffc
je 0x5cc31b
movzx eax, word [ebx]
lea ecx, [esp + 0x170]
lea edx, [esp + 0x64]
push eax
push dword [esp + 0x64]
call fcn.005d7d90
add esp, 8
mov eax, dword [esp + 0x170]
xor eax, 1
or eax, dword [esp + 0x174]
je 0x5cbe7b
movzx edi, word [ebx - 2]
dec edi
cmp di, 4
ja 0x5cc095
movzx edi, di
mov eax, dword [esp + 0x180]
mov edx, dword [esp + 0x178]
mov ecx, dword [esp + 0x17c]
mov edi, dword [edi*4 + 0x5ce3e4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x184]
add edi, dword [esp + 0xa4]
mov dword [esp + 0x18], eax
jmp edi
mov eax, dword [esp + 0xa8]
xor eax, 0x2e
or eax, dword [esp + 0x94]
je 0x5ce261
mov ecx, dword [esp + 0x323]
mov eax, dword [esp + 0x320]
mov dword [esp + 0x16b], ecx
mov ecx, dword [esp + 0x120]
mov dword [esp + 0x168], eax
cmp ecx, dword [esp + 0x500]
jne 0x5cc38d
mov edx, dword [esp + 0x120]
lea ecx, [esp + 0x4fc]
call fcn.005d61e0
mov eax, dword [esp + 0x4fc]
mov ecx, dword [esp + 0x504]
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x120], ecx
mov edx, dword [esp + 0x120]
mov edi, dword [esp + 0x2fc]
mov ecx, dword [esp + 0x94]
mov ebx, dword [esp + 0x314]
imul eax, edx, 0x38
inc edx
mov dword [edi + eax + 4], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x120], edx
mov dword [edi + eax], ecx
mov ecx, dword [esp + 0x3ac]
mov dword [edi + eax + 8], ecx
mov ecx, dword [esp + 0xfc]
mov dword [edi + eax + 0xc], ecx
mov ecx, dword [esp + 0xe4]
mov dword [edi + eax + 0x10], ecx
mov ecx, dword [esp + 0xf8]
mov dword [edi + eax + 0x14], ecx
mov ecx, dword [esp + 0xe8]
mov dword [edi + eax + 0x18], ecx
mov ecx, dword [esp + 0xc8]
mov dword [edi + eax + 0x1c], ecx
mov ecx, dword [esp + 0xcc]
mov dword [edi + eax + 0x20], ecx
mov ecx, dword [esp + 0xe0]
mov dword [edi + eax + 0x24], ecx
mov ecx, dword [esp + 0x168]
mov dword [edi + eax + 0x28], ecx
mov ecx, dword [esp + 0x16b]
mov dword [edi + eax + 0x2b], ecx
mov ecx, dword [esp + 0x310]
mov byte [edi + eax + 0x2f], cl
mov ecx, ebx
mov word [edi + eax + 0x30], bx
shr ecx, 0x10
mov byte [edi + eax + 0x32], cl
mov ecx, dword [esp + 0x30c]
mov dword [edi + eax + 0x33], ecx
mov ecx, dword [esp + 0x308]
mov byte [edi + eax + 0x37], cl
mov edi, dword [esp + 0x304]
mov ecx, dword [esp + 0x300]
mov dword [esp + 0x504], edx
cmp edi, dword [esp + 0x3a0]
sbb ecx, dword [esp + 0xa0]
jb 0x5cbfa5
mov ebx, 0x2e
mov edi, dword [esp + 0x4b8]
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x20]
movsd xmm0, qword [esp + 0x460]
mov edx, dword [esp + 0x504]
movdqa xmm1, xmmword [esp + 0x450]
mov dword [esp + 0x668], edi
mov edi, dword [esp + 0x9c]
add dword [esp + 0x8c], eax
test ecx, ecx
movsd qword [esp + 0x3f0], xmm0
movaps xmm0, xmmword [esp + 0x440]
mov dword [esp + 0x110], edx
mov edx, dword [esp + 0xec]
movdqa xmmword [esp + 0x3e0], xmm1
cmove edi, ecx
mov ecx, dword [esp + 0xc4]
movaps xmmword [esp + 0x3d0], xmm0
movsd xmm0, qword [esp + 0x4b0]
mov dword [esp + 0x3cc], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x9c], edi
mov dword [esp + 0x3c8], ecx
mov ecx, dword [esp + 0x13c]
movsd qword [esp + 0x660], xmm0
movq xmm0, qword [esp + 0x4fc]
mov dword [esp + 0x3c4], edx
mov edx, dword [esp + 0x140]
mov dword [esp + 0x3c0], ecx
mov ecx, dword [esp + 0xf4]
movq qword [esp + 0x108], xmm0
mov dword [esp + 0x3b8], edx
mov dword [esp + 0x3bc], ecx
mov eax, dword [esp + 0x218]
xor eax, 0x2f
or eax, dword [esp + 0x21c]
jne 0x5cae5c
jmp 0x5cae68
mov eax, dword [0x6dd42c]
mov dword [esp + 0xdc], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0xc4], eax
jmp 0x5cc48d
cmp dword [esp + 0x50], 0
jne 0x5cc5e5
mov eax, dword [esp + 0x30]
dec eax
cmp eax, dword [esp + 0x630]
jae 0x5cc5e5
imul eax, eax, 0x68
add eax, dword [esp + 0x628]
mov dword [esp + 0x10], eax
jmp 0x5cc6a4
mov eax, dword [esp + 0x638]
mov byte [esp + 0x70], 0x12
test eax, eax
mov dword [esp + 0x10], eax
je 0x5cdf03
mov eax, dword [esp + 0x634]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov esi, 0x10
movzx eax, word [eax + 0x4d6]
mov dword [esp + 0x44], eax
imul eax, eax, 0x68
mov dword [esp + 8], eax
mov eax, 0xffffffff
mov ecx, dword [esp + 8]
lea edx, [ecx + esi]
cmp edx, 0x10
je 0x5cc67d
mov ecx, dword [esp + 0x10]
xor ebx, ebx
mov edi, dword [ecx + eax*8 + 0xc]
mov edx, dword [ecx + eax*8 + 8]
mov ecx, dword [esp + 0x30]
mov dword [esp + 4], edi
xor edi, dword [esp + 0x50]
mov dword [esp + 0x1c], edx
xor edx, ecx
or edx, edi
setne bl
cmp ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x50]
sbb ecx, dword [esp + 4]
mov ecx, 0xff
cmovb ebx, ecx
inc eax
add esi, 0xffffff98
cmp bl, 1
je 0x5cc628
cmp bl, 0xff
je 0x5cc681
jmp 0x5cc6a0
mov eax, dword [esp + 0x44]
sub dword [esp + 0x14], 1
jb 0x5cdf03
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + eax*4 + 0x4d8]
mov dword [esp + 0x10], ecx
jmp 0x5cc608
sub dword [esp + 0x10], esi
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x62], 1
jne 0x5cc6b9
mov dword [esp + 0x450], 1
mov ecx, dword [esp + 0x10]
add ecx, 8
call fcn.0049fa70
mov ecx, dword [esp + 0x104]
mov esi, eax
test edx, edx
mov dword [esp + 0x1c], ecx
je 0x5cca3f
mov eax, edx
xor ebx, ebx
mov dword [esp + 0x70], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 0x50], 0
mov dword [esp + 4], 0
shl eax, 4
add eax, esi
mov dword [esp + 0x30], eax
jmp 0x5cc77b
lea ecx, [esp + 0x1e0]
lea edx, [esp + 0x320]
call fcn.005cfdb0
mov eax, dword [esp + 0x1e0]
mov ecx, dword [esp + 0x70]
mov edx, 1
xor eax, 0x26
or eax, dword [esp + 0x1e4]
movzx eax, word [esp + 0x13a]
cmove ax, word [esp + 0x1e8]
cmove ecx, edx
mov dword [esp + 0x70], ecx
mov word [esp + 0x13a], ax
add esi, 0x10
cmp esi, dword [esp + 0x30]
je 0x5cca7c
movzx edi, word [esi + 0xa]
mov eax, dword [esp + 0x448]
lea ecx, [esp + 0x1e0]
lea edx, [esp + 0x440]
push edi
push dword [esi + 8]
push dword [esi + 4]
push dword [esi]
push dword [eax + 0x28]
call fcn.005ce640
add esp, 0x14
mov eax, dword [esp + 0x1e0]
xor eax, 1
or eax, dword [esp + 0x1e4]
je 0x5ce0a2
lea eax, [esp + 0x1e8]
movq xmm0, qword [eax + 0x10]
movq xmm1, qword [eax]
movq xmm2, qword [eax + 8]
movq qword [esp + 0x330], xmm0
movq qword [esp + 0x320], xmm1
movq qword [esp + 0x328], xmm2
movq qword [esp + 0x180], xmm0
movzx eax, word [esp + 0x330]
cmp ax, 0x12
jg 0x5cc876
cmp ax, 0x11
je 0x5cc907
cmp ax, 0x12
jne 0x5cc76e
lea ecx, [esp + 0x1e0]
lea edx, [esp + 0x320]
call fcn.005cfdb0
movzx eax, byte [esp + 0x1e0]
test al, 0x3f
je 0x5cc979
cmp al, 7
jne 0x5cc76e
mov eax, dword [esp + 0x1e8]
mov ecx, dword [esp + 0x1ec]
mov dword [esp + 0x14], 0
mov dword [esp + 0x44], 1
mov dword [esp + 0x3b4], eax
mov dword [esp + 0x3b0], ecx
jmp 0x5cc76e
cmp ax, 0x13
je 0x5cc721
cmp ax, 0x55
jne 0x5cc76e
lea ecx, [esp + 0x1e0]
lea edx, [esp + 0x320]
call fcn.005cfdb0
movzx eax, byte [esp + 0x1e0]
mov ecx, eax
and cl, 0x3f
cmp cl, 0x18
je 0x5cc9aa
xor ebx, ebx
cmp al, 0x16
jne 0x5cc76e
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x1e8]
mov ebx, 1
cmp byte [ecx + 0x74], 1
mov dword [esp + 0x100], eax
jne 0x5cc76e
cmp word [esp + 0x572], 4
ja 0x5cc76e
mov eax, dword [esp + 0x100]
add eax, dword [esp + 0x65c]
mov dword [esp + 0x100], eax
jmp 0x5cc76e
lea ecx, [esp + 0x1e0]
lea edx, [esp + 0x320]
call fcn.005cfdb0
mov eax, dword [esp + 0x1e0]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x124]
or eax, dword [esp + 0x1e4]
mov eax, 0
cmove ecx, eax
mov eax, 1
cmove edx, dword [esp + 0x1ec]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x124], edx
cmove ecx, eax
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x128]
cmove ecx, dword [esp + 0x1e8]
mov dword [esp + 0x128], ecx
jmp 0x5cc76e
mov eax, dword [esp + 0x1e8]
mov ecx, dword [esp + 0x1ec]
mov dword [esp + 8], 0
mov dword [esp + 0x10], 1
mov dword [esp + 0x31c], eax
mov dword [esp + 0x318], ecx
jmp 0x5cc76e
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x65c]
mov edi, dword [eax + 0x6c]
mov ecx, dword [eax + 0x68]
mov dword [esp + 0x28], edx
sub edi, edx
jb 0x5ce119
mov ebx, dword [esp + 0x570]
mov eax, dword [esp + 0x1e8]
xor edx, edx
cmp bh, 8
sete dl
lea edx, [edx*4 + 4]
mul edx
mov edx, 0x35
jo 0x5ce16c
add ecx, dword [esp + 0x28]
sub edi, eax
jb 0x5ce119
add ecx, eax
cmp bh, 8
jne 0x5cca18
cmp edi, 8
jb 0x5ce119
cmp dword [ecx + 4], 0
je 0x5cca21
jmp 0x5ce16c
cmp edi, 4
jb 0x5ce119
mov eax, dword [ecx]
mov ecx, dword [esp + 0x28]
mov ebx, 1
mov dword [esp + 0x100], eax
add dword [esp + 0x100], ecx
jmp 0x5cc76e
mov dword [esp + 0x70], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 0x50], 0
mov dword [esp + 4], 0
jmp 0x5ccbfd
cmp ebx, 1
jne 0x5ccbfd
mov eax, dword [esp + 0x570]
mov edi, dword [esp + 0x1c]
xor edx, edx
mov esi, eax
shr esi, 0x10
cmp si, 5
setae dl
mov ecx, dword [edi + edx*8 + 0x60]
mov edx, dword [edi + edx*8 + 0x64]
sub edx, dword [esp + 0x100]
jb 0x5ce18e
xor ebx, ebx
cmp si, 5
mov esi, dword [esp + 0x1c]
setae bl
add ecx, dword [esp + 0x100]
mov edi, dword [esi + 0x10]
mov dword [esp + 0x30], edi
mov edi, dword [esi + 0x14]
mov esi, dword [esp + 0x57c]
mov dword [esp + 0x1e4], esi
mov esi, dword [esp + 0x578]
mov dword [esp + 0x1e0], esi
mov dword [esp + 0x1e8], ecx
mov dword [esp + 0x1ec], edx
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x654]
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1f4], ebx
mov dword [esp + 0x1f8], edx
mov dword [esp + 0x1fc], edi
mov dword [esp + 0x200], ecx
jmp 0x5ccb65
mov eax, dword [esp + 0xb8]
movdqa xmm0, xmmword [esp + 0x30]
mov esi, dword [esp + 0x144]
mov ecx, edx
inc edx
shl ecx, 5
mov dword [eax + ecx + 4], 0
mov dword [eax + ecx], 0
movdqu xmmword [eax + ecx + 8], xmm0
mov dword [eax + ecx + 0x18], esi
mov dword [esp + 0xc0], edx
lea ecx, [esp + 0x170]
lea edx, [esp + 0x1e0]
call fcn.005d06c0
mov eax, dword [esp + 0x170]
xor eax, 1
or eax, dword [esp + 0x174]
je 0x5ce0e0
cmp dword [esp + 0x178], 1
jne 0x5ccddd
movdqu xmm1, xmmword [esp + 0x180]
pshufd xmm0, xmm1, 0x55
pshufd xmm2, xmm1, 0xff
movd ecx, xmm1
movdqa xmmword [esp + 0x30], xmm1
pshufd xmm1, xmm1, 0xee
movd esi, xmm1
movd eax, xmm0
movd edx, xmm2
cmp ecx, esi
sbb eax, edx
jae 0x5ccb65
mov edx, dword [esp + 0xc0]
cmp edx, dword [esp + 0xbc]
jne 0x5ccb2b
lea ecx, [esp + 0xb8]
call fcn.005d6980
mov edx, dword [esp + 0xc0]
jmp 0x5ccb2b
mov edx, dword [esp + 0x150]
test edx, edx
je 0x5ccc39
mov esi, dword [esp + 0x148]
xor eax, eax
mov edi, edx
mov ecx, edx
jmp 0x5ccc20
inc edi
mov eax, edi
mov edi, ecx
sub edi, eax
jbe 0x5ccc39
mov ebx, dword [esp + 0x48]
shr edi, 1
add edi, eax
cmp ebx, dword [esi + edi*8]
ja 0x5ccc17
je 0x5cccf7
mov ecx, edi
sub edi, eax
ja 0x5ccc20
mov eax, dword [esp + 0x50]
xor eax, 1
or eax, dword [esp + 4]
jne 0x5ccddd
mov eax, dword [esp + 0x10]
xor eax, 1
or eax, dword [esp + 8]
jne 0x5ccd29
mov eax, dword [esp + 0x31c]
mov ecx, dword [esp + 0x124]
cmp dword [esp + 0x128], eax
sbb ecx, dword [esp + 0x318]
jae 0x5ccddd
mov edx, dword [esp + 0xc0]
cmp edx, dword [esp + 0xbc]
jne 0x5ccca0
lea ecx, [esp + 0xb8]
call fcn.005d6980
mov edx, dword [esp + 0xc0]
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x124]
mov ebx, dword [esp + 0x128]
mov edi, dword [esp + 0x318]
mov ecx, edx
shl ecx, 5
mov dword [eax + ecx + 4], 0
mov dword [eax + ecx], 0
mov dword [eax + ecx + 8], ebx
mov dword [eax + ecx + 0xc], esi
mov dword [eax + ecx + 0x14], edi
mov ebx, dword [esp + 0x31c]
mov edi, dword [esp + 0x144]
mov dword [eax + ecx + 0x10], ebx
mov dword [eax + ecx + 0x18], edi
jmp 0x5ccdc9
dec edi
mov ecx, edi
cmp ecx, 0xffffffff
je 0x5ccdd3
cmp edi, edx
jae 0x5ce2ca
mov ebx, dword [esp + 0x48]
lea eax, [ecx - 1]
cmp dword [esi + ecx*8], ebx
mov ecx, eax
je 0x5cccfa
lea ecx, [eax + 2]
cmp edx, ecx
jae 0x5ccdd5
jmp 0x5ce2d9
mov eax, dword [esp + 0x44]
xor eax, 1
or eax, dword [esp + 0x14]
jne 0x5ccddd
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x128]
mov edi, dword [esp + 0x3b0]
mov ecx, dword [esp + 0x124]
add esi, eax
adc edi, ecx
cmp eax, esi
mov ecx, ecx
sbb ecx, edi
jae 0x5ccddd
mov edx, dword [esp + 0xc0]
cmp edx, dword [esp + 0xbc]
jne 0x5ccd85
lea ecx, [esp + 0xb8]
call fcn.005d6980
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xb8]
mov ebx, dword [esp + 0x124]
mov eax, edx
shl eax, 5
mov dword [ecx + eax + 4], 0
mov dword [ecx + eax], 0
mov dword [ecx + eax + 0xc], ebx
mov ebx, dword [esp + 0x128]
mov dword [ecx + eax + 8], ebx
mov dword [ecx + eax + 0x14], edi
mov edi, dword [esp + 0x144]
mov dword [ecx + eax + 0x10], esi
mov dword [ecx + eax + 0x18], edi
inc edx
mov dword [esp + 0xc0], edx
jmp 0x5ccddd
xor ecx, ecx
cmp ecx, edx
jne 0x5ccea3
push 0x118
lea eax, [esp + 0x54c]
push eax
lea eax, [esp + 0x1e8]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov esi, dword [esp + 0x15c]
cmp esi, dword [esp + 0x158]
jne 0x5cce1f
lea ecx, [esp + 0x154]
mov edx, esi
call fcn.005d8780
mov esi, dword [esp + 0x15c]
mov edi, dword [esp + 0x154]
imul ebx, esi, 0x150
lea eax, [edi + ebx]
push 0x118
lea ecx, [esp + 0x1e4]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x48]
mov dword [edi + ebx + 0x118], 2
mov dword [edi + ebx + 0x130], 2
movzx ecx, word [esp + 0x13a]
mov edx, dword [esp + 0x4c]
inc esi
mov dword [edi + ebx + 0x148], eax
mov eax, dword [esp + 0x70]
mov word [edi + ebx + 0x14c], ax
mov word [edi + ebx + 0x14e], cx
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x15c], esi
test ecx, ecx
jne 0x5c8b5c
jmp 0x5cd272
lea eax, [esi + edx*8]
lea ecx, [esi + ecx*8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
cmp dword [ecx], eax
jne 0x5ccddd
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x18]
mov eax, dword [eax + 4]
mov ecx, dword [ecx + 0x1c]
sub ecx, eax
mov dword [esp + 0x50], edx
jb 0x5ce1ac
mov edx, dword [esp + 0x50]
add edx, eax
mov dword [esp + 0x170], edx
mov dword [esp + 0x174], ecx
lea ecx, [esp + 0x1e0]
lea edx, [esp + 0x170]
push eax
call fcn.005d7700
add esp, 4
mov eax, dword [esp + 0x1f0]
cmp dword [esp + 0x1e0], 1
mov ecx, dword [esp + 0x1f4]
mov dword [esp + 0x50], eax
mov dword [esp + 0x30], ecx
je 0x5ce1bc
cmp dword [esp + 0x30], 0
je 0x5cd258
mov al, byte [esp + 0x1f8]
mov cl, byte [esp + 0x1fc]
mov byte [esp + 0x14], al
add al, al
mov byte [esp + 0x44], cl
add al, cl
movzx eax, al
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x28]
jb 0x5cd258
cmp byte [esp + 0x44], 8
mov al, 0x17
ja 0x5ce2ed
mov ah, byte [esp + 0x44]
xor edx, edx
mov dword [esp + 4], 0
movzx ecx, ah
mov bl, ah
mov ecx, dword [ecx*4 + 0x5ce460]
add ecx, dword [esp + 0xa4]
jmp ecx
mov eax, dword [esp + 0x2c]
add eax, 8
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
jne 0x5cceb1
jmp 0x5ccddd
mov edi, dword [esp + 0xc0]
mov ebx, dword [esp + 0xb8]
cmp edi, 0x15
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], ebx
jae 0x5cd40d
cmp edi, 2
jb 0x5cdbc6
mov eax, edi
lea edx, [edi - 1]
mov dword [esp + 0x50], 0
shl eax, 5
add eax, ebx
jmp 0x5cd2f4
mov edx, dword [esp + 0x70]
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x30]
mov dword [ebx], esi
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], edi
mov edx, dword [esp + 0x4c]
movq xmm0, qword [esp + 0x1e0]
movq xmm1, qword [esp + 0x1e8]
movq qword [ebx + 0x10], xmm0
movq qword [ebx + 0x18], xmm1
add dword [esp + 0x50], 0xffffffe0
test edx, edx
je 0x5cdbcc
mov edi, dword [esp + 0x24]
mov ebx, edx
dec edx
shl ebx, 5
mov esi, edx
shl esi, 5
mov ecx, dword [edi + ebx + 0xc]
mov dword [esp + 0x30], ecx
mov ecx, dword [edi + esi + 8]
mov dword [esp + 0x70], ecx
cmp dword [edi + ebx + 8], ecx
mov ecx, dword [edi + esi + 0xc]
sbb dword [esp + 0x30], ecx
jae 0x5cd2e7
mov edi, dword [esp + 0x24]
mov dword [esp + 4], ecx
mov dword [esp + 0x4c], edx
lea ecx, [edi + esi]
movsd xmm0, qword [edi + esi + 0x10]
movsd xmm1, qword [edi + esi + 0x18]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x1c]
sub dword [esp + 0x30], edx
cmp dword [esp + 0x30], 3
mov edx, dword [ecx + 4]
mov esi, dword [ecx]
movsd qword [esp + 0x1e8], xmm1
movsd qword [esp + 0x1e0], xmm0
movsd xmm0, qword [edi + ebx + 0x18]
mov dword [esp + 0x30], edx
movsd qword [ecx + 0x18], xmm0
movsd xmm0, qword [edi + ebx + 0x10]
movsd qword [ecx + 0x10], xmm0
movq xmm0, qword [edi + ebx]
movq xmm1, qword [edi + ebx + 8]
lea ebx, [edi + ebx]
movq qword [ecx + 8], xmm1
movq qword [ecx], xmm0
jb 0x5cd2b0
mov edx, dword [esp + 0x70]
mov dword [esp + 0x48], esi
mov esi, dword [ecx + 0x4c]
mov edi, dword [esp + 4]
cmp dword [ecx + 0x48], edx
mov ecx, dword [esp + 0x50]
sbb esi, edi
jae 0x5cd404
nop dword [eax]
movsd xmm0, qword [eax + ecx + 0x18]
mov ebx, ecx
movsd qword [eax + ecx - 8], xmm0
movsd xmm0, qword [eax + ecx + 0x10]
movsd qword [eax + ecx - 0x10], xmm0
movq xmm0, qword [eax + ecx]
movq xmm1, qword [eax + ecx + 8]
movq qword [eax + ecx - 0x18], xmm1
movq qword [eax + ecx - 0x20], xmm0
add ecx, 0x20
je 0x5cd402
mov esi, dword [eax + ebx + 0x2c]
cmp dword [eax + ebx + 0x28], edx
sbb esi, edi
jb 0x5cd3c0
add ebx, eax
mov esi, dword [esp + 0x48]
jmp 0x5cd2b8
mov eax, edi
mov ecx, 0x20
xor ebx, ebx
shr eax, 1
mul ecx
setno cl
jo 0x5ce024
mov bl, cl
shl ebx, 3
test eax, eax
js 0x5ce024
mov esi, edi
mov dword [esp + 0x9c], eax
je 0x5cdcd6
mov eax, dword [0x6f1130]
test eax, eax
jne 0x5cd45a
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x5cdce0
mov dword [0x6f1130], eax
push dword [esp + 0x9c]
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x5cdce0
mov ecx, dword [esp + 0x24]
mov ebx, dword [0x6d6b64]
xor edi, edi
mov dword [esp + 4], eax
lea edx, [ecx - 0x58]
add ecx, 0xffffffe0
mov dword [esp + 0x548], ebx
mov dword [esp + 0x54c], 0
mov dword [esp + 0x550], 0
mov dword [esp + 0xa4], ecx
mov ecx, esi
mov dword [esp + 0x20], edx
jmp 0x5cd4d5
mov edi, 1
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 4]
test ecx, ecx
je 0x5cdb81
mov edx, ecx
mov dword [esp + 0x44], edi
dec edx
je 0x5cd550
mov edi, ecx
mov eax, ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x50], ebx
mov ebx, edx
mov dword [esp + 0x6c], edx
shl edi, 5
shl ebx, 5
mov dword [esp + 0x1c], eax
mov edx, dword [edi + ecx - 0x38]
mov esi, dword [ecx + ebx + 0xc]
cmp dword [ecx + ebx + 8], edx
mov ebx, dword [edi + ecx - 0x34]
sbb esi, ebx
jae 0x5cd560
mov ecx, dword [esp + 0x20]
lea esi, [ecx + edi]
mov ecx, dword [esp + 0x6c]
nop dword [eax]
cmp ecx, 1
je 0x5cd59d
mov eax, dword [esi]
dec ecx
mov dword [esp + 0x70], eax
mov eax, dword [esi + 4]
add esi, 0xffffffe0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x70]
cmp edx, eax
mov edx, eax
sbb ebx, dword [esp + 0x30]
mov ebx, dword [esp + 0x30]
jb 0x5cd520
jmp 0x5cd59f
mov dword [esp + 0x30], 1
jmp 0x5cd830
add edi, dword [esp + 0x20]
lea ecx, [eax - 2]
xor esi, esi
mov dword [esp + 0x30], ecx
nop dword [eax]
cmp dword [esp + 0x30], esi
je 0x5cd824
mov ecx, dword [edi]
mov eax, dword [edi + 4]
inc esi
add edi, 0xffffffe0
cmp edx, ecx
mov edx, ecx
sbb ebx, eax
mov ebx, eax
jae 0x5cd570
mov ecx, dword [esp + 0x6c]
sub ecx, esi
inc esi
mov dword [esp + 0x30], esi
jmp 0x5cd621
xor ecx, ecx
mov edx, dword [esp + 0x1c]
mov eax, edx
sub eax, ecx
mov dword [esp + 0x30], eax
jb 0x5ce015
cmp edx, dword [esp + 0x2c]
ja 0x5ce02b
cmp dword [esp + 0x30], 2
jb 0x5cd621
mov ebx, ecx
mov eax, dword [esp + 0x30]
add edi, dword [esp + 0xa4]
shl ebx, 5
add ebx, dword [esp + 0x24]
shr eax, 1
nop dword [eax + eax]
movsd xmm2, qword [edi + 0x18]
movdqu xmm0, xmmword [ebx]
movdqu xmm1, xmmword [ebx + 0x10]
movsd qword [ebx + 0x18], xmm2
movsd xmm2, qword [edi + 0x10]
movsd qword [ebx + 0x10], xmm2
movq xmm2, qword [edi]
movsd xmm3, qword [edi + 8]
movsd qword [ebx + 8], xmm3
movq qword [ebx], xmm2
movdqu xmmword [edi], xmm0
movdqu xmmword [edi + 0x10], xmm1
add ebx, 0x20
add edi, 0xffffffe0
dec eax
jne 0x5cd5e0
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x2c]
test ecx, ecx
je 0x5cd820
cmp dword [esp + 0x30], 9
ja 0x5cd820
mov edx, dword [esp + 0x1c]
mov esi, ecx
cmp edx, eax
mov eax, edx
ja 0x5ce060
mov edi, esi
mov ecx, esi
shl edi, 5
not ecx
mov edx, edi
add ecx, eax
xor edx, 0xffffffe0
mov dword [esp + 0x48], ecx
mov dword [esp + 0x10], edx
nop word cs:[eax + eax]
nop
mov edx, dword [esp + 0x1c]
lea eax, [esi - 1]
sub edx, eax
mov dword [esp + 0x30], edx
jb 0x5cded9
cmp dword [esp + 0x30], 1
jbe 0x5cd7f2
mov ecx, dword [esp + 0x24]
shl esi, 5
mov edx, eax
mov dword [esp + 0x28], eax
shl edx, 5
mov eax, dword [ecx + esi + 0xc]
mov ebx, dword [ecx + edx + 0xc]
mov dword [esp + 0x6c], eax
mov eax, dword [ecx + edx + 8]
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x4c], eax
cmp dword [ecx + esi + 8], eax
mov eax, dword [esp + 0x70]
sbb dword [esp + 0x6c], eax
mov eax, dword [esp + 0x28]
jae 0x5cd7f2
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x24]
cmp dword [esp + 0x30], 3
lea eax, [esi + edx]
movsd xmm0, qword [esi + edx + 0x10]
movsd xmm1, qword [esi + edx + 0x18]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
movsd qword [esp + 0x1e8], xmm1
movsd qword [esp + 0x1e0], xmm0
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x6c]
movsd xmm0, qword [esi + ecx + 0x18]
movsd qword [eax + 0x18], xmm0
movsd xmm0, qword [esi + ecx + 0x10]
movsd qword [eax + 0x10], xmm0
movq xmm0, qword [esi + ecx]
movq xmm1, qword [esi + ecx + 8]
lea ecx, [esi + ecx]
movq qword [eax + 8], xmm1
movq qword [eax], xmm0
jb 0x5cd7bb
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x6c], edx
mov edx, dword [eax + 0x4c]
cmp dword [eax + 0x48], ebx
mov eax, dword [esp + 0x48]
sbb edx, dword [esp + 0x70]
mov edx, dword [esp + 0x24]
jae 0x5cd7ad
nop word [eax + eax]
movsd xmm0, qword [edx + edi + 0x38]
mov ecx, edx
dec eax
movsd qword [edx + edi + 0x18], xmm0
movsd xmm0, qword [edx + edi + 0x30]
movsd qword [edx + edi + 0x10], xmm0
movq xmm0, qword [edx + edi + 0x20]
movq xmm1, qword [edx + edi + 0x28]
movq qword [edx + edi + 8], xmm1
movq qword [edx + edi], xmm0
je 0x5cd7a9
mov esi, dword [esp + 0x4c]
mov ebx, dword [ecx + edi + 0x4c]
lea edx, [ecx + 0x20]
cmp dword [ecx + edi + 0x48], esi
sbb ebx, dword [esp + 0x70]
jb 0x5cd760
sub ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x6c]
jmp 0x5cd7bf
mov eax, dword [esp + 8]
mov dword [ecx], eax
mov eax, dword [esp + 0x4c]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x70]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x28]
movq xmm0, qword [esp + 0x1e0]
movq xmm1, qword [esp + 0x1e8]
movq qword [ecx + 0x10], xmm0
movq qword [ecx + 0x18], xmm1
test eax, eax
je 0x5cd832
add dword [esp + 0x10], 0x20
add edi, 0xffffffe0
inc dword [esp + 0x48]
cmp dword [esp + 0x30], 0xa
mov esi, eax
jb 0x5cd670
jmp 0x5cd832
mov eax, ecx
jmp 0x5cd832
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x30], eax
xor eax, eax
mov edi, dword [esp + 0x44]
cmp edi, dword [esp + 0x54c]
jne 0x5cd85f
mov edx, edi
lea ecx, [esp + 0x548]
mov edi, eax
call fcn.005c7320
mov eax, edi
mov ebx, dword [esp + 0x548]
mov edi, dword [esp + 0x550]
mov dword [esp + 0x28], eax
mov dword [ebx + edi*8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], ebx
mov dword [ebx + edi*8 + 4], eax
inc edi
cmp edi, 2
mov eax, edi
mov dword [esp + 0x550], edi
jae 0x5cd8f4
jmp 0x5cd4c5
mov esi, dword [esp + 0x48]
mov eax, edx
mov edx, ebx
sub ecx, eax
and ecx, 0xffffffe0
push ecx
push eax
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 8]
mov dword [ebx + eax*8], ecx
add edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x6c]
mov dword [ebx + eax*8 + 4], edx
lea eax, [ebx + ecx*8]
lea edx, [esi*8 - 0x10]
lea ecx, [ebx + ecx*8 + 8]
push edx
push ecx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x1c]
cmp eax, 1
mov dword [esp + 0x550], eax
jbe 0x5cd4c0
cmp dword [ebx + eax*8 - 8], 0
lea esi, [eax - 1]
mov edi, eax
mov dword [esp + 0x1c], esi
je 0x5cd950
mov edx, dword [ebx + edi*8 - 0xc]
mov eax, dword [ebx + esi*8 + 4]
cmp edx, eax
jbe 0x5cd950
cmp edi, 3
jb 0x5cdb6d
lea ecx, [edi - 3]
lea esi, [eax + edx]
mov dword [esp + 0x4c], ecx
mov ecx, dword [ebx + edi*8 - 0x14]
cmp ecx, esi
jbe 0x5cd968
cmp edi, 4
jb 0x5cdb77
add edx, ecx
cmp dword [ebx + edi*8 - 0x1c], edx
jbe 0x5cd968
jmp 0x5cd4c5
cmp edi, 3
jb 0x5cd970
mov ebx, dword [esp + 0x50]
lea ecx, [edi - 3]
mov dword [esp + 0x4c], ecx
mov eax, dword [ebx + esi*8 + 4]
mov ecx, dword [ebx + edi*8 - 0x14]
mov ebx, dword [esp + 0x4c]
cmp ecx, eax
jb 0x5cd973
lea ebx, [edi - 2]
lea eax, [ebx + 1]
cmp edi, eax
jbe 0x5cdda3
mov edx, edi
sub edx, ebx
mov dword [esp + 0x48], edx
jbe 0x5cddb6
mov edx, dword [esp + 0x50]
mov ecx, dword [edx + ebx*8 + 8]
mov edi, dword [edx + ebx*8 + 4]
mov edx, dword [edx + ebx*8]
add edx, edi
mov esi, edx
sub esi, ecx
jb 0x5cde89
cmp edx, dword [esp + 0x2c]
mov dword [esp + 0x10], edi
ja 0x5cdeaf
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], ecx
shl ecx, 5
shl edx, 5
mov dword [esp + 0x4c], ebx
add ecx, dword [esp + 0x24]
mov dword [esp + 0x14], edx
mov edx, esi
mov edi, dword [eax + ebx*8 + 0xc]
mov dword [esp + 0x30], ecx
mov eax, edi
sub edx, edi
mov dword [esp + 0x44], edi
shl eax, 5
cmp edx, edi
lea ebx, [ecx + eax]
jae 0x5cdaa0
mov esi, edx
mov dword [esp + 0x70], edx
shl esi, 5
push esi
push ebx
push dword [esp + 0xc]
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x10]
mov ecx, esi
add esp, 0xc
add ecx, edx
test edi, edi
jle 0x5cd890
cmp dword [esp + 0x70], 0
jle 0x5cd890
mov esi, dword [esp + 0x14]
add esi, dword [esp + 0xa4]
mov eax, dword [ecx - 0x18]
mov edi, dword [ecx - 0x14]
cmp eax, dword [ebx - 0x18]
sbb edi, dword [ebx - 0x14]
jb 0x5cda50
add ecx, 0xffffffe0
mov eax, ecx
jmp 0x5cda55
add ebx, 0xffffffe0
mov eax, ebx
movsd xmm1, qword [eax + 8]
movq xmm0, qword [eax]
cmp dword [esp + 0x30], ebx
movsd qword [esi + 8], xmm1
movsd xmm1, qword [eax + 0x10]
movsd qword [esi + 0x10], xmm1
movq xmm1, qword [eax + 0x18]
movq qword [esi], xmm0
movq qword [esi + 0x18], xmm1
jae 0x5cd890
add esi, 0xffffffe0
cmp ecx, edx
ja 0x5cda30
jmp 0x5cd890
push eax
push ecx
push dword [esp + 0xc]
mov dword [esp + 0x7c], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x10]
add esp, 0xc
add ecx, eax
test edi, edi
jle 0x5cdb60
cmp esi, edi
jle 0x5cdb60
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x70], ecx
add esi, dword [esp + 0x24]
nop dword [eax]
mov edi, eax
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x30], edx
mov edx, edi
cmp eax, dword [edi + 8]
sbb ecx, dword [edi + 0xc]
setae al
cmovb edx, ebx
setb cl
movzx eax, al
movsd xmm1, qword [edx + 8]
movq xmm0, qword [edx]
shl eax, 5
add eax, edi
mov edi, dword [esp + 0x30]
cmp eax, dword [esp + 0x70]
movsd qword [edi + 8], xmm1
movsd xmm1, qword [edx + 0x10]
movsd qword [edi + 0x10], xmm1
movq xmm1, qword [edx + 0x18]
lea edx, [edi + 0x20]
movq qword [edi], xmm0
movq qword [edi + 0x18], xmm1
jae 0x5cdb44
movzx ecx, cl
shl ecx, 5
add ebx, ecx
cmp ebx, esi
jb 0x5cdae0
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x70]
jmp 0x5cd898
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x30]
jmp 0x5cd898
mov edi, 2
jmp 0x5cd4c5
mov edi, 3
jmp 0x5cd4c5
test dword [esp + 0x54c], 0x1fffffff
je 0x5cdba0
push ebx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 4]
cmp dword [esp + 0x9c], 0
je 0x5cdbb8
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov ebx, dword [esp + 0xb8]
mov edi, dword [esp + 0xc0]
test edi, edi
jne 0x5cdbd8
jmp 0x5cdc1b
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
test edi, edi
je 0x5cdc1b
add ebx, 0x10
shl edi, 5
xor eax, eax
xor ecx, ecx
nop word cs:[eax + eax]
nop dword [eax]
mov edx, dword [ebx]
mov esi, dword [ebx + 4]
mov dword [esp + 0x24], ebx
mov ebx, edi
cmp edx, eax
mov edi, esi
sbb edi, ecx
mov edi, ebx
mov ebx, dword [esp + 0x24]
cmovae eax, edx
cmovae ecx, esi
mov dword [ebx - 0xc], ecx
mov dword [ebx - 0x10], eax
add ebx, 0x20
add edi, 0xffffffe0
jne 0x5cdbf0
mov eax, dword [esp + 0x15c]
movq xmm0, qword [esp + 0x154]
movsd xmm1, qword [esp + 0xb8]
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0x1f4], eax
mov eax, dword [esp + 0xc0]
movq qword [esp + 0x1ec], xmm0
movsd qword [esp + 0x1e0], xmm1
movsd qword [ecx + 4], xmm1
movq xmm2, qword [esp + 0x1f0]
mov dword [esp + 0x1e8], eax
mov eax, dword [esp + 0x104]
movq xmm1, qword [esp + 0x1e8]
movq qword [ecx + 0x14], xmm2
movq qword [ecx + 0xc], xmm1
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x14c]
mov dword [ecx + 0x20], 0
mov dword [ecx], 0
test eax, eax
je 0x5ce003
mov ecx, dword [esp + 0x148]
test ecx, ecx
je 0x5ce003
and eax, 0x1fffffff
je 0x5ce003
push ecx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x5ce003
mov eax, ebx
test eax, eax
jne 0x5cd471
mov ecx, dword [esp + 0x9c]
mov edx, ebx
call fcn.0040a640
ud2
xor edx, edx
mov eax, 0x13
jmp 0x5cddd9
xor esi, esi
mov eax, 0x13
xor edx, edx
mov edi, ecx
jmp 0x5cddd9
mov eax, 0x10
jmp 0x5cdd6a
and edx, 0xffffff00
mov eax, 0x35
mov esi, ecx
jmp 0x5cddd9
mov edi, dword [esp + 0x70]
xor esi, esi
mov eax, 0x13
xor edx, edx
jmp 0x5cddd9
xor edx, edx
mov eax, 0x11
mov edi, ecx
jmp 0x5cddd9
mov edi, dword [esp + 0x70]
xor edx, edx
mov eax, 0x13
jmp 0x5cddd9
mov ecx, eax
add ecx, 3
xor edx, edx
mov eax, 0x13
mov edi, ecx
jmp 0x5cddd9
mov eax, 0x35
xor esi, esi
xor edx, edx
jmp 0x5cddd9
mov edx, ebx
push 0x6d3eb0
call fcn.0045a150
add esp, 4
ud2
mov ecx, esi
mov edx, ebx
push 0x6d3ec0
call fcn.0045a150
add esp, 4
ud2
mov ecx, eax
mov edx, edi
push 0x6d3eb0
call fcn.0045a150
add esp, 4
ud2
mov ecx, ebx
mov edx, edi
push 0x6d3ec0
call fcn.0045a150
add esp, 4
ud2
mov eax, 0x3f
jmp 0x5cddd5
xor edx, edx
xor esi, esi
mov ecx, dword [esp + 0xf0]
or eax, edx
mov dword [ecx + 0xc], esi
mov dword [ecx + 8], eax
mov dword [ecx + 0x10], edi
mov dword [ecx + 0x14], edx
mov dword [ecx], 1
mov eax, dword [esp + 0x15c]
mov edi, dword [esp + 0x154]
test eax, eax
je 0x5cdf72
imul ebx, eax, 0x150
mov esi, edi
add ebx, edi
jmp 0x5cde2e
add esi, 0x150
cmp esi, ebx
je 0x5cdf72
mov ecx, esi
call fcn.005d7370
cmp dword [esi + 0x118], 2
jne 0x5cde50
cmp dword [esi + 0x130], 2
je 0x5cde20
jmp 0x5cde64
lea ecx, [esi + 0x118]
call fcn.005d66b0
cmp dword [esi + 0x130], 2
je 0x5cde20
lea ecx, [esi + 0x130]
call fcn.005d1b80
jmp 0x5cde20
mov edx, 5
push 0x61fd8c
call fcn.0045a150
add esp, 4
ud2
mov ecx, dword [esp + 0x4c]
push 0x6d3ed0
call fcn.0045ce70
add esp, 4
ud2
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x28]
push 0x6d3ed0
call fcn.0045ab50
add esp, 4
ud2
mov ecx, edx
mov edx, dword [esp + 0x2c]
push 0x6d3ed0
call fcn.0045ab50
add esp, 4
ud2
mov ecx, edx
mov edx, dword [esp + 0x24]
push 0x6d3ea0
call fcn.0045ce70
add esp, 4
ud2
mov edx, dword [esp + 0x1c]
mov ecx, eax
push 0x6d3ea0
call fcn.0045ce70
add esp, 4
ud2
not ebx
mov dword [esp + 0x440], esi
mov byte [esp + 0x70], 6
mov dword [esp + 0x444], ebx
jmp 0x5cdf2a
mov eax, dword [esp + 4]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x440], eax
mov dword [esp + 4], eax
mov dword [esp + 0x444], 0
xor eax, eax
mov byte [esp + 0x70], 0x13
mov edx, dword [esp + 0xf0]
movzx ecx, byte [esp + 0x70]
mov esi, dword [esp + 4]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], 0
mov dword [edx + 0x10], esi
mov dword [edx + 0x14], eax
mov dword [edx], 1
lea ecx, [esp + 0x548]
call fcn.005d7370
mov eax, dword [esp + 0x15c]
mov edi, dword [esp + 0x154]
test eax, eax
jne 0x5cde0a
mov eax, dword [esp + 0x158]
test eax, eax
je 0x5cdf95
imul eax, eax, 0x150
test eax, eax
je 0x5cdf95
push edi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x5cdfc0
mov ecx, dword [esp + 0xb8]
test ecx, ecx
je 0x5cdfc0
and eax, 0x7ffffff
je 0x5cdfc0
push ecx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x14c]
test eax, eax
je 0x5cdfeb
mov ecx, dword [esp + 0x148]
test ecx, ecx
je 0x5cdfeb
and eax, 0x1fffffff
je 0x5cdfeb
push ecx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x104]
lock dec dword [eax]
jne 0x5ce003
lea ecx, [esp + 0x104]
call fcn.005d7330
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp + 0x28]
mov ecx, ebx
jmp 0x5ce031
mov edx, ebx
push 0x6d3e90
call fcn.0045ce70
add esp, 4
ud2
call fcn.0040a620
ud2
mov ecx, edx
mov edx, dword [esp + 0x2c]
push 0x6d3e90
call fcn.0045ab50
add esp, 4
ud2
dec ecx
cmp ebx, ecx
jb 0x5cdec6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
push 0x6d3ea0
call fcn.0045ab50
add esp, 4
ud2
dec esi
cmp eax, esi
mov ecx, esi
jae 0x5ce07a
mov edx, dword [esp + 0x1c]
push 0x6d3ea0
call fcn.0045ce70
add esp, 4
ud2
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
push 0x6d3ea0
call fcn.0045ab50
add esp, 4
ud2
mov ecx, 0x50
mov edx, 8
call fcn.0040a640
ud2
lea eax, [esp + 0x1e8]
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
mov eax, dword [esp + 0xf0]
movq qword [esp + 0x178], xmm1
movq qword [esp + 0x170], xmm0
movq qword [eax + 0x10], xmm1
movq qword [eax + 8], xmm0
mov dword [eax], 1
jmp 0x5cdf50
movdqu xmm0, xmmword [esp + 0x178]
mov eax, dword [esp + 0xf0]
movdqu xmmword [eax + 8], xmm0
mov dword [eax], 1
jmp 0x5cdf50
mov ecx, str.assertion_failed:_src.len____dst.len__x9m
mov edx, 0x28
push 0x6d3ad0
call fcn.0045aec0
add esp, 4
ud2
xor eax, eax
mov edx, 0x13
jmp 0x5ce16c
mov ecx, 0x4d8
mov edx, 8
call fcn.0040a640
ud2
mov ecx, 0x508
mov edx, 8
call fcn.0040a640
ud2
mov edx, 0xb
push 0x6d3ae0
call fcn.0045ab50
add esp, 4
ud2
mov edx, 0xc
push 0x6d3af0
call fcn.0045ab50
add esp, 4
ud2
mov esi, dword [esp + 0xf0]
mov dword [esi + 8], edx
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], eax
mov dword [esi], 1
jmp 0x5cdf50
mov edx, 0x13
movd xmm1, eax
movd xmm2, ecx
movd xmm0, edx
punpckldq xmm0, xmm1
punpcklqdq xmm0, xmm2
jmp 0x5ce0e9
mov byte [esp + 0x1e8], 0x13
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x1e8]
mov edx, dword [esp + 0xf0]
mov ecx, dword [esp + 0x1ec]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x50]
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], eax
mov eax, dword [esp + 0x30]
jmp 0x5cdf47
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_532d2b14c05f9bc20b2d27cbb5f4550d28343a36librarycore_src_strpattern.rs
mov edx, 0x2b
push 0x6d3938
call fcn.0045aec0
add esp, 4
ud2
mov ecx, str.assertion_failed:_edge.height__self.height___1_rustc_532d2b14c05f9bc20b2d27cbb5f4550d28343a36library_alloc_srccollections_btree_node.rs
mov edx, 0x30
push 0x6d39d4
call fcn.0045aec0
add esp, 4
ud2
mov ecx, str.assertion_failed:_idx___CAPACITYx9m
mov edx, 0x20
push 0x6d3a04
call fcn.0045aec0
add esp, 4
ud2
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_532d2b14c05f9bc20b2d27cbb5f4550d28343a36librarycore_src_strpattern.rs
mov edx, 0x2b
push 0x6d3fa4
call fcn.0045aec0
add esp, 4
ud2
mov dword [esp + 0x323], 0
mov dword [esp + 0x320], 0
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_532d2b14c05f9bc20b2d27cbb5f4550d28343a36librarycore_src_strpattern.rs
mov edx, 0x2b
push 0x6d3f94
call fcn.0045aec0
add esp, 4
ud2
mov edi, dword [esp + 0xf0]
mov edx, dword [esp + 0x50]
movzx ecx, bl
movzx eax, al
shl ecx, 8
or eax, ecx
mov dword [edi + 8], eax
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], edx
mov dword [edi + 0x14], esi
mov dword [edi], 1
jmp 0x5cdf50
push 0x6d40e0
call fcn.0045a150
add esp, 4
ud2
add eax, 2
mov ecx, eax
push 0x6d40f0
call fcn.0045a820
add esp, 4
ud2
mov cl, byte [esp + 0x44]
jmp 0x5ce2f7
mov ebx, ecx
jmp 0x5ce299