Function at 0x5c2e20
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x270
mov edi, dword [0x6f1174]
mov dword [esp + 0x1ac], edx
test edi, edi
je 0x5c72a9
lea eax, [edi + edi*8]
mov esi, dword [0x6f116c]
mov dword [esp + 8], edi
lea edx, [eax + eax*2]
mov eax, dword [ecx]
add edx, edi
add edx, esi
mov ecx, esi
mov dword [esp + 4], esi
mov dword [esp + 0x6c], eax
xor eax, eax
mov esi, dword [ecx + 0x14]
mov dword [esp], eax
mov edi, dword [ecx + 0x18]
mov eax, dword [ecx + 0xc]
add ecx, 0x1c
shl esi, 3
mov dword [esp + 0x30], edi
nop dword [eax]
test esi, esi
je 0x5c2eb0
mov ebx, eax
add esi, 0xfffffff8
add eax, 8
mov edi, dword [ebx]
add edi, dword [esp + 0x30]
cmp edi, dword [esp + 0x6c]
ja 0x5c2e80
add edi, dword [ebx + 4]
cmp edi, dword [esp + 0x6c]
jbe 0x5c2e80
jmp 0x5c2ebd
mov eax, dword [esp]
inc eax
cmp ecx, edx
jne 0x5c2e66
jmp 0x5c72a9
mov edi, dword [0x6f1180]
test edi, edi
je 0x5c2ef9
mov ebx, dword [0x6f1178]
imul ecx, edi, 0xffffff78
xor esi, esi
xor eax, eax
nop word [eax + eax]
mov edx, dword [esp]
cmp dword [ebx + esi], edx
je 0x5c30ec
add esi, 0x88
mov edx, ecx
inc eax
add edx, esi
jne 0x5c2ee0
mov esi, dword [esp]
mov edx, dword [esp + 8]
cmp edx, esi
jbe 0x5c67d6
mov edi, dword [esp + 4]
lea eax, [esi + esi*8]
lea ecx, [esp + 0x100]
lea eax, [eax + eax*2]
add eax, esi
mov edx, dword [edi + eax]
push dword [edi + eax + 8]
call fcn.005c2ab0
add esp, 4
cmp dword [esp + 0x100], 1
jne 0x5c72a9
mov eax, dword [esp + 0x10c]
mov edi, dword [esp + 0x108]
mov ebx, dword [esp + 0x104]
xor ecx, ecx
mov dword [esp + 8], 0
mov dword [esp + 4], eax
cmp eax, 0x40
mov eax, edi
cmovb eax, ecx
jb 0x5c2fc4
movzx ecx, word [eax]
cmp ecx, 0x5a4d
jne 0x5c2fc4
mov ecx, dword [eax + 0x3c]
mov eax, dword [esp + 4]
sub eax, ecx
jb 0x5c2fc4
cmp eax, 0x78
jb 0x5c2fc4
mov eax, ecx
add eax, 0x78
setb dl
cmp dword [edi + ecx], 0x4550
mov dword [esp + 0x14], eax
jne 0x5c2fc4
movzx eax, word [edi + ecx + 0x18]
cmp eax, 0x10b
jne 0x5c2fc4
movzx eax, word [edi + ecx + 0x14]
mov byte [esp + 0x1c], dl
xor edx, edx
sub eax, 0x60
sbb edx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x58], edx
jb 0x5c2fc4
cmp ecx, 0xffffff87
jbe 0x5c6670
cmp dword [esp + 8], 0
je 0x5c729d
movsd xmm1, qword [esp + 0x258]
movsd xmm2, qword [esp + 0x218]
mov eax, dword [esp + 0x230]
mov ecx, dword [0x6f1180]
movsd xmm0, qword [esp + 0x260]
movq xmm3, qword [esp + 0x250]
movsd qword [esp + 0x240], xmm1
movsd xmm1, qword [esp + 0x220]
movsd qword [esp + 0x1d8], xmm2
mov dword [esp + 0x1f0], eax
movsd xmm2, qword [esp + 0x1f8]
mov eax, dword [esp + 0x210]
cmp ecx, 4
movsd qword [esp + 0x248], xmm0
movq qword [esp + 0x238], xmm3
movsd qword [esp + 0x1e0], xmm1
movsd xmm1, qword [esp + 0x228]
movsd qword [esp + 0x1b8], xmm2
mov dword [esp + 0x1d0], eax
movsd qword [esp + 0x1e8], xmm1
movsd xmm1, qword [esp + 0x200]
movsd qword [esp + 0x1c0], xmm1
movsd xmm1, qword [esp + 0x208]
movsd qword [esp + 0x1c8], xmm1
jne 0x5c318e
mov dword [0x6f1180], 3
mov eax, 0x198
add eax, dword [0x6f1178]
push 0x88
push eax
lea eax, [esp + 0x108]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp dword [esp + 0x120], 0
je 0x5c3189
lea ecx, [esp + 0x108]
call fcn.005c2d50
mov ecx, dword [0x6f1180]
jmp 0x5c318e
test esi, esi
je 0x5c32e3
lea ecx, [ebx + esi]
lea eax, [esp + 0x100]
mov dword [esp], ecx
push 0x88
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, edi
lea ecx, [ebx + esi + 0x88]
shl eax, 7
lea eax, [eax + edi*8]
sub eax, esi
add eax, 0xffffff78
push eax
push ecx
push dword [esp + 8]
call sub.msvcrt.dll_memmove
add esp, 0xc
lea esi, [edi - 1]
mov dword [0x6f1180], esi
cmp esi, dword [0x6f117c]
je 0x5c6664
mov ebx, dword [0x6f1178]
mov ecx, esi
shl ecx, 7
lea ecx, [ecx + esi*8]
lea eax, [ebx + 0x88]
push ecx
push ebx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
push 0x88
lea eax, [esp + 0x104]
push eax
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [0x6f1180], edi
jmp 0x5c32e3
mov ecx, 3
movsd xmm0, qword [esp + 0x248]
movq xmm2, qword [esp + 0x238]
movsd xmm1, qword [esp + 0x240]
cmp ecx, dword [0x6f117c]
mov dword [esp + 0x14], edi
mov dword [esp + 0x58], ebx
movsd qword [esp + 0x114], xmm0
movsd qword [esp + 0x10c], xmm1
movq qword [esp + 0x104], xmm2
je 0x5c6656
mov ebx, dword [0x6f1178]
mov edi, ecx
shl ecx, 7
lea ecx, [ecx + edi*8]
lea eax, [ebx + 0x88]
push ecx
push ebx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov dword [ebx], esi
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x14]
inc edi
movsd xmm0, qword [esp + 0x100]
movsd xmm1, qword [esp + 0x108]
movsd qword [ebx + 4], xmm0
movsd qword [ebx + 0xc], xmm1
movsd xmm0, qword [esp + 0x110]
movsd qword [ebx + 0x14], xmm0
mov eax, dword [esp + 0x118]
mov dword [ebx + 0x1c], eax
mov eax, dword [esp + 8]
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0x1f0]
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0x20]
movsd xmm0, qword [esp + 0x1e8]
movsd qword [ebx + 0x34], xmm0
movsd xmm0, qword [esp + 0x1d8]
movsd xmm1, qword [esp + 0x1e0]
movsd qword [ebx + 0x2c], xmm1
movsd qword [ebx + 0x24], xmm0
mov dword [ebx + 0x40], eax
movsd xmm0, qword [esp + 0x1b8]
movq xmm1, qword [esp + 0x1c0]
movsd qword [ebx + 0x44], xmm0
movq qword [ebx + 0x4c], xmm1
movq xmm0, qword [esp + 0x1c8]
movq qword [ebx + 0x54], xmm0
mov eax, dword [esp + 0x1d0]
mov dword [ebx + 0x5c], eax
mov dword [ebx + 0x60], edx
mov dword [ebx + 0x64], ecx
mov edx, dword [esp + 4]
mov ecx, dword [0x6d6b64]
mov dword [ebx + 0x68], edx
mov dword [ebx + 0x6c], ecx
mov dword [ebx + 0x70], 0
mov dword [ebx + 0x74], 0
mov dword [ebx + 0x78], 0
mov dword [0x6f1180], edi
je 0x5c681a
mov ecx, dword [esp + 0x6c]
mov edi, dword [ebx + 0x48]
mov edx, dword [ebx + 0x40]
xor eax, eax
mov dword [esp + 0x54], ebx
sub ecx, dword [esp + 0x30]
mov dword [esp + 0x58], edx
mov dword [esp + 0x6c], ecx
inc ecx
mov dword [esp], ecx
sete byte [esp + 0x30]
test edi, edi
mov ecx, 0
je 0x5c3383
mov cl, byte [esp + 0x30]
mov esi, edi
mov dword [esp + 4], edi
mov dword [esp + 0x30], edi
mov al, cl
xor ecx, ecx
mov dword [esp + 8], eax
jmp 0x5c333b
inc esi
mov ecx, esi
mov esi, dword [esp + 0x30]
sub esi, ecx
jbe 0x5c3377
shr esi, 1
mov edx, dword [esp + 0x58]
add esi, ecx
mov eax, esi
shl eax, 5
mov ebx, dword [edx + eax + 8]
mov eax, dword [edx + eax + 0xc]
mov edx, 0
cmp dword [esp + 0x6c], ebx
sbb edx, eax
jae 0x5c3330
xor ebx, dword [esp]
xor eax, dword [esp + 8]
or eax, ebx
je 0x5c3374
mov edi, ecx
mov dword [esp + 0x30], esi
sub esi, ecx
ja 0x5c333b
jmp 0x5c3377
inc esi
mov ecx, esi
mov edx, dword [esp + 4]
cmp edx, ecx
jb 0x5c6ef8
mov edx, dword [esp + 0x54]
shl ecx, 5
mov dword [esp + 0x60], 0
add ecx, dword [esp + 0x58]
lea esi, [edx + 0x40]
lea eax, [edx + 8]
mov edx, dword [0x6d6b64]
mov dword [esp + 0xb4], esi
mov esi, dword [0x6d3de0]
mov dword [esp + 0x1b0], eax
mov dword [esp + 0xbc], edx
nop dword [eax]
cmp byte [esp + 0x60], 0
mov edx, dword [esp + 0x6c]
jne 0x5c3460
cmp dword [esp + 0x58], ecx
je 0x5c3460
add ecx, 0xffffffe0
jmp 0x5c33e9
cmp ecx, dword [esp + 0x58]
lea ecx, [ecx - 0x20]
je 0x5c3452
cmp edx, dword [ecx]
mov eax, 0
sbb eax, dword [ecx + 4]
jae 0x5c344a
cmp edx, dword [ecx + 0x10]
mov eax, 0
sbb eax, dword [ecx + 0x14]
jae 0x5c33e0
cmp edx, dword [ecx + 8]
mov eax, 0
sbb eax, dword [ecx + 0xc]
jb 0x5c33e0
mov eax, dword [esp + 0x54]
mov esi, ecx
mov ecx, dword [ecx + 0x18]
mov edx, dword [eax + 0x54]
cmp edx, ecx
jbe 0x5c67e7
imul ecx, ecx, 0x150
mov edx, eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
add ecx, dword [eax + 0x4c]
mov eax, ecx
mov ecx, esi
mov esi, dword [0x6d3de0]
jmp 0x5c346e
mov al, 1
mov dword [esp + 0x60], eax
jmp 0x5c3460
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x60], 0
nop
mov edx, dword [esp + 0x54]
mov dword [esp + 0x5c], 0
xor eax, eax
test eax, eax
mov edi, 0
je 0x5c61ad
mov dword [esp + 0x20], eax
mov eax, dword [eax + 0x130]
mov dword [esp + 0x64], ecx
cmp eax, 2
jne 0x5c4142
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x188], esi
mov dword [esp + 0x18c], 0
mov dword [esp + 0xc0], esi
mov dword [esp + 0xc4], 0
mov dword [esp + 0x190], 0
mov dword [esp + 0xc8], 0
mov ebx, dword [ecx + 0x24]
mov edi, dword [ecx + 0x20]
lea eax, [ecx + 0xe0]
test ebx, ebx
mov dword [esp + 0xe0], edi
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], 0
mov dword [esp + 0x1c], ebx
je 0x5c3ec8
mov eax, dword [edx + 0x58]
mov edx, ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x4c], esi
mov dword [esp + 0xc], 0
mov dword [esp + 0x70], eax
xor eax, eax
cmp byte [edx + 0x29], 8
mov esi, dword [edx + 0x24]
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x14], edi
lea ebx, [edi + 1]
mov dword [esp + 0x50], edx
mov dword [esp + 8], 0
sete al
add esi, dword [edx + 0x20]
add ecx, edi
mov edi, dword [esp + 0x1c]
xor edx, edx
lea ecx, [ecx + eax*8]
sub ecx, esi
neg edi
add ecx, 4
mov dword [esp + 0x68], ecx
xor ecx, ecx
nop dword [eax]
movzx eax, byte [ebx - 1]
cmp ecx, 0x3f
mov dword [esp + 4], 0
jne 0x5c3589
cmp al, 2
jae 0x5c3f18
mov dword [esp + 0x30], edx
mov dh, al
mov byte [esp], al
xor esi, esi
and dh, 0x7f
movzx eax, dh
mov edx, 0
shld esi, eax, cl
shl eax, cl
test cl, 0x20
cmovne esi, eax
cmovne eax, edx
mov edx, dword [esp + 0x30]
or dword [esp + 8], eax
or edx, esi
cmp byte [esp], 0
jns 0x5c35d0
add ecx, 7
inc ebx
inc edi
jne 0x5c3570
jmp 0x5c3f1f
mov eax, dword [esp + 8]
not edi
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], edi
or eax, edx
je 0x5c3a0c
mov ecx, dword [esp + 0xec]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
test edx, edx
mov dword [esp + 0x30], edx
jne 0x5c3629
mov edx, dword [esp + 8]
dec edx
cmp edx, dword [ecx + 8]
jae 0x5c3629
imul edx, edx, 0x68
add edx, dword [ecx]
cmp byte [edx + 0x62], 1
je 0x5c36fa
jmp 0x5c3701
mov eax, dword [ecx + 0x10]
mov esi, 0x12
test eax, eax
je 0x5c3f1d
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], eax
movzx eax, word [eax + 0x4d6]
mov edx, 0xffffffff
mov ebx, 0x10
mov dword [esp + 0x5c], eax
imul eax, eax, 0x68
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add eax, ebx
cmp eax, 0x10
je 0x5c36b4
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 8]
mov esi, dword [eax + edx*8 + 0xc]
mov ecx, dword [eax + edx*8 + 8]
mov dword [esp], esi
xor esi, dword [esp + 0x30]
mov eax, ecx
mov dword [esp + 0x14], ecx
xor ecx, ecx
xor eax, edi
or eax, esi
mov eax, dword [esp + 0x30]
setne cl
cmp edi, dword [esp + 0x14]
sbb eax, dword [esp]
mov eax, 0xff
cmovb ecx, eax
inc edx
add ebx, 0xffffff98
cmp cl, 1
je 0x5c3660
cmp cl, 0xff
je 0x5c36b8
jmp 0x5c36de
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x2c]
mov esi, 0x12
sub eax, 1
jb 0x5c3f1d
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + edx*4 + 0x4d8]
jmp 0x5c3640
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x28]
sub edx, ebx
mov ebx, dword [esp + 0x24]
cmp byte [edx + 0x62], 1
jne 0x5c3701
inc dword [esp + 0xf0]
cmp word [edx + 0x60], 0x2e
jne 0x5c3a59
cmp dword [edx + 8], 1
jne 0x5c3ae5
mov ecx, dword [edx + 0x14]
mov edx, dword [edx + 0xc]
mov eax, dword [esp + 0x20]
test ecx, ecx
je 0x5c3afc
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x50]
shl ecx, 4
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], esi
mov dword [esp], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], 0
add ecx, edx
mov dword [esp + 0x30], ecx
nop dword [eax + eax]
movzx eax, word [edx + 0xa]
mov esi, edx
lea ecx, [esp + 0x100]
lea edx, [esp + 0xe0]
push eax
push dword [esi + 8]
push dword [esi + 4]
mov ebx, esi
push dword [esi]
push dword [edi + 0x28]
call fcn.005ce640
add esp, 0x14
mov eax, dword [esp + 0x100]
xor eax, 1
or eax, dword [esp + 0x104]
je 0x5c4022
movzx eax, word [esp + 0x118]
cmp ax, 0x55
je 0x5c38ac
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
cmp ax, 0x12
je 0x5c3851
cmp ax, 0x11
jne 0x5c3950
lea ecx, [esp + 0x88]
lea edx, [esp + 0x108]
call fcn.005cfdb0
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
or eax, dword [esp + 0x8c]
mov eax, dword [esp + 0x48]
cmove eax, dword [esp + 0x94]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
cmove eax, dword [esp + 0x90]
mov dword [esp + 0x24], eax
mov eax, 0
cmove ecx, eax
mov eax, 1
cmove edx, eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
jmp 0x5c3950
lea ecx, [esp + 0x88]
lea edx, [esp + 0x108]
call fcn.005cfdb0
movzx eax, byte [esp + 0x88]
test al, 0x3f
je 0x5c3921
cmp al, 7
mov edx, ebx
jne 0x5c3952
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x5c], 1
mov dword [esp + 0x80], eax
mov dword [esp + 0x7c], ecx
jmp 0x5c3952
lea ecx, [esp + 0x88]
lea edx, [esp + 0x108]
call fcn.005cfdb0
movzx eax, byte [esp + 0x88]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
mov ecx, eax
and cl, 0x3f
cmp cl, 0x18
je 0x5c3969
cmp al, 0x16
mov edx, ebx
mov dword [esp], 0
jne 0x5c3952
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x90]
mov dword [esp], 1
cmp byte [eax + 0x74], 1
jne 0x5c39da
mov eax, dword [esp + 0x20]
cmp word [eax + 0x2a], 4
ja 0x5c39da
add ecx, dword [eax + 0x114]
mov dword [esp + 0x28], ecx
jmp 0x5c3952
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], 1
mov dword [esp + 0x74], eax
mov dword [esp + 0x84], ecx
nop word [eax + eax]
mov edx, ebx
add edx, 0x10
cmp edx, edi
je 0x5c3d1a
mov edi, dword [esp + 0xe8]
jmp 0x5c3780
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x114]
mov esi, dword [edx + 0x6c]
mov edi, dword [edx + 0x68]
sub esi, ecx
mov dword [esp + 0x14], ecx
jb 0x5c4ca6
mov edx, eax
mov eax, dword [esp + 0x90]
mov dword [esp], 0x35
mov ecx, dword [edx + 0x28]
xor edx, edx
cmp ch, 8
sete dl
lea edx, [edx*4 + 4]
mul edx
jo 0x5c4ef7
add edi, dword [esp + 0x14]
sub esi, eax
jb 0x5c4ca6
add edi, eax
cmp ch, 8
jne 0x5c39e3
cmp esi, 8
jb 0x5c4ca6
cmp dword [edi + 4], 0
je 0x5c39ec
jmp 0x5c4ef7
mov dword [esp + 0x28], ecx
jmp 0x5c3952
cmp esi, 4
jb 0x5c4ca6
mov eax, dword [edi]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
mov edx, ebx
mov dword [esp], 1
add eax, dword [esp + 0x14]
mov dword [esp + 0x28], eax
jmp 0x5c3952
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
dec dword [esp + 0xf0]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x18], esi
mov dword [esp + 0xc], eax
test ecx, ecx
mov dword [esp + 0x1c], ecx
je 0x5c4a62
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0xe0]
mov edx, dword [esp + 0xe8]
mov dword [esp + 0x24], ebx
jmp 0x5c352c
cmp dword [edx + 8], 1
jne 0x5c3ce1
mov ebx, dword [edx + 0x14]
mov edx, dword [edx + 0xc]
mov eax, dword [esp + 0xc]
test ebx, ebx
je 0x5c3cfc
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x50]
shl ebx, 4
mov dword [esp + 0x18], esi
add ebx, edx
nop word cs:[eax + eax]
movzx eax, word [edx + 0xa]
mov esi, edx
lea ecx, [esp + 0x100]
lea edx, [esp + 0xe0]
push eax
push dword [esi + 8]
push dword [esi + 4]
push dword [esi]
push dword [edi + 0x28]
call fcn.005ce640
add esp, 0x14
mov eax, dword [esp + 0x100]
xor eax, 1
or eax, dword [esp + 0x104]
je 0x5c4022
add esi, 0x10
cmp esi, ebx
je 0x5c3d05
mov edi, dword [esp + 0xe8]
mov edx, esi
jmp 0x5c3a90
mov ecx, dword [edx + 0xc]
cmp ecx, 6
jae 0x5c6f26
add edx, 0x10
test ecx, ecx
jne 0x5c3728
mov edx, edi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
xor ecx, ecx
mov dword [esp + 0x2c], 0
xor edi, edi
cmp edi, 1
jne 0x5c3d36
mov ecx, dword [eax + 0x28]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x24], ebx
mov ebx, eax
xor eax, eax
mov dword [esp + 4], ecx
shr ecx, 0x10
cmp cx, 5
setae al
mov edi, dword [esi + eax*8 + 0x60]
mov eax, dword [esi + eax*8 + 0x64]
sub eax, edx
jb 0x5c562d
mov dword [esp + 0x14], edi
mov edi, edx
mov edx, dword [ebx + 0x30]
cmp cx, 5
mov ecx, esi
mov esi, dword [ebx + 0x34]
mov dword [esp + 0x28], edi
mov dword [esp + 8], edx
mov edx, dword [ebx + 0x10c]
mov ebx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [esp + 0x104], esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x30], edx
mov dword [esp], ecx
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x100], ecx
mov ecx, 0
setae cl
add edx, edi
mov edi, dword [esp + 4]
mov dword [esp + 0x108], edx
mov dword [esp + 0x10c], eax
mov edx, dword [esp]
mov dword [esp + 0x110], edi
mov dword [esp + 0x114], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x118], ebx
mov dword [esp + 0x11c], edx
lea edx, [esp + 0x100]
mov dword [esp + 0x120], ecx
lea ecx, [esp + 0x88]
call fcn.005d06c0
mov eax, dword [esp + 0x88]
xor eax, 1
or eax, dword [esp + 0x8c]
je 0x5c47a8
xor ebx, ebx
jmp 0x5c3c47
mov esi, edi
lea ecx, [esp + 0x88]
lea edx, [esp + 0x100]
call fcn.005d06c0
mov eax, dword [esp + 0x88]
xor eax, 1
or eax, dword [esp + 0x8c]
je 0x5c47a8
cmp dword [esp + 0x90], 1
jne 0x5c3d9a
movdqu xmm1, xmmword [esp + 0x98]
mov edi, esi
pshufd xmm2, xmm1, 0xee
pshufd xmm0, xmm1, 0x55
pshufd xmm3, xmm1, 0xff
movd ecx, xmm1
movd esi, xmm2
movd eax, xmm0
movd edx, xmm3
cmp ecx, esi
sbb eax, edx
jae 0x5c3c1b
cmp edi, dword [esp + 0xc4]
mov esi, edi
jne 0x5c3cba
lea ecx, [esp + 0xc0]
mov edx, esi
movdqa xmmword [esp + 0x30], xmm1
call fcn.005d0630
movdqa xmm1, xmmword [esp + 0x30]
mov edx, dword [esp + 0xc0]
mov esi, dword [esp + 0xc8]
jmp 0x5c3cbe
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0xc]
lea eax, [esi + esi*2]
inc esi
mov bl, 1
mov dword [esp + 0x4c], edx
movdqu xmmword [edx + eax*8], xmm1
mov dword [edx + eax*8 + 0x10], ecx
mov dword [esp + 0xc8], esi
jmp 0x5c3c1d
mov ebx, dword [edx + 0xc]
cmp ebx, 6
jae 0x5c6f24
add edx, 0x10
mov eax, dword [esp + 0xc]
test ebx, ebx
jne 0x5c3a75
mov ebx, dword [esp + 0x24]
jmp 0x5c3a23
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
jmp 0x5c3a23
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp]
cmp edi, 1
je 0x5c3b33
mov eax, dword [esp + 8]
mov edi, edx
xor eax, 1
or eax, dword [esp + 4]
jne 0x5c3e02
mov eax, dword [esp + 0x1c]
xor eax, 1
or eax, dword [esp + 0x10]
jne 0x5c3daf
cmp ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x48]
sbb eax, dword [esp + 0x84]
jae 0x5c3e02
cmp esi, dword [esp + 0xc4]
mov dword [esp + 0x28], edi
jne 0x5c3e0b
lea ecx, [esp + 0xc0]
mov edx, esi
call fcn.005d0630
mov edx, dword [esp + 0xc0]
mov esi, dword [esp + 0xc8]
jmp 0x5c3e0f
mov eax, dword [esp + 0xc]
test bl, bl
je 0x5c3a1b
mov ebx, dword [esp + 0x24]
jmp 0x5c3e7d
xor ecx, 1
or ecx, dword [esp + 0x2c]
jne 0x5c3e02
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x48]
add ecx, ebx
adc edi, eax
cmp ebx, ecx
sbb eax, edi
jae 0x5c3e3a
mov edx, dword [esp + 0x18]
mov dword [esp + 0x30], ecx
cmp edx, dword [esp + 0xc4]
jne 0x5c3e47
lea ecx, [esp + 0xc0]
call fcn.005d0630
mov esi, dword [esp + 0xc0]
mov edx, dword [esp + 0xc8]
jmp 0x5c3e4b
mov eax, dword [esp + 0xc]
jmp 0x5c3a23
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
lea eax, [esi + esi*2]
mov edi, dword [esp + 0x74]
mov dword [esp + 0x4c], edx
mov dword [edx + eax*8], ebx
mov dword [edx + eax*8 + 4], ecx
mov ecx, dword [esp + 0x84]
mov dword [edx + eax*8 + 8], edi
mov dword [edx + eax*8 + 0xc], ecx
lea eax, [edx + eax*8 + 0x10]
jmp 0x5c3e6f
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
jmp 0x5c3a1f
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
lea eax, [edx + edx*2]
mov dword [esp + 0x4c], esi
mov dword [esi + eax*8], ebx
mov dword [esi + eax*8 + 4], ecx
mov dword [esi + eax*8 + 0xc], edi
mov edi, dword [esp + 0x30]
mov dword [esi + eax*8 + 8], edi
lea eax, [esi + eax*8 + 0x10]
mov esi, edx
mov ecx, dword [esp + 0xc]
inc esi
mov dword [eax], ecx
mov dword [esp + 0xc8], esi
mov edx, dword [esp + 0x190]
cmp edx, dword [esp + 0x18c]
jne 0x5c3ea0
lea ecx, [esp + 0x188]
call fcn.005d1af0
mov edx, dword [esp + 0x190]
mov eax, dword [esp + 0x188]
mov edi, dword [esp + 0x68]
lea ecx, [edx + edx*4]
inc edx
mov dword [eax + ecx*8], edi
mov dword [eax + ecx*8 + 8], 2
mov dword [esp + 0x190], edx
mov eax, edx
jmp 0x5c3a1f
xor ebx, ebx
mov ecx, dword [esp + 0x18c]
mov eax, dword [esp + 0x188]
cmp ecx, ebx
jbe 0x5c401c
test eax, eax
je 0x5c401c
lea edx, [ebx*8]
mov esi, ebx
lea ebx, [edx + edx*4]
test ebx, ebx
je 0x5c4047
push ebx
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
jne 0x5c4064
jmp 0x5c6f07
mov esi, 6
jmp 0x5c3f36
mov edi, dword [esp + 0x14]
mov esi, 0x13
xor eax, eax
mov dword [esp + 4], 0
add edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x30], eax
mov dword [esp], esi
mov dword [esp + 0x14], edi
test ecx, ecx
je 0x5c3f6f
mov eax, dword [esp + 0xc0]
test eax, eax
je 0x5c3f6f
shl ecx, 3
lea ecx, [ecx + ecx*2]
test ecx, ecx
je 0x5c3f6f
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x188]
test eax, eax
je 0x5c3fe0
shl eax, 3
lea edi, [esi + 0x24]
lea ebx, [eax + eax*4]
jmp 0x5c3f98
add edi, 0x28
add ebx, 0xffffffd8
je 0x5c3fe0
cmp dword [edi - 0x1c], 0
jne 0x5c3f90
test dword [edi - 8], 0x7ffffff
je 0x5c3fb7
push dword [edi - 0xc]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [edi]
shl eax, 3
lea eax, [eax + eax*2]
test eax, eax
je 0x5c3f90
push dword [edi - 4]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x5c3f90
mov eax, dword [esp + 0x18c]
test eax, eax
je 0x5c4003
shl eax, 3
lea eax, [eax + eax*4]
test eax, eax
je 0x5c4003
push esi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov edi, dword [esp + 0x14]
mov ebx, dword [esp]
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x30]
mov eax, 1
jmp 0x5c40c4
mov dword [esp + 0x30], eax
jmp 0x5c406a
mov eax, dword [esp + 0x10c]
mov esi, dword [esp + 0x108]
mov edi, dword [esp + 0x110]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x114]
jmp 0x5c3f36
shl ecx, 3
lea ecx, [ecx + ecx*4]
test ecx, ecx
je 0x5c405f
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, 8
mov dword [esp + 0x30], eax
mov ebx, esi
mov ecx, dword [esp + 0xc4]
mov edi, dword [esp + 0xc8]
mov eax, dword [esp + 0xc0]
cmp ecx, edi
jbe 0x5c40ba
test eax, eax
je 0x5c40ba
lea edx, [edi*8]
lea edx, [edx + edx*2]
test edx, edx
je 0x5c4664
mov dword [esp], edx
push edx
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapReAlloc
mov ecx, dword [esp + 0x30]
mov esi, eax
test eax, eax
jne 0x5c40c0
jmp 0x5c6f15
mov esi, eax
mov ecx, dword [esp + 0x30]
xor edx, edx
xor eax, eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], ecx
mov dword [esp + 0x108], ebx
mov dword [esp + 0x10c], esi
mov dword [esp + 0x110], edi
mov dword [esp + 0x30], edx
mov dword [esp + 0x114], edx
mov edx, edi
mov edi, esi
mov esi, dword [esp + 0x20]
cmp dword [esi + 0x130], 2
jne 0x5c4130
mov dword [esi + 0x130], eax
mov dword [esi + 0x134], ecx
mov dword [esi + 0x138], ebx
mov dword [esi + 0x13c], edi
mov dword [esi + 0x140], edx
mov edx, dword [esp + 0x30]
mov dword [esi + 0x144], edx
jmp 0x5c4142
lea ecx, [esp + 0x100]
call fcn.005d1b80
mov eax, dword [esi + 0x130]
xor ecx, ecx
cmp eax, 1
sete dl
test eax, eax
jne 0x5c65f3
mov eax, dword [esp + 0x20]
mov cl, dl
lea eax, [eax + ecx*4 + 0x134]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x5c41ec
mov dword [esp + 0x1c], eax
mov eax, dword [eax + 8]
xor edx, edx
mov esi, ecx
mov dword [esp + 0x14], eax
jmp 0x5c419d
cmp edi, dword [esp + 4]
mov eax, 0
mov edx, dword [esp + 0x30]
sbb eax, dword [esp + 8]
jae 0x5c41f9
mov eax, dword [esp + 0x14]
mov esi, ecx
sub ecx, edx
jbe 0x5c41ec
shr ecx, 1
mov dword [esp], esi
mov dword [esp + 0x30], edx
mov esi, eax
add ecx, edx
lea ebx, [ecx + ecx*2]
mov edi, dword [eax + ebx*8]
mov edx, dword [eax + ebx*8 + 4]
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], edi
cmp eax, edi
mov edi, eax
mov eax, 0
mov dword [esp + 8], edx
sbb eax, edx
jb 0x5c4180
cmp edi, dword [esi + ebx*8 + 8]
mov eax, 0
sbb eax, dword [esi + ebx*8 + 0xc]
jb 0x5c4180
mov edx, ecx
mov ecx, dword [esp]
inc edx
mov eax, dword [esp + 0x14]
mov esi, ecx
sub ecx, edx
ja 0x5c419d
mov dword [esp + 0x14], 0
jmp 0x5c43ec
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + ebx*8 + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 4]
cmp ecx, edx
jae 0x5c67c7
mov edx, dword [eax]
lea eax, [ecx + ecx*4]
mov dword [esp + 0x1c], eax
mov ecx, dword [edx + eax*8 + 8]
mov dword [esp + 0x14], edx
cmp ecx, 2
jne 0x5c43d4
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov eax, ecx
mov esi, dword [ecx + 0x10]
mov ebx, dword [ecx + 0x24]
add eax, 0xe0
mov dword [esp + 4], eax
xor eax, eax
cmp byte [ecx + 0x29], 8
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x30], esi
sete al
sub esi, ebx
lea edi, [esi + eax*8 + 4]
mov esi, dword [edx + ecx*8]
lea ecx, [edx + ecx*8 + 8]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], esi
sub esi, edi
jb 0x5c435c
cmp ebx, esi
jbe 0x5c435c
mov edi, dword [esp + 0x20]
mov ecx, ebx
sub ecx, esi
mov edx, dword [edi + 0x20]
mov dword [esp + 8], edx
lea edx, [edx + esi]
mov esi, dword [esp + 4]
mov dword [esp + 0xe0], edx
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], edi
mov dword [esp + 0xec], esi
mov dword [esp + 0xf0], 0
je 0x5c433f
mov edx, dword [esp + 8]
lea ecx, [eax*8 + 4]
mov dword [esp + 0x2c], 0
mov dword [esp], 0
xor esi, esi
add edx, ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 8], edx
sub ebx, ecx
xor ecx, ecx
sub ebx, dword [esp + 0x30]
nop word [eax + eax]
movzx eax, byte [edx + ebx]
cmp ecx, 0x3f
jne 0x5c4301
cmp al, 2
jae 0x5c468a
mov ah, al
mov dword [esp + 0x30], esi
xor esi, esi
mov edx, 0
and ah, 0x7f
movzx edi, ah
shld esi, edi, cl
shl edi, cl
test cl, 0x20
cmovne esi, edi
cmovne edi, edx
or dword [esp + 0x30], esi
or dword [esp], edi
test al, al
mov esi, dword [esp + 0x30]
jns 0x5c469f
mov edx, dword [esp + 8]
add ecx, 7
inc ebx
jne 0x5c42f0
xor esi, esi
mov al, 0x13
mov dword [esp], edx
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0xc], eax
jmp 0x5c437b
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 4]
mov al, 0x38
xor esi, esi
mov dword [esp + 0x30], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x2c], edx
mov dword [esp], ecx
mov edi, dword [esp + 0x68]
mov eax, 1
mov ecx, dword [edi]
cmp ecx, 2
jne 0x5c43d4
movzx ecx, byte [esp + 0xc]
shl esi, 8
mov dword [edi], eax
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x70]
mov edx, dword [esp + 0x14]
or ecx, esi
mov esi, dword [esp + 0x2c]
mov dword [edx + eax*8 + 0xc], ebx
mov ebx, dword [esp]
mov dword [edx + eax*8 + 0x10], ecx
mov dword [edx + eax*8 + 0x14], esi
mov esi, dword [esp + 0x30]
mov dword [edx + eax*8 + 0x18], ebx
mov ebx, dword [esp + 8]
mov dword [edx + eax*8 + 0x1c], esi
mov esi, dword [esp + 4]
mov dword [edx + eax*8 + 0x20], ebx
mov dword [edx + eax*8 + 0x24], esi
mov ecx, dword [edi]
test ecx, ecx
jne 0x5c65f3
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax*8 + 0xc]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x100]
mov eax, dword [eax + 0x58]
add eax, 8
push eax
call fcn.005d2dd0
add esp, 4
cmp dword [esp + 0x100], 1
je 0x5c65f3
mov eax, dword [esp + 0x104]
mov edx, 2
test eax, eax
je 0x5c44d0
mov ecx, dword [eax + 0xc]
mov edi, dword [eax + 8]
mov dword [esp + 0x18], eax
test ecx, ecx
mov dword [esp + 0x1c], ecx
je 0x5c44e0
xor esi, esi
mov edx, ecx
jmp 0x5c446b
cmp edi, dword [esp + 4]
mov eax, 0
mov esi, dword [esp + 0x30]
mov edi, ecx
sbb eax, dword [esp + 8]
jae 0x5c44bf
mov ecx, edx
sub edx, esi
jbe 0x5c44b6
shr edx, 1
mov dword [esp + 0x30], esi
mov dword [esp], ecx
mov ecx, edi
add edx, esi
lea esi, [edx + edx*2]
mov eax, dword [edi + esi*8]
mov ebx, dword [edi + esi*8 + 4]
mov edi, dword [esp + 0x6c]
mov dword [esp + 4], eax
cmp edi, eax
mov eax, 0
mov dword [esp + 8], ebx
sbb eax, ebx
jb 0x5c4450
cmp edi, dword [ecx + esi*8 + 8]
mov eax, 0
sbb eax, dword [ecx + esi*8 + 0xc]
jb 0x5c4450
mov esi, edx
mov edx, dword [esp]
mov edi, ecx
inc esi
mov ecx, edx
sub edx, esi
ja 0x5c446b
test esi, esi
cmovne esi, dword [esp + 0x1c]
mov edx, esi
cmp edx, dword [esp + 0x1c]
jb 0x5c44ec
jmp 0x5c45c0
mov ecx, dword [esp + 0x64]
jmp 0x5c45c9
xor edx, edx
cmp edx, dword [esp + 0x1c]
jae 0x5c45c0
lea eax, [edx + edx*2]
mov dword [esp + 4], edi
mov edi, dword [edi + eax*8 + 0x14]
mov dword [esp + 0x10], eax
test edi, edi
je 0x5c4565
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + ecx*8 + 0x10]
mov ecx, edi
mov dword [esp + 8], eax
xor eax, eax
jmp 0x5c452c
mov eax, edi
mov edi, dword [esp]
inc eax
mov ecx, edi
sub edi, eax
jbe 0x5c455e
mov dword [esp], ecx
mov ecx, dword [esp + 8]
shr edi, 1
mov dword [esp + 0x30], eax
add edi, eax
lea esi, [edi + edi*2]
mov eax, dword [ecx + esi*8]
mov ebx, dword [ecx + esi*8 + 4]
mov ecx, dword [esp + 0x6c]
cmp eax, ecx
mov esi, ebx
sbb esi, 0
jb 0x5c4520
xor eax, ecx
or eax, ebx
mov eax, dword [esp + 0x30]
jne 0x5c4526
jmp 0x5c4567
sub eax, 1
mov edi, eax
jae 0x5c4567
xor edi, edi
mov ebx, dword [esp + 0x1c]
cmp edx, ebx
jae 0x5c45c0
mov ecx, dword [esp + 4]
mov esi, dword [esp + 0x10]
neg ebx
inc edx
lea eax, [ecx + esi*8]
lea esi, [ecx + esi*8 + 0x18]
nop word cs:[eax + eax]
nop dword [eax + eax]
mov ecx, dword [esp + 0x6c]
cmp ecx, dword [eax]
mov ecx, 0
sbb ecx, dword [eax + 4]
jb 0x5c45c0
cmp edi, dword [eax + 0x14]
jb 0x5c45e8
xor edi, edi
cmp edx, dword [esp + 0x1c]
mov eax, 0
lea ecx, [ebx + edx + 1]
cmovb eax, esi
inc edx
add esi, 0x18
cmp ecx, 1
jne 0x5c4590
mov ecx, dword [esp + 0x64]
mov edx, 2
cmp dword [esp + 0x14], 0
jne 0x5c5fe2
mov esi, dword [0x6d3de0]
cmp edx, 2
je 0x5c33c0
jmp 0x5c6122
mov eax, dword [eax + 0x10]
mov edx, dword [esp + 0x6c]
lea esi, [edi + edi*2]
mov ecx, dword [esp + 0x64]
cmp edx, dword [eax + esi*8]
mov edx, 0
sbb edx, dword [eax + esi*8 + 4]
mov edx, 2
jb 0x5c45c9
lea eax, [eax + esi*8]
mov edi, dword [esp + 0x18]
xor esi, esi
mov dword [esp + 0x80], 0
mov edx, dword [eax + 8]
lea ecx, [edx + edx*2]
shl ecx, 2
add ecx, dword [edi]
cmp dword [edi + 4], edx
cmovbe ecx, esi
jbe 0x5c4643
mov edx, dword [ecx]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x80], edx
mov dword [esp + 0xb8], ecx
mov edi, dword [eax + 0x14]
mov ecx, dword [eax + 0x10]
xor eax, eax
test edi, edi
mov dword [esp + 0x30], ecx
setne al
xor edx, edx
test ecx, ecx
setne dl
mov dword [esp + 8], eax
jmp 0x5c44d0
shl ecx, 3
mov esi, 8
lea ecx, [ecx + ecx*2]
test ecx, ecx
je 0x5c40bc
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x5c40bc
mov al, 6
xor esi, esi
mov dword [esp + 0x30], 0
mov dword [esp + 0xc], eax
jmp 0x5c437b
mov eax, dword [esp + 8]
mov ecx, dword [esp]
lea eax, [ebx + eax + 1]
or ecx, esi
not ebx
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], ebx
je 0x5c6f43
test esi, esi
jne 0x5c46e4
mov eax, dword [esp]
mov ecx, dword [esp + 0x20]
dec eax
cmp eax, dword [ecx + 0xe8]
jae 0x5c46e4
mov edx, dword [esp + 4]
imul ecx, eax, 0x68
add ecx, dword [edx]
jmp 0x5c47d3
mov eax, dword [esp + 0x20]
mov edi, dword [eax + 0xf0]
test edi, edi
je 0x5c4bad
mov eax, dword [eax + 0xec]
mov cl, 0x12
mov dword [esp + 0xc], ecx
mov dword [esp + 0x24], eax
movzx eax, word [edi + 0x4d6]
mov dword [esp + 0x10], edi
mov edi, 0xffffffff
mov ebx, 0x10
mov dword [esp + 0x50], eax
imul eax, eax, 0x68
mov dword [esp + 0x18], eax
nop word cs:[eax + eax]
mov eax, dword [esp + 0x18]
add eax, ebx
cmp eax, 0x10
je 0x5c4783
mov eax, dword [esp + 0x10]
mov edx, dword [eax + edi*8 + 8]
mov ecx, dword [eax + edi*8 + 0xc]
xor eax, eax
mov dword [esp + 8], ecx
xor ecx, esi
mov dword [esp + 4], edx
mov esi, edx
mov edx, dword [esp]
xor esi, edx
or esi, ecx
mov esi, dword [esp + 0x30]
setne al
cmp edx, dword [esp + 4]
mov ecx, esi
sbb ecx, dword [esp + 8]
mov ecx, 0xff
cmovb eax, ecx
inc edi
add ebx, 0xffffff98
cmp al, 1
je 0x5c4730
cmp al, 0xff
je 0x5c4787
jmp 0x5c47cd
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x24]
sub eax, 1
jb 0x5c4bb3
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x24], eax
mov edi, dword [ecx + edi*4 + 0x4d8]
jmp 0x5c4706
mov eax, dword [esp + 0x94]
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
jmp 0x5c3f36
mov ecx, dword [esp + 0x10]
sub ecx, ebx
cmp byte [ecx + 0x62], 1
jne 0x5c47e4
mov dword [esp + 0xf0], 1
add ecx, 8
call fcn.0049fa70
test edx, edx
je 0x5c4bca
mov ebx, eax
movzx eax, word [eax + 0xa]
mov edi, edx
lea ecx, [esp + 0x100]
lea edx, [esp + 0xe0]
push eax
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
mov eax, dword [esp + 0x30]
push dword [eax + 0x28]
call fcn.005ce640
add esp, 0x14
mov eax, dword [esp + 0x100]
xor eax, 1
or eax, dword [esp + 0x104]
je 0x5c4a2d
shl edi, 4
add ebx, 0x10
mov dword [esp + 0x78], 0
add edi, 0xfffffff0
movzx eax, word [esp + 0x118]
cmp ax, 0x46
jle 0x5c48de
mov ecx, dword [esp + 0x54]
cmp ax, 0x47
je 0x5c48f2
cmp ax, 0x6e
je 0x5c487e
movzx eax, ax
cmp eax, 0x2007
jne 0x5c49cb
mov eax, dword [ecx + 0x58]
lea esi, [esp + 0xc0]
lea edx, [esp + 0x108]
mov ecx, esi
add eax, 8
mov dword [esp + 0x30], eax
call fcn.005cfdb0
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x88]
push esi
push dword [esp + 0x24]
call fcn.005d1c40
add esp, 8
cmp dword [esp + 0x88], 0
jne 0x5c49cb
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x78], eax
mov dword [esp + 0x2c], ecx
jmp 0x5c49cb
mov ecx, dword [esp + 0x54]
cmp ax, 3
je 0x5c495c
cmp ax, 0x31
jne 0x5c49cb
cmp dword [esp + 0x78], 0
mov eax, dword [esp + 0x20]
jne 0x5c49cf
lea ecx, [esp + 0xc0]
lea edx, [esp + 0x108]
mov esi, edi
mov edi, eax
call fcn.005cfdb0
lea ecx, [esp + 0x88]
lea edx, [esp + 0xc0]
push 0x10
push dword [esp + 0xb8]
push edi
call fcn.005d1e10
add esp, 0xc
cmp dword [esp + 0x88], 1
je 0x5c5fbe
mov eax, dword [esp + 0x8c]
mov edi, esi
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x90]
jmp 0x5c49c7
cmp dword [esp + 0x78], 0
mov eax, dword [esp + 0x20]
jne 0x5c49cf
mov ecx, dword [ecx + 0x58]
mov dword [esp + 0x30], edi
lea edi, [esp + 0xc0]
lea edx, [esp + 0x108]
mov esi, eax
add ecx, 8
mov dword [esp], ecx
mov ecx, edi
call fcn.005cfdb0
mov edx, dword [esp]
lea ecx, [esp + 0x88]
push edi
push esi
call fcn.005d1c40
add esp, 8
cmp dword [esp + 0x88], 1
mov dword [esp + 0x78], 0
je 0x5c49bc
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x90]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
test edi, edi
je 0x5c4bd6
lea eax, [ebx + 0x10]
mov esi, dword [esp + 0xe8]
lea ecx, [esp + 0x100]
lea edx, [esp + 0xe0]
mov dword [esp + 0x30], eax
mov eax, edi
movzx edi, word [ebx + 0xa]
push edi
mov edi, eax
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
push dword [esi + 0x28]
call fcn.005ce640
add esp, 0x14
mov eax, dword [esp + 0x100]
add edi, 0xfffffff0
mov ebx, dword [esp + 0x30]
xor eax, 1
or eax, dword [esp + 0x104]
jne 0x5c484a
mov ecx, dword [esp + 0x110]
mov esi, dword [esp + 0x108]
mov eax, dword [esp + 0x10c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x114]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
mov eax, esi
mov dword [esp + 0xc], esi
shr esi, 8
jmp 0x5c437b
mov ecx, dword [esp + 0xc0]
cmp esi, 0x15
mov dword [esp + 0x10], ecx
jae 0x5c4d4b
cmp esi, 2
jb 0x5c4f07
mov ecx, dword [esp + 0x10]
lea eax, [esi + esi*2]
lea edi, [esi - 1]
xor edx, edx
lea eax, [ecx + eax*8]
jmp 0x5c4ac6
add ebx, eax
mov ecx, dword [esp + 0x30]
mov dword [ebx], esi
mov edi, dword [esp + 8]
mov dword [ebx + 4], ecx
movq xmm0, qword [esp + 0x100]
movq xmm1, qword [esp + 0x108]
movq qword [ebx + 8], xmm0
movq qword [ebx + 0x10], xmm1
add edx, 0xffffffe8
test edi, edi
je 0x5c4f0e
mov esi, dword [esp + 0x10]
lea ebx, [edi + edi*2]
mov dword [esp], edx
mov dword [esp + 8], edi
mov edx, dword [esi + ebx*8 - 0x18]
mov ecx, dword [esi + ebx*8 - 0x14]
mov edi, dword [esi + ebx*8 + 4]
cmp dword [esi + ebx*8], edx
mov esi, edx
mov edx, dword [esp]
mov dword [esp + 0x30], ecx
sbb edi, ecx
mov edi, dword [esp + 8]
lea edi, [edi - 1]
jae 0x5c4abb
mov dword [esp + 4], esi
mov esi, dword [esp + 0x10]
lea ecx, [edi + edi*2]
mov dword [esp + 8], edi
movsd xmm0, qword [esi + ecx*8 + 8]
movsd xmm1, qword [esi + ecx*8 + 0x10]
mov ecx, dword [esp + 0x18]
sub ecx, edi
movsd qword [esp + 0x108], xmm1
movsd qword [esp + 0x100], xmm0
cmp ecx, 3
lea ecx, [esi + ebx*8 - 0x18]
lea ebx, [esi + ebx*8]
mov esi, dword [esp + 4]
movsd xmm0, qword [ebx + 0x10]
movsd qword [ecx + 0x10], xmm0
movq xmm0, qword [ebx]
movq xmm1, qword [ebx + 8]
movq qword [ecx + 8], xmm1
movq qword [ecx], xmm0
jb 0x5c4a92
mov edi, dword [ecx + 0x34]
cmp dword [ecx + 0x30], esi
mov ecx, edx
sbb edi, dword [esp + 0x30]
jae 0x5c4a92
movsd xmm0, qword [eax + ecx + 0x10]
mov ebx, ecx
movsd qword [eax + ecx - 8], xmm0
movq xmm0, qword [eax + ecx]
movq xmm1, qword [eax + ecx + 8]
movq qword [eax + ecx - 0x10], xmm1
movq qword [eax + ecx - 0x18], xmm0
add ecx, 0x18
je 0x5c4a90
mov edi, dword [eax + ebx + 0x1c]
cmp dword [eax + ebx + 0x18], esi
sbb edi, dword [esp + 0x30]
jb 0x5c4b6c
jmp 0x5c4a90
mov al, 0x12
mov dword [esp + 0xc], eax
xor esi, esi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
jmp 0x5c437b
mov eax, dword [esp + 0x20]
mov dword [esp + 0x78], 0
mov ecx, dword [0x6d3de0]
lea edx, [esp + 0xe0]
mov dword [esp + 0x188], ecx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x18c], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0x190], 0
mov dword [esp + 0xc8], 0
lea ecx, [esp + 0x100]
push 0
lea esi, [esp + 0xc4]
push esi
lea esi, [esp + 0x190]
push esi
push dword [esp + 0xc0]
push eax
push 0
call fcn.005d1f80
add esp, 0x18
mov al, byte [esp + 0x100]
cmp al, 0x47
jne 0x5c4cb4
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc8]
cmp eax, 0x15
mov dword [esp + 0x48], eax
jae 0x5c4eb9
cmp eax, 2
jb 0x5c5e92
mov ebx, dword [esp + 0x48]
dec ebx
je 0x5c5e92
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x10], 0
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8 - 0x18]
mov dword [esp + 4], eax
jmp 0x5c4dba
xor eax, eax
mov dword [esp], 0x13
jmp 0x5c4ef7
mov ecx, dword [esp + 0x108]
mov edx, dword [esp + 0x104]
movzx edi, byte [esp + 0x103]
movzx esi, word [esp + 0x101]
mov dword [esp + 0xc], eax
mov dword [esp], ecx
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x10c]
test ecx, ecx
mov dword [esp + 0x30], edx
je 0x5c4d16
mov eax, dword [esp + 0xc0]
test eax, eax
je 0x5c4d16
shl ecx, 3
lea ecx, [ecx + ecx*2]
test ecx, ecx
je 0x5c4d16
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x18c]
shl edi, 0x10
test eax, eax
je 0x5c4d44
mov ecx, dword [esp + 0x188]
test ecx, ecx
je 0x5c4d44
and eax, 0x7ffffff
je 0x5c4d44
push ecx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
or esi, edi
jmp 0x5c437b
mov eax, esi
mov ecx, 0x18
xor ebx, ebx
shr eax, 1
mul ecx
mov edi, eax
setno al
jo 0x5c6f93
mov bl, al
shl ebx, 3
test edi, edi
js 0x5c6f93
je 0x5c4f17
mov ecx, edi
mov edx, ebx
call fcn.00404a50
mov ecx, eax
jmp 0x5c4f19
mov ecx, eax
mov dword [ecx], edi
mov dword [ecx + 4], ebx
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edi
mov dword [ecx + 0x10], esi
mov dword [ecx + 0x14], edx
add dword [esp + 4], 0xffffffe8
inc dword [esp + 0x10]
test ebx, ebx
je 0x5c5e92
mov ecx, ebx
lea ecx, [ebx - 1]
lea eax, [ebx + ebx*2]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x30], ecx
mov edi, dword [ebx + eax*8 - 0x18]
mov edx, dword [ebx + eax*8 + 0x10]
mov esi, dword [ebx + eax*8 - 8]
lea ecx, [ebx + eax*8]
mov dword [esp], edi
mov edi, dword [ebx + eax*8 - 0x14]
mov ebx, dword [esp + 0x30]
cmp edx, esi
mov dword [esp + 8], edi
jb 0x5c4e04
cmp edx, esi
ja 0x5c4da9
mov edi, ebx
mov ebx, dword [esp]
mov edx, dword [ecx + 4]
cmp dword [ecx], ebx
mov ebx, edi
mov edi, dword [esp + 8]
sbb edx, edi
jae 0x5c4da9
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x24]
movsd xmm1, qword [ecx + 8]
movq xmm0, qword [ecx]
sub edx, ebx
lea eax, [edi + eax*8 - 0x18]
lea ebx, [ebx + ebx*2]
mov dword [esp + 0x4c], eax
mov eax, dword [edi + ebx*8 + 8]
cmp edx, 3
mov edx, dword [esp + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [edi + ebx*8 + 0xc]
mov edi, dword [edi + ebx*8 + 0x14]
mov ebx, dword [esp + 8]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x18], edi
mov edi, dword [esp]
movsd qword [eax + 8], xmm1
movq xmm1, qword [ecx + 0x10]
movq qword [eax], xmm0
movq qword [eax + 0x10], xmm1
mov eax, dword [esp + 4]
jae 0x5c4e99
jmp 0x5c4d88
movsd xmm0, qword [eax + 0x28]
lea ecx, [eax + 0x18]
dec edx
movsd qword [eax + 0x10], xmm0
movq xmm0, qword [eax + 0x18]
movq xmm1, qword [eax + 0x20]
movq qword [eax + 8], xmm1
movq qword [eax], xmm0
mov eax, ecx
je 0x5c4d88
mov ecx, dword [eax + 0x28]
cmp ecx, esi
jb 0x5c4e70
cmp ecx, esi
ja 0x5c4d86
mov ecx, dword [eax + 0x1c]
cmp dword [eax + 0x18], edi
sbb ecx, ebx
mov ecx, eax
jb 0x5c4e70
jmp 0x5c4d88
shr eax, 1
mov ecx, 0x18
xor ebx, ebx
mul ecx
setno cl
jo 0x5c6f93
mov bl, cl
shl ebx, 3
test eax, eax
js 0x5c6f93
mov dword [esp + 0x1a8], eax
je 0x5c5639
mov ecx, eax
mov edx, ebx
call fcn.00404a50
mov ecx, eax
jmp 0x5c563b
mov esi, dword [esp]
mov dword [esp + 4], 0
jmp 0x5c3f36
mov ebx, eax
jmp 0x5c3eca
mov ebx, dword [esp + 0xc]
jmp 0x5c3eca
mov ecx, ebx
mov eax, dword [0x6d6b64]
test ecx, ecx
mov dword [esp + 0x48], edi
mov dword [esp + 0x30], ecx
je 0x5c72c8
mov ecx, dword [esp + 0x10]
mov edi, eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
lea edx, [ecx - 0x48]
mov dword [esp + 0x2c], edx
lea edx, [ecx - 0x18]
add ecx, 0x18
mov dword [esp + 0x70], edx
xor edx, edx
mov dword [esp + 0x5c], ecx
jmp 0x5c4f7b
mov edx, 1
mov esi, dword [esp + 0x28]
test esi, esi
je 0x5c55d3
mov eax, esi
mov dword [esp + 0x1c], edi
dec eax
je 0x5c4fda
mov dword [esp + 0x14], edx
mov dword [esp + 8], eax
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
lea ebx, [esi + esi*2]
mov ecx, esi
mov dword [esp + 0xc], ecx
mov esi, dword [eax + ebx*8 - 0x30]
mov edi, dword [eax + edx*8 + 4]
cmp dword [eax + edx*8], esi
mov edx, ebx
mov ebx, dword [eax + ebx*8 - 0x2c]
sbb edi, ebx
jae 0x5c4fe6
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 8]
mov dword [esp], edx
lea edi, [eax + edx*8]
nop
cmp ecx, 1
je 0x5c5030
mov edx, dword [edi]
mov eax, dword [edi + 4]
dec ecx
add edi, 0xffffffe8
cmp esi, edx
mov esi, edx
sbb ebx, eax
mov ebx, eax
jb 0x5c4fc0
jmp 0x5c5032
mov edi, 1
xor esi, esi
jmp 0x5c529d
mov eax, dword [esp + 0x2c]
add ecx, 0xfffffffe
xor edi, edi
mov dword [esp], ecx
lea eax, [eax + edx*8]
nop word cs:[eax + eax]
nop
cmp dword [esp], edi
je 0x5c5293
mov edx, dword [eax]
mov ecx, dword [eax + 4]
inc edi
add eax, 0xffffffe8
cmp esi, edx
mov esi, edx
sbb ebx, ecx
mov ebx, ecx
jae 0x5c5000
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
sub ecx, edi
inc edi
jmp 0x5c50ff
xor ecx, ecx
mov esi, dword [esp + 0xc]
mov edi, esi
sub edi, ecx
jb 0x5c6f3a
cmp esi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
ja 0x5c6f5c
cmp edi, 2
jb 0x5c50ff
mov dword [esp + 8], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x10]
mov esi, edi
shr esi, 1
lea ebx, [ecx + eax*8]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp]
lea eax, [eax + ecx*8]
nop word cs:[eax + eax]
nop dword [eax]
movsd xmm0, qword [ebx + 0x10]
movsd qword [esp + 0x110], xmm0
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
movsd qword [esp + 0x108], xmm1
movsd qword [esp + 0x100], xmm0
movsd xmm0, qword [eax + 0x10]
movsd qword [ebx + 0x10], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [ebx + 8], xmm1
movsd qword [ebx], xmm0
add ebx, 0x18
movsd xmm0, qword [esp + 0x110]
movsd qword [eax + 0x10], xmm0
movq xmm0, qword [esp + 0x100]
movq xmm1, qword [esp + 0x108]
movq qword [eax + 8], xmm1
movq qword [eax], xmm0
add eax, 0xffffffe8
dec esi
jne 0x5c5080
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x5c528f
cmp edi, 9
ja 0x5c528f
cmp esi, dword [esp + 0x18]
ja 0x5c6f77
mov edi, ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x5c]
mov ebx, edi
not ebx
add ebx, esi
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [esp + 0x24], eax
nop word cs:[eax + eax]
nop dword [eax]
mov edi, dword [esp + 0xc]
lea esi, [ecx - 1]
sub edi, esi
jb 0x5c6ebf
cmp edi, 1
jbe 0x5c5278
lea eax, [esi + esi*2]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 4], ebx
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x4c], eax
lea eax, [esi + eax*8]
mov edx, dword [esi + ecx*8 + 4]
mov ebx, dword [eax]
mov dword [esp + 0x50], eax
mov eax, dword [eax + 4]
cmp dword [esi + ecx*8], ebx
mov dword [esp], ebx
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x28]
mov dword [esp + 8], eax
sbb edx, eax
mov edx, dword [esp + 0x14]
jae 0x5c5278
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x4c]
cmp edi, 3
movsd xmm0, qword [edx + eax*8 + 8]
movsd xmm1, qword [edx + eax*8 + 0x10]
lea ecx, [edx + ecx*8]
mov eax, dword [esp + 0x50]
movsd qword [esp + 0x108], xmm1
movsd qword [esp + 0x100], xmm0
movsd xmm0, qword [ecx + 0x10]
movsd qword [eax + 0x10], xmm0
movq xmm0, qword [ecx]
movq xmm1, qword [ecx + 8]
movq qword [eax + 8], xmm1
movq qword [eax], xmm0
jb 0x5c5248
mov edx, dword [esp]
mov ebx, dword [eax + 0x34]
cmp dword [eax + 0x30], edx
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x24]
sbb ebx, dword [esp + 8]
jae 0x5c5248
nop word cs:[eax + eax]
nop dword [eax + eax]
movsd xmm0, qword [edx + 0x10]
mov ecx, edx
dec eax
movsd qword [edx - 8], xmm0
movq xmm0, qword [edx]
movq xmm1, qword [edx + 8]
movq qword [edx - 0x10], xmm1
movq qword [edx - 0x18], xmm0
je 0x5c5248
mov ebx, dword [esp]
mov esi, dword [ecx + 0x1c]
lea edx, [ecx + 0x18]
cmp dword [ecx + 0x18], ebx
sbb esi, dword [esp + 8]
mov esi, dword [esp + 0x28]
jb 0x5c5210
mov eax, dword [esp]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 4]
mov dword [ecx + 4], edx
mov dword [ecx], eax
mov edx, dword [esp + 0x14]
movq xmm0, qword [esp + 0x100]
movq xmm1, qword [esp + 0x108]
movq qword [ecx + 8], xmm0
movq qword [ecx + 0x10], xmm1
test esi, esi
je 0x5c529d
add dword [esp + 0x24], 0xffffffe8
inc ebx
cmp edi, 0xa
mov ecx, esi
jb 0x5c5140
jmp 0x5c529d
mov esi, ecx
jmp 0x5c529d
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
xor esi, esi
cmp edx, dword [esp + 0x8c]
mov ebx, edi
jne 0x5c52c4
lea ecx, [esp + 0x88]
call fcn.005c7320
mov edi, dword [esp + 0x88]
mov edx, dword [esp + 0x90]
jmp 0x5c52c8
mov edi, dword [esp + 0x1c]
mov dword [edi + edx*8], esi
mov dword [edi + edx*8 + 4], ebx
inc edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], edi
cmp edx, 2
mov eax, edx
mov dword [esp + 0x90], edx
jae 0x5c535e
jmp 0x5c4f6f
mov ecx, dword [esp + 0x30]
mov edi, esi
sub ebx, ecx
mov edx, 0xaaaaaaab
mov eax, ebx
mul edx
shr edx, 1
and edx, 0xfffffff8
lea eax, [edx + edx*2]
push eax
push ecx
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 4]
mov ecx, dword [esp]
add edx, dword [esp + 8]
mov dword [edi + eax*8], ecx
mov ecx, dword [esp + 0x50]
mov dword [edi + eax*8 + 4], edx
mov edx, dword [esp + 0x4c]
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 + 0xc]
cmp eax, 1
mov dword [esp + 0x90], eax
jbe 0x5c4f6a
cmp dword [edi + eax*8 - 8], 0
lea ecx, [eax - 1]
mov edx, eax
mov dword [esp + 0xc], ecx
je 0x5c53d0
mov esi, dword [edi + edx*8 - 0xc]
mov eax, dword [edi + ecx*8 + 4]
cmp esi, eax
jbe 0x5c53d0
cmp edx, 3
jb 0x5c55bf
mov ebx, dword [edi + edx*8 - 0x14]
lea ecx, [edx - 3]
mov dword [esp + 0x14], edx
lea edx, [eax + esi]
mov dword [esp + 4], ecx
cmp ebx, edx
mov dword [esp], ebx
jbe 0x5c55a7
mov edx, dword [esp + 0x14]
cmp edx, 4
jb 0x5c55c9
mov ecx, dword [esp]
add esi, ecx
cmp dword [edi + edx*8 - 0x1c], esi
mov esi, ecx
mov ecx, dword [esp + 4]
jbe 0x5c53e0
jmp 0x5c4f6f
cmp edx, 3
jb 0x5c53e4
mov eax, dword [edi + ecx*8 + 4]
mov esi, dword [edi + edx*8 - 0x14]
lea ecx, [edx - 3]
cmp esi, eax
jb 0x5c53e7
lea ecx, [edx - 2]
lea eax, [ecx + 1]
cmp edx, eax
jbe 0x5c67a7
mov esi, edx
sub esi, ecx
jbe 0x5c67b8
mov edx, edi
mov ebx, eax
mov eax, dword [edi + ecx*8 + 8]
mov edi, dword [edi + ecx*8 + 4]
mov edx, dword [edx + ecx*8]
mov dword [esp], eax
mov dword [esp + 0x24], edi
add edx, edi
mov eax, edx
sub eax, dword [esp]
mov dword [esp + 0x14], eax
jb 0x5c6eba
cmp edx, dword [esp + 0x18]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], ebx
ja 0x5c6ea5
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], ecx
mov ebx, dword [eax + ecx*8 + 0xc]
mov eax, dword [esp]
mov ecx, dword [esp + 0x10]
lea eax, [eax + eax*2]
mov dword [esp + 8], ebx
lea edi, [ecx + eax*8]
lea eax, [ebx + ebx*2]
lea esi, [edi + eax*8]
lea eax, [edx + edx*2]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x14]
sub eax, ebx
cmp eax, ebx
jae 0x5c5510
mov dword [esp + 0x14], eax
lea eax, [eax*8]
lea ebx, [eax + eax*2]
push ebx
push esi
push dword [esp + 0x38]
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x3c]
add esp, 0xc
add ebx, ecx
cmp dword [esp + 8], 0
jle 0x5c52ef
cmp dword [esp + 0x14], 0
jle 0x5c52ef
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x68]
lea eax, [eax + ecx*8]
mov ecx, dword [ebx - 0x18]
mov edx, dword [ebx - 0x14]
cmp ecx, dword [esi - 0x18]
sbb edx, dword [esi - 0x14]
jb 0x5c54d0
add ebx, 0xffffffe8
mov ecx, ebx
jmp 0x5c54d5
add esi, 0xffffffe8
mov ecx, esi
movsd xmm1, qword [ecx + 8]
movq xmm0, qword [ecx]
cmp edi, esi
movsd qword [eax + 8], xmm1
movq xmm1, qword [ecx + 0x10]
movq qword [eax], xmm0
movq qword [eax + 0x10], xmm1
jae 0x5c52eb
add eax, 0xffffffe8
cmp ebx, dword [esp + 0x30]
ja 0x5c54b0
jmp 0x5c52eb
lea eax, [ebx*8]
lea ebx, [eax + eax*2]
push ebx
push edi
push dword [esp + 0x38]
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
add esp, 0xc
add ebx, ecx
test eax, eax
jle 0x5c52f1
cmp dword [esp + 0x14], eax
jle 0x5c52f1
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x68]
lea eax, [eax + edx*8]
nop
mov edx, ecx
mov ecx, dword [esi]
cmp ecx, dword [edx]
mov ecx, dword [esi + 4]
sbb ecx, dword [edx + 4]
setae cl
movzx ecx, cl
lea ecx, [ecx + ecx*2]
lea ecx, [edx + ecx*8]
cmovb edx, esi
movsd xmm1, qword [edx + 8]
movq xmm0, qword [edx]
movsd qword [edi + 8], xmm1
movq xmm1, qword [edx + 0x10]
setb dl
movq qword [edi], xmm0
cmp ecx, ebx
movq qword [edi + 0x10], xmm1
lea edi, [edi + 0x18]
jae 0x5c52f1
movzx edx, dl
lea edx, [edx + edx*2]
lea esi, [esi + edx*8]
cmp esi, eax
jb 0x5c5550
jmp 0x5c52f1
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 4]
mov esi, dword [esp]
cmp esi, eax
jae 0x5c53e4
jmp 0x5c53e7
mov edx, 2
jmp 0x5c4f6f
mov edx, 3
jmp 0x5c4f6f
test dword [esp + 0x8c], 0x1fffffff
je 0x5c55ee
push edi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp + 0x48]
mov ecx, 0xaaaaaaab
mov eax, esi
mul ecx
cmp esi, 0x18
jb 0x5c5621
shr edx, 1
mov ecx, esi
and edx, 0xfffffff8
lea eax, [edx + edx*2]
sub ecx, eax
cmp esi, ecx
je 0x5c5621
push dword [esp + 0x30]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov ebx, dword [esp + 0x190]
jmp 0x5c3eca
xor eax, eax
mov esi, 0x13
jmp 0x5c3f36
mov ecx, ebx
mov eax, dword [0x6d6b64]
test ecx, ecx
mov dword [esp + 8], ecx
je 0x5c72d8
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x88], eax
mov edi, eax
mov eax, dword [esp + 0x48]
xor ebx, ebx
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
lea edx, [ecx - 0x30]
lea esi, [ecx - 0x38]
add ecx, 0xffffffe8
mov dword [esp + 0xb8], edx
mov dword [esp + 0x1b4], esi
mov dword [esp + 0x7c], ecx
jmp 0x5c56a3
mov ebx, 2
mov eax, dword [esp + 0x18]
test eax, eax
je 0x5c5e31
mov ecx, eax
dec eax
mov dword [esp + 0x5c], edi
je 0x5c5760
mov edx, ecx
lea edx, [ecx - 2]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*2]
mov dword [esp + 0x4c], ebx
lea edi, [edx + edx*2]
mov dword [esp + 0x30], eax
mov esi, dword [ecx + eax*8 + 0x10]
mov eax, dword [ecx + edi*8 + 0x10]
cmp esi, eax
mov dword [esp], esi
jb 0x5c5715
mov esi, dword [ecx + edi*8]
mov edi, dword [ecx + edi*8 + 4]
cmp dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 0x10], edi
ja 0x5c5a2d
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x30]
mov edi, dword [ecx + edi*8 + 4]
mov dword [esp], edi
mov edi, dword [esp + 4]
cmp dword [ecx + esi*8], edi
mov ecx, dword [esp + 0x10]
sbb dword [esp], ecx
jae 0x5c5a2d
xor ecx, ecx
test edx, edx
je 0x5c575a
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0xb8]
lea esi, [esi + esi*2]
lea esi, [edi + esi*8]
jmp 0x5c5738
dec edx
add esi, 0xffffffe8
mov eax, edi
test edx, edx
je 0x5c5780
mov edi, dword [esi - 8]
cmp eax, edi
jb 0x5c572e
cmp eax, edi
ja 0x5c5758
mov eax, dword [esi - 0x18]
mov ecx, dword [esi + 4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
cmp dword [esi], eax
sbb ecx, dword [esi - 0x14]
jb 0x5c572e
mov ecx, edx
mov esi, dword [esp + 0xc]
jmp 0x5c5786
xor eax, eax
mov dword [esp + 0x30], 1
cmp ebx, dword [esp + 0x8c]
mov dword [esp + 0x18], eax
jne 0x5c5ad7
jmp 0x5c5a0c
mov esi, dword [esp + 0xc]
xor ecx, ecx
mov eax, esi
sub eax, ecx
mov dword [esp + 0x30], eax
jb 0x5c6f3a
cmp esi, dword [esp + 0x48]
ja 0x5c6f62
cmp dword [esp + 0x30], 2
jb 0x5c584f
mov ebx, esi
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x7c]
lea edx, [ecx + ecx*2]
lea edx, [esi + edx*8]
lea esi, [ebx + ebx*2]
shr eax, 1
lea esi, [edi + esi*8]
nop word cs:[eax + eax]
nop
movsd xmm0, qword [edx + 0x10]
movsd qword [esp + 0x110], xmm0
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [esp + 0x108], xmm1
movsd qword [esp + 0x100], xmm0
movsd xmm0, qword [esi + 0x10]
movsd qword [edx + 0x10], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
add edx, 0x18
movsd xmm0, qword [esp + 0x110]
movsd qword [esi + 0x10], xmm0
movq xmm0, qword [esp + 0x100]
movq xmm1, qword [esp + 0x108]
movq qword [esi + 8], xmm1
movq qword [esi], xmm0
add esi, 0xffffffe8
dec eax
jne 0x5c57d0
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0xc]
test ecx, ecx
je 0x5c59f9
cmp dword [esp + 0x30], 9
ja 0x5c59f9
cmp esi, dword [esp + 0x48]
ja 0x5c6f9a
mov edx, dword [esp + 0x24]
lea eax, [ecx + ecx*2]
lea eax, [edx + eax*8]
mov edx, ecx
not edx
mov dword [esp + 4], eax
add edx, esi
mov dword [esp + 0x10], edx
nop word cs:[eax + eax]
nop
lea edx, [ecx - 1]
sub esi, edx
mov eax, edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x30], esi
jb 0x5c6fa7
cmp dword [esp + 0x30], 1
jbe 0x5c5987
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
lea ecx, [ecx + ecx*2]
lea esi, [eax + eax*2]
mov edi, dword [ebx + ecx*8 + 0x10]
lea eax, [ebx + ecx*8]
mov ecx, dword [ebx + esi*8 + 0x10]
lea edx, [ebx + esi*8]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x28], edx
mov dword [esp + 0x74], edi
cmp edi, ecx
mov edi, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x50], edi
mov dword [esp], edx
jb 0x5c5904
cmp dword [esp + 0x74], ecx
ja 0x5c5987
mov edi, dword [esp + 0x50]
mov edx, dword [eax + 4]
cmp dword [eax], edi
sbb edx, dword [esp]
jae 0x5c5987
mov ebx, dword [esp + 0x24]
movsd xmm1, qword [eax + 8]
movq xmm0, qword [eax]
cmp dword [esp + 0x30], 3
mov edx, dword [ebx + esi*8 + 8]
mov dword [esp + 0x84], edx
mov edx, dword [ebx + esi*8 + 0xc]
mov dword [esp + 0x80], edx
mov edx, dword [ebx + esi*8 + 0x14]
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x28]
movsd qword [edx + 8], xmm1
movq xmm1, qword [eax + 0x10]
movq qword [edx], xmm0
movq qword [edx + 0x10], xmm1
mov edx, dword [esp + 4]
jae 0x5c59d5
mov edx, dword [esp]
mov dword [eax], ebx
mov ebx, dword [esp + 0x4c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x84]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x80]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x74]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
mov eax, dword [esp + 0x18]
test eax, eax
je 0x5c59fb
add dword [esp + 4], 0xffffffe8
inc dword [esp + 0x10]
cmp dword [esp + 0x30], 0xa
mov esi, dword [esp + 0xc]
mov ecx, eax
jb 0x5c5890
jmp 0x5c59fb
movsd xmm0, qword [edx + 0x28]
lea eax, [edx + 0x18]
dec esi
movsd qword [edx + 0x10], xmm0
movq xmm0, qword [edx + 0x18]
movq xmm1, qword [edx + 0x20]
movq qword [edx + 8], xmm1
movq qword [edx], xmm0
mov edx, eax
je 0x5c595d
mov eax, dword [edx + 0x28]
cmp eax, ecx
jb 0x5c59b0
cmp eax, ecx
ja 0x5c59f2
mov eax, dword [edx + 0x1c]
cmp dword [edx + 0x18], ebx
sbb eax, dword [esp]
mov eax, edx
jb 0x5c59b0
jmp 0x5c595d
mov eax, edx
jmp 0x5c595d
mov eax, ecx
cmp ebx, dword [esp + 0x8c]
mov dword [esp + 0x18], eax
jne 0x5c5ad7
lea ecx, [esp + 0x88]
mov edx, ebx
call fcn.005c7320
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x90]
jmp 0x5c5adb
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1b4]
mov dword [esp + 0x18], 2
lea ecx, [ecx + ecx*2]
lea esi, [edx + ecx*8]
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x30], edi
sub ecx, edi
je 0x5c5abc
mov dword [esp + 0x74], edx
mov edx, dword [esi]
cmp eax, edx
jb 0x5c584b
mov dword [esp], esi
mov dword [esp + 0x50], edx
mov esi, dword [esp]
mov edx, dword [esp]
mov esi, dword [esi - 0x10]
mov dword [esp + 4], esi
mov esi, dword [edx - 0xc]
add edx, 0xffffffe8
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x30]
inc esi
mov dword [esp + 0x18], esi
mov esi, edx
mov edx, dword [esp + 0x50]
cmp eax, edx
mov eax, edx
ja 0x5c5a46
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 4]
mov eax, dword [esp + 0x10]
sbb dword [esp + 0x74], eax
mov eax, edx
jae 0x5c5a46
jmp 0x5c584b
mov ecx, dword [esp + 0xc]
xor eax, eax
mov dword [esp + 0x30], ecx
cmp ebx, dword [esp + 0x8c]
mov dword [esp + 0x18], eax
je 0x5c5a0c
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
mov edi, eax
mov dword [esp + 0x5c], eax
mov dword [eax + ebx*8], ecx
mov dword [eax + ebx*8 + 4], edx
inc ebx
cmp ebx, 2
mov dword [esp + 0x90], ebx
jb 0x5c5697
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp dword [edi + ebx*8 - 8], 0
je 0x5c5b5e
mov edx, dword [edi + ebx*8 - 0xc]
mov eax, dword [edi + ebx*8 - 4]
cmp edx, eax
jbe 0x5c5b5e
cmp ebx, 3
jb 0x5c5692
lea ecx, [ebx - 3]
lea esi, [eax + edx]
mov dword [esp + 0xc], ecx
mov ecx, dword [edi + ebx*8 - 0x14]
cmp ecx, esi
mov esi, ecx
jbe 0x5c5d7f
cmp ebx, 4
jb 0x5c5e27
add edx, esi
mov ecx, dword [esp + 0xc]
cmp dword [edi + ebx*8 - 0x1c], edx
jbe 0x5c5b6e
jmp 0x5c5697
cmp ebx, 3
jb 0x5c5b72
mov esi, dword [edi + ebx*8 - 0x14]
mov eax, dword [edi + ebx*8 - 4]
lea ecx, [ebx - 3]
cmp esi, eax
jb 0x5c5b75
lea ecx, [ebx - 2]
lea eax, [ecx + 1]
cmp ebx, eax
jbe 0x5c67f6
cmp ebx, ecx
jbe 0x5c6809
mov ebx, dword [edi + ecx*8 + 4]
mov edx, dword [edi + ecx*8]
mov esi, dword [edi + ecx*8 + 8]
add edx, ebx
mov dword [esp + 0x50], ebx
mov ebx, edx
sub ebx, esi
jb 0x5c6eec
cmp edx, dword [esp + 0x48]
mov dword [esp + 0x4c], eax
ja 0x5c6ed7
mov edi, dword [edi + ecx*8 + 0xc]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x24]
lea eax, [esi + esi*2]
mov dword [esp + 0x28], esi
lea ecx, [ecx + eax*8]
lea eax, [edi + edi*2]
mov dword [esp + 0x10], edi
lea esi, [ecx + eax*8]
lea eax, [edx + edx*2]
mov dword [esp + 0x30], ecx
mov dword [esp + 4], eax
mov eax, ebx
sub eax, edi
cmp eax, edi
jae 0x5c5ca7
mov dword [esp], eax
lea eax, [eax*8]
lea ebx, [eax + eax*2]
push ebx
push esi
mov edi, dword [esp + 0x10]
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
add ebx, edi
cmp dword [esp + 0x10], 0
jle 0x5c5d6b
cmp dword [esp], 0
jle 0x5c5d6b
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 4]
lea eax, [eax + ecx*8]
nop word cs:[eax + eax]
mov edx, dword [ebx - 8]
mov edi, dword [esi - 8]
lea ecx, [esi - 0x18]
cmp edx, edi
jb 0x5c5c60
mov dword [esp + 4], esi
lea esi, [ebx - 0x18]
cmp edx, edi
mov dword [esp], esi
ja 0x5c5c9c
mov edi, dword [esp]
mov edx, dword [ecx]
cmp dword [edi], edx
mov esi, dword [edi + 4]
mov edx, edi
sbb esi, dword [ecx + 4]
mov esi, dword [esp + 4]
jae 0x5c5c66
mov esi, ecx
mov edi, ebx
mov edx, ecx
movsd xmm0, qword [edx + 0x10]
cmp dword [esp + 0x30], esi
movsd qword [eax + 0x10], xmm0
movq xmm0, qword [edx]
movq xmm1, qword [edx + 8]
movq qword [eax + 8], xmm1
movq qword [eax], xmm0
jae 0x5c5d74
add eax, 0xffffffe8
cmp edi, dword [esp + 8]
mov ebx, edi
ja 0x5c5c30
jmp 0x5c5d74
mov edi, dword [esp]
mov esi, dword [esp + 4]
mov edx, edi
jmp 0x5c5c66
mov eax, dword [esp + 0x10]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [esp], eax
push eax
push ecx
mov edi, dword [esp + 0x10]
push edi
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0xc]
mov ecx, edi
add esp, 0xc
add eax, edi
cmp dword [esp + 0x10], 0
mov dword [esp], eax
jle 0x5c5d98
mov eax, dword [esp + 0x10]
cmp ebx, eax
jle 0x5c5d90
mov edx, ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 4]
lea eax, [eax + ecx*8]
nop word cs:[eax + eax]
mov ecx, dword [esi + 0x10]
mov edi, dword [edx + 0x10]
cmp ecx, edi
jb 0x5c5d1a
cmp ecx, edi
ja 0x5c5d30
mov ecx, dword [edx]
mov edi, dword [esi + 4]
cmp dword [esi], ecx
sbb edi, dword [edx + 4]
jae 0x5c5d30
mov ecx, edx
lea ebx, [esi + 0x18]
mov edx, esi
jmp 0x5c5d35
lea ecx, [edx + 0x18]
mov ebx, esi
mov esi, dword [esp + 0x30]
movsd xmm0, qword [edx + 0x10]
cmp ecx, dword [esp]
movsd qword [esi + 0x10], xmm0
lea edi, [esi + 0x18]
movq xmm0, qword [edx]
movq xmm1, qword [edx + 8]
movq qword [esi + 8], xmm1
movq qword [esi], xmm0
jae 0x5c5da0
cmp ebx, eax
mov edx, ecx
mov esi, ebx
mov dword [esp + 0x30], edi
jb 0x5c5d00
jmp 0x5c5da0
mov ecx, edi
mov edi, esi
mov dword [esp], ebx
jmp 0x5c5da0
mov ecx, dword [esp + 8]
mov dword [esp], edi
mov edi, esi
jmp 0x5c5da0
mov ecx, dword [esp + 0xc]
cmp esi, eax
jae 0x5c5b72
jmp 0x5c5b75
mov edi, dword [esp + 0x30]
mov ebx, eax
jmp 0x5c5da4
mov edi, dword [esp + 0x30]
nop dword [eax]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp]
mov edx, 0xaaaaaaab
sub eax, ecx
mul edx
shr edx, 1
and edx, 0xfffffff8
lea eax, [edx + edx*2]
push eax
push ecx
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
add ecx, ebx
mov dword [edi + edx*8], eax
mov dword [edi + edx*8 + 4], ecx
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x90]
cmp ebx, ecx
jbe 0x5c6ec6
mov eax, ebx
lea esi, [edi + ecx*8]
sub eax, edx
lea edx, [edi + ecx*8 + 8]
lea eax, [eax*8 - 0x10]
push eax
push edx
push esi
call sub.msvcrt.dll_memmove
add esp, 0xc
dec ebx
cmp ebx, 1
mov dword [esp + 0x90], ebx
ja 0x5c5b10
mov ebx, 1
jmp 0x5c5697
mov ebx, 3
jmp 0x5c5697
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x5c5e5c
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x5c5e5c
and eax, 0x1fffffff
je 0x5c5e5c
push ecx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp + 0x1a8]
mov ecx, 0xaaaaaaab
mov eax, esi
mul ecx
cmp esi, 0x18
jb 0x5c5e92
shr edx, 1
mov ecx, esi
and edx, 0xfffffff8
lea eax, [edx + edx*2]
sub ecx, eax
cmp esi, ecx
je 0x5c5e92
push dword [esp + 8]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esp + 0x18c]
mov esi, dword [esp + 0x190]
mov eax, dword [esp + 0x188]
cmp ecx, esi
jbe 0x5c5ed5
mov edi, dword [esp + 0x68]
test eax, eax
je 0x5c5ed9
mov ebx, esi
shl ebx, 5
je 0x5c5f23
push ebx
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
mov dword [esp], eax
jne 0x5c5edc
jmp 0x5c6f07
mov edi, dword [esp + 0x68]
mov dword [esp], eax
mov ecx, dword [esp + 0xc4]
mov ebx, dword [esp + 0xc8]
mov eax, dword [esp + 0xc0]
cmp ecx, ebx
jbe 0x5c5f5c
test eax, eax
je 0x5c5f5c
lea edx, [ebx*8]
lea edx, [edx + edx*2]
test edx, edx
je 0x5c5f3f
mov dword [esp + 0x30], edx
push edx
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
jne 0x5c5f5c
jmp 0x5c72e8
shl ecx, 5
mov dword [esp], 8
je 0x5c5edc
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x5c5edc
shl ecx, 3
lea ecx, [ecx + ecx*2]
test ecx, ecx
je 0x5c5f57
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, 8
cmp dword [edi], 2
jne 0x5c5f81
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x30], esi
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
xor eax, eax
mov esi, ecx
mov dword [esp + 0xc], ecx
shr esi, 8
jmp 0x5c438b
test esi, 0x7ffffff
je 0x5c5f9d
push dword [esp]
push 0
push dword [0x6f1130]
mov esi, eax
call sub.KERNEL32.dll_HeapFree
mov eax, esi
shl ebx, 3
lea ecx, [ebx + ebx*2]
test ecx, ecx
je 0x5c43d2
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x5c43d2
mov ecx, dword [esp + 0x98]
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
mov dword [esp], ecx
mov ecx, dword [esp + 0x9c]
jmp 0x5c4a4c
mov eax, dword [0x6d6b64]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x18], edx
mov dword [esp], edi
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
mov ebx, dword [eax + 0x18]
test ebx, ebx
je 0x5c6158
mov ecx, dword [eax + 0xc]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
xor edx, edx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 4], eax
mov edi, ebx
xor ecx, ecx
mov eax, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x58], edx
jmp 0x5c605c
mov edx, dword [esp + 0x58]
nop dword [eax]
mov eax, edi
mov edi, eax
sub edi, ecx
jbe 0x5c6152
mov esi, dword [esp + 4]
shr edi, 1
add edi, ecx
lea ebx, [edi + edi*2]
cmp dword [esi + ebx*8 + 0x10], edx
ja 0x5c6050
jb 0x5c609c
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x6c]
cmp esi, dword [edx + ebx*8]
mov esi, 0
sbb esi, dword [edx + ebx*8 + 4]
jb 0x5c6045
mov ecx, dword [esp + 0x6c]
cmp ecx, dword [edx + ebx*8 + 8]
mov ecx, 0
sbb ecx, dword [edx + ebx*8 + 0xc]
mov edx, dword [esp + 0x58]
jb 0x5c60aa
inc edi
mov ecx, edi
mov edi, eax
sub edi, ecx
ja 0x5c605c
jmp 0x5c6152
mov eax, dword [esp + 4]
mov esi, dword [eax + ebx*8 + 0x14]
cmp esi, dword [esp + 0x10]
jae 0x5c6e90
shl esi, 5
mov ebx, dword [esp + 0x1c]
add esi, dword [esp + 0x64]
cmp edx, dword [esp + 0x104]
jne 0x5c60f0
lea ecx, [esp + 0x100]
call fcn.005d5800
mov eax, dword [esp + 0x100]
mov edx, dword [esp + 0x108]
mov ecx, dword [esp + 0x54]
jmp 0x5c60fb
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0xbc]
mov dword [eax + edx*4], esi
mov esi, dword [esp + 4]
inc edi
mov dword [esp + 0xbc], eax
inc edx
lea eax, [edi + edi*2]
sub ebx, edi
mov dword [esp + 0x108], edx
lea eax, [esi + eax*8]
jne 0x5c6031
jmp 0x5c615a
mov ecx, edi
mov esi, dword [esp + 8]
mov edi, 1
mov dword [esp + 0x5c], 0
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], edx
mov dword [esp], ecx
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], ecx
jmp 0x5c61ad
mov ecx, dword [esp + 0x54]
jmp 0x5c615a
xor edx, edx
mov esi, dword [esp + 0x100]
mov edi, dword [ecx + 0x58]
mov ecx, dword [esp + 0x104]
mov ebx, dword [esp + 0x80]
lea eax, [esi + edx*4]
mov edx, dword [esp + 0xb8]
add edi, 8
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0xb8], edi
mov edi, 2
mov dword [esp + 0x84], eax
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x80], edx
mov eax, dword [esp + 0x1ac]
mov dword [esp + 0x48], edi
mov ecx, edi
mov esi, dword [esp + 8]
mov edx, dword [esp]
mov edi, dword [esp + 0x5c]
mov eax, dword [eax]
mov dword [esp + 0xbc], eax
mov al, 1
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0xb4], eax
jmp 0x5c62b9
mov dword [esp + 0x10], edx
mov edx, dword [edi + 0x10]
mov dword [esp + 0x1c], ebx
mov edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x64], edx
mov dword [esp + 0xc], esi
mov edx, edi
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], edi
mov dword [esp + 0x108], ebx
mov dword [esp + 0x10c], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x110], esi
mov dword [esp + 0x114], edx
mov edx, dword [esp + 8]
mov dword [esp + 0x118], edx
mov edx, dword [esp]
mov dword [esp + 0x11c], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x120], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x124], edx
lea edx, [esp + 0x100]
push edx
push eax
call dword [ecx + 0x10]
add esp, 8
mov eax, dword [esp + 4]
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x20], 0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
cmp ecx, 1
je 0x5c63a0
cmp ecx, 2
jne 0x5c65e8
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x74]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x14], eax
mov dword [esp + 8], esi
mov dword [esp], edx
mov dword [esp + 0x5c], edi
cmp ecx, ebx
je 0x5c6402
mov edi, dword [ecx - 4]
add ecx, 0xfffffffc
mov dword [esp + 0x84], ecx
test edi, edi
je 0x5c6409
mov eax, dword [edi + 0x14]
mov esi, dword [edi + 0x18]
mov ecx, dword [edi]
test eax, eax
mov dword [esp + 4], eax
mov dword [esp + 0x58], esi
setne byte [esp + 0x1c]
test esi, esi
setne byte [esp + 0x54]
xor edx, edx
or ecx, dword [edi + 4]
je 0x5c64da
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0x100]
push dword [esp + 0xb8]
call fcn.005d2dd0
add esp, 4
cmp dword [esp + 0x100], 1
je 0x5c65bf
mov ecx, dword [esp + 0x104]
mov edx, 0
test ecx, ecx
je 0x5c64da
mov edx, dword [edi]
lea eax, [edx + edx*2]
shl eax, 2
add eax, dword [ecx]
cmp dword [ecx + 4], edx
mov edx, 0
cmovbe eax, edx
jbe 0x5c64da
mov edx, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x60], eax
jmp 0x5c64da
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0xb4], 2
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], 2
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x30]
jmp 0x5c6560
mov dword [esp + 0x84], ebx
mov ecx, dword [esp + 0xb4]
mov ebx, dword [esp + 0x2c]
mov ecx, dword [ecx + 4]
test ecx, ecx
mov dword [esp + 0x20], ecx
je 0x5c642f
mov ecx, dword [esp + 0x80]
movzx edi, word [ecx + 0x14c]
jmp 0x5c6433
mov di, 2
mov eax, dword [esp + 0xb4]
test dword [esp + 0x7c], 0x3fffffff
mov ecx, esi
mov eax, dword [eax + 8]
mov dword [esp + 0x64], eax
je 0x5c6466
push dword [esp + 0x78]
push 0
push dword [0x6f1130]
mov esi, ecx
call sub.KERNEL32.dll_HeapFree
mov ebx, dword [esp + 0x2c]
mov ecx, esi
mov edx, dword [esp + 0x30]
xor esi, esi
cmp di, 2
mov edi, dword [esp + 0x5c]
mov eax, 0
mov dword [esp + 0x1c], 2
mov dword [esp + 0x54], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 4], edx
mov edx, dword [esp]
mov dword [esp + 0x60], edi
mov dword [esp + 0x58], edx
jne 0x5c61ff
mov eax, dword [esp + 0x30]
mov esi, ecx
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc], 0
mov dword [esp + 0x24], edx
mov dword [esp + 0x68], edi
mov dword [esp + 0x70], ebx
mov dword [esp + 0x48], 0
mov dword [esp + 0x28], ecx
mov dword [esp + 0x4c], eax
mov ecx, 2
jmp 0x5c6560
movzx eax, byte [esp + 0x1c]
xor ebx, ebx
xor ecx, ecx
mov esi, 2
mov bl, al
movzx eax, byte [esp + 0x54]
mov cl, al
mov eax, dword [edi + 0xc]
mov dword [esp + 0x20], eax
test eax, eax
mov eax, dword [esp + 0x48]
jne 0x5c61e4
mov eax, dword [esp]
mov esi, ecx
mov edi, dword [esp + 0x60]
mov ecx, ebx
mov dword [esp + 0xc], 2
mov dword [esp + 0x24], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 4]
nop word cs:[eax + eax]
nop dword [eax]
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1b0]
mov dword [esp + 0x58], edx
mov dword [esp + 4], eax
mov dword [esp + 0x54], esi
mov dword [esp + 0x10], ebx
mov edx, edi
push 0
call fcn.005d5890
add esp, 4
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x20], eax
mov dword [esp], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x30], ecx
jmp 0x5c6211
cmp dword [esp + 0x48], 2
jb 0x5c65e8
cmp dword [esp + 0x7c], 0
je 0x5c65e8
and dword [esp + 0x7c], 0x3fffffff
je 0x5c65e8
push dword [esp + 0x78]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
test byte [esp + 0x20], 1
je 0x5c72a9
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x1b0]
push 0
call fcn.005d5890
add esp, 4
test eax, eax
je 0x5c72a9
mov ecx, dword [esp + 0x1ac]
mov edi, dword [esp + 0x6c]
mov ecx, dword [ecx]
mov esi, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x100], 1
mov dword [esp + 0x104], edi
mov dword [esp + 0x108], eax
lea eax, [esp + 0x100]
mov dword [esp + 0x10c], edx
push eax
push esi
call dword [ecx + 0x10]
add esp, 8
jmp 0x5c72a9
mov edi, ecx
call fcn.005ce5a0
mov ecx, edi
jmp 0x5c31d8
mov ecx, esi
call fcn.005ce5a0
jmp 0x5c3149
mov eax, dword [esp + 4]
sub eax, dword [esp + 0x14]
setb dl
cmp dword [esp + 0x58], 0
jne 0x5c2fc4
test dl, dl
jne 0x5c2fc4
cmp dword [esp + 0x20], eax
ja 0x5c2fc4
mov eax, 8
mul dword [edi + ecx + 0x74]
mov dl, byte [esp + 0x1c]
jo 0x5c2fc4
cmp dword [esp + 0x20], eax
jb 0x5c2fc4
xor eax, eax
mov al, dl
mov edx, dword [esp + 0x14]
add dword [esp + 0x20], edx
adc dword [esp + 0x58], eax
jne 0x5c2fc4
mov eax, dword [esp + 4]
sub eax, dword [esp + 0x20]
jb 0x5c2fc4
movzx edx, word [edi + ecx + 6]
mov dword [esp + 0x64], edx
lea edx, [edx*8]
lea edx, [edx + edx*4]
cmp edx, eax
ja 0x5c2fc4
mov eax, dword [edi + ecx + 0xc]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x14], edi
test eax, eax
mov dword [esp + 0x60], eax
je 0x5c682d
mov edi, dword [esp + 0x14]
mov esi, dword [esp]
mov ebx, dword [esp + 0x58]
mov edx, 0x12
mov eax, dword [edi + ecx + 0x10]
mov dword [esp + 0x54], eax
mul edx
jo 0x5c2fc4
mov edx, dword [esp + 4]
sub edx, dword [esp + 0x60]
jb 0x5c2fc4
cmp eax, edx
ja 0x5c2fc4
mov edx, dword [esp + 0x60]
add edx, eax
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 4]
sub edx, dword [esp + 0x1c]
setb byte [esp + 0x1c]
add eax, dword [esp + 0x60]
mov dword [esp + 0x24], eax
setb al
jb 0x5c2fc4
cmp byte [esp + 0x1c], 0
jne 0x5c2fc4
cmp edx, 4
jb 0x5c2fc4
xor edx, edx
mov dl, al
mov eax, dword [esp + 0x24]
add dword [esp + 0x60], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x50], edx
mov esi, dword [edi + eax]
add esi, eax
adc edx, 0
mov dword [esp + 0x4c], esi
mov dword [esp + 0x28], edx
jmp 0x5c6865
mov ecx, eax
push 0x6d3eb0
call fcn.0045a150
add esp, 4
ud2
push 0x6d3ec0
call fcn.0045a150
add esp, 4
ud2
push 0x6d40d0
call fcn.0045a150
add esp, 4
ud2
mov ecx, esi
push 0x6d6404
call fcn.0045a150
add esp, 4
ud2
push 0x6d40c0
call fcn.0045a150
add esp, 4
ud2
mov ecx, eax
mov edx, ebx
push 0x6d3eb0
call fcn.0045a150
add esp, 4
ud2
mov edx, ebx
push 0x6d3ec0
call fcn.0045a150
add esp, 4
ud2
xor ecx, ecx
xor edx, edx
push 0x6d6414
call fcn.0045a150
add esp, 4
ud2
mov dword [esp + 0x24], 0
mov dword [esp + 0x60], str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x14]
add dword [esp + 0x20], eax
mov eax, dword [eax + ecx + 0x34]
mov ecx, dword [0x6d6b64]
cmp dword [esp + 0x54], 0
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x90], 0
je 0x5c6968
mov eax, dword [0x6d6b64]
mov edi, dword [esp + 0x60]
xor edx, edx
xor ebx, ebx
mov dword [esp + 0x18], eax
jmp 0x5c68e2
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x1c]
lea ecx, [edi + eax*2]
mov eax, dword [esp + 0x18]
mov dword [eax + edx*8], esi
mov esi, dword [esp + 0x10]
mov dword [eax + edx*8 + 4], ecx
inc edx
mov dword [esp + 0x90], edx
lea ebx, [ebx + esi + 1]
cmp ebx, dword [esp + 0x54]
jae 0x5c695f
lea eax, [ebx + ebx*8]
movzx ecx, word [edi + eax*2 + 0xe]
movzx esi, byte [edi + eax*2 + 0x11]
and ecx, 0x30
cmp cx, 0x20
jne 0x5c68d8
movzx ecx, word [edi + eax*2 + 0xc]
mov dword [esp + 0x1c], eax
test cx, cx
je 0x5c68d8
movzx ecx, cx
mov dword [esp + 0x10], esi
dec ecx
cmp ecx, dword [esp + 0x64]
jae 0x5c6e4a
mov eax, dword [esp + 0x1c]
lea ecx, [ecx + ecx*4]
mov esi, dword [edi + eax*2 + 8]
mov edi, dword [esp + 0x20]
add esi, dword [esp + 0xc]
add esi, dword [edi + ecx*8 + 0xc]
cmp edx, dword [esp + 0x8c]
jne 0x5c68b6
lea ecx, [esp + 0x88]
call fcn.005c7320
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x90]
mov dword [esp + 0x18], eax
jmp 0x5c68b6
mov ecx, dword [esp + 0x88]
jmp 0x5c6970
mov ecx, dword [0x6d6b64]
xor edx, edx
mov eax, 0x20
test edx, edx
mov esi, 0x20
je 0x5c6984
bsr esi, edx
xor esi, 0x1f
sub eax, esi
push eax
push 0
call fcn.005c73b0
add esp, 8
mov eax, dword [esp + 0x90]
movsd xmm0, qword [esp + 0x88]
mov ecx, dword [esp + 4]
mov edx, 0x61fcd2
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x50]
movsd qword [esp + 0x128], xmm0
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x11c], ecx
lea ecx, [esp + 0x100]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x124], eax
push 0xa
call fcn.005c7c40
add esp, 4
mov edi, eax
test eax, eax
mov ebx, str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs
mov esi, edx
cmove edi, ebx
cmove esi, eax
test edi, edi
je 0x5c7254
lea ecx, [esp + 0x100]
mov edx, 0x61fcc3
push 0xf
call fcn.005c7c40
add esp, 4
test eax, eax
cmovne ebx, eax
cmove edx, eax
test ebx, ebx
mov dword [esp + 8], edx
je 0x5c7254
lea ecx, [esp + 0x100]
mov edx, 0x61fcb6
push 0xd
call fcn.005c7c40
add esp, 4
test eax, eax
mov ecx, str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs
cmove edx, eax
cmove eax, ecx
test eax, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], eax
je 0x5c7254
lea ecx, [esp + 0x100]
mov edx, 0x61fca7
push 0xf
call fcn.005c7c40
add esp, 4
test eax, eax
mov ecx, str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs
cmovne ecx, eax
cmove edx, eax
test ecx, ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x54], ecx
je 0x5c7254
lea ecx, [esp + 0x100]
mov edx, 0x61fd1a
push 0xd
call fcn.005c7c40
add esp, 4
test eax, eax
mov ecx, str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs
cmove edx, eax
cmove eax, ecx
test eax, eax
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], eax
je 0x5c7254
lea ecx, [esp + 0x100]
mov edx, 0x61fd0f
push 0xb
call fcn.005c7c40
add esp, 4
test eax, eax
mov ecx, str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs
cmovne ecx, eax
cmove edx, eax
test ecx, ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x18], ecx
je 0x5c7254
lea ecx, [esp + 0x100]
mov edx, 0x61fd01
push 0xe
call fcn.005c7c40
add esp, 4
test eax, eax
mov ecx, str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs
cmove edx, eax
cmove eax, ecx
test eax, eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x50], eax
je 0x5c7254
lea ecx, [esp + 0x100]
mov edx, 0x61fcf6
push 0xb
call fcn.005c7c40
add esp, 4
test eax, eax
mov ecx, str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs
cmovne ecx, eax
cmove edx, eax
test ecx, ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x4c], ecx
je 0x5c7254
lea ecx, [esp + 0x100]
mov edx, 0x61fceb
push 0xb
call fcn.005c7c40
add esp, 4
test eax, eax
mov ecx, str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs
cmove edx, eax
cmove eax, ecx
test eax, eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x70], eax
je 0x5c7254
lea ecx, [esp + 0x100]
mov edx, 0x61fcdc
push 0xf
call fcn.005c7c40
add esp, 4
test eax, eax
mov ecx, str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs
cmovne ecx, eax
cmove edx, eax
test ecx, ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x2c], ecx
je 0x5c7254
lea ecx, [esp + 0x100]
mov edx, 0x61fc9d
push 0xa
call fcn.005c7c40
add esp, 4
test eax, eax
mov ecx, str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs
cmove edx, eax
cmove eax, ecx
test eax, eax
mov dword [esp + 0x48], edx
mov dword [esp + 0xb4], eax
je 0x5c7254
lea ecx, [esp + 0x100]
mov edx, 0x61fc8b
push 0x12
call fcn.005c7c40
add esp, 4
test eax, eax
mov ecx, str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs
cmovne ecx, eax
cmove edx, eax
test ecx, ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0xbc], ecx
je 0x5c7254
lea ecx, [esp + 0x100]
mov edx, 0x61fc7f
push 0xc
call fcn.005c7c40
add esp, 4
test eax, eax
mov ecx, str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs
mov dword [esp + 0x84], edx
mov dword [esp + 0x7c], eax
cmovne ecx, eax
test ecx, ecx
mov dword [esp + 0x80], ecx
je 0x5c7254
mov ecx, 0x78
mov edx, 4
call fcn.00404a50
test eax, eax
je 0x5c72f8
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x84]
mov dword [eax], 1
mov dword [eax + 4], 1
test ecx, ecx
cmove edx, ecx
mov ecx, dword [esp + 0x60]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x50]
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x1c], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 0x28], ecx
mov ecx, dword [esp + 0x68]
mov dword [eax + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0x34], ecx
mov ecx, dword [esp + 0xb4]
mov dword [eax + 0x38], ecx
mov ecx, dword [esp + 0x48]
mov dword [eax + 0x3c], ecx
mov ecx, dword [esp + 0xbc]
mov dword [eax + 0x40], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 0x44], ecx
mov ecx, dword [esp + 0x80]
mov dword [eax + 0x48], ecx
mov ecx, dword [esp + 8]
mov dword [eax + 0x4c], edx
mov dword [eax + 0x50], edi
mov dword [eax + 0x54], esi
mov dword [eax + 0x58], ebx
mov edx, eax
mov dword [eax + 0x5c], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x60], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x64], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 0x68], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + 0x6c], ecx
lea ecx, [esp + 0x88]
mov dword [eax + 0x70], 0
mov byte [eax + 0x74], 0
call fcn.005c8200
cmp dword [esp + 0x88], 1
je 0x5c7254
movsd xmm1, qword [esp + 0x9c]
movsd xmm0, qword [esp + 0xa4]
movsd xmm2, qword [esp + 0x8c]
movsd qword [esp + 0xd0], xmm1
movsd xmm1, qword [esp + 0x94]
movsd qword [esp + 0xd8], xmm0
movsd qword [esp + 0xc0], xmm2
movsd qword [esp + 0xc8], xmm1
mov eax, dword [esp + 0xd8]
mov edx, dword [eax + 0x70]
test edx, edx
je 0x5c6fbe
lock inc dword [edx]
jle 0x5c7309
lea ecx, [esp + 0x88]
call fcn.005c8200
cmp dword [esp + 0x88], 1
jne 0x5c6fc5
lea ecx, [esp + 0xc0]
call fcn.005ce4b0
jmp 0x5c7254
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x5c6e75
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x5c6e75
and eax, 0x1fffffff
je 0x5c6e75
push ecx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp]
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x14]
cmp dword [esp + 8], 0
jne 0x5c2fcf
jmp 0x5c729d
mov edx, dword [esp + 0x10]
mov ecx, esi
push 0x6d4178
call fcn.0045a150
add esp, 4
ud2
mov ecx, edx
mov edx, dword [esp + 0x18]
push 0x6d3ed0
call fcn.0045ab50
add esp, 4
ud2
mov ecx, dword [esp]
jmp 0x5c6eee
mov ecx, esi
jmp 0x5c6fab
mov edx, ebx
push 0x6d3ee0
call fcn.0040b3d0
add esp, 4
ud2
mov ecx, edx
mov edx, dword [esp + 0x48]
push 0x6d3ed0
call fcn.0045ab50
add esp, 4
ud2
mov ecx, esi
push 0x6d3ed0
jmp 0x5c6fb4
push 0x6d40b0
call fcn.0045ab50
add esp, 4
ud2
mov ecx, ebx
mov edx, 8
call fcn.0040a640
ud2
mov ecx, dword [esp]
mov edx, 8
call fcn.0040a640
ud2
mov ecx, ebx
mov edx, 5
push 0x61fd9c
call fcn.0045ab50
add esp, 4
ud2
mov edx, esi
push 0x6d3e90
jmp 0x5c6fb4
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_532d2b14c05f9bc20b2d27cbb5f4550d28343a36librarycore_src_strpattern.rs
mov edx, 0x2b
push 0x6d4188
call fcn.0045aec0
add esp, 4
ud2
mov edx, dword [esp + 0x18]
jmp 0x5c6f66
mov edx, dword [esp + 0x48]
mov ecx, esi
push 0x6d3e90
call fcn.0045ab50
add esp, 4
ud2
dec ecx
cmp esi, ecx
jb 0x5c6fab
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
push 0x6d3ea0
call fcn.0045ab50
add esp, 4
ud2
call fcn.0040a620
ud2
dec ecx
cmp esi, ecx
mov dword [esp + 0x18], ecx
jae 0x5c72b1
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
push 0x6d3ea0
call fcn.0045ce70
add esp, 4
ud2
xor esi, esi
jmp 0x5c705d
movsd xmm1, qword [esp + 0x9c]
movsd xmm0, qword [esp + 0xa4]
movsd xmm2, qword [esp + 0x8c]
mov ecx, 0x20
mov edx, 4
movsd qword [esp + 0xf0], xmm1
movsd xmm1, qword [esp + 0x94]
movsd qword [esp + 0xf8], xmm0
movsd qword [esp + 0xe0], xmm2
movsd qword [esp + 0xe8], xmm1
call fcn.00404a50
test eax, eax
je 0x5c730d
movsd xmm0, qword [esp + 0xf8]
mov esi, eax
movsd qword [eax + 0x18], xmm0
movsd xmm0, qword [esp + 0xf0]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [esp + 0xe0]
movsd xmm1, qword [esp + 0xe8]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov edi, dword [esp + 0xdc]
test edi, edi
je 0x5c707d
mov ecx, edi
call fcn.005ce4b0
push edi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0xc0]
movsd xmm0, qword [esp + 0xc4]
movsd xmm2, qword [esp + 0xcc]
movsd xmm1, qword [esp + 0xd4]
mov dword [esp + 0x1a0], esi
test eax, eax
movsd qword [esp + 0x188], xmm0
movsd qword [esp + 0x190], xmm2
movsd qword [esp + 0x198], xmm1
mov dword [esp + 0x20], eax
je 0x5c7254
movsd xmm1, qword [esp + 0x190]
mov ecx, dword [esp + 0x1a0]
lea eax, [esp + 0x11c]
movsd xmm2, qword [esp + 0x100]
movsd xmm0, qword [esp + 0x198]
movsd xmm3, qword [esp + 0x188]
movsd qword [esp + 0xe8], xmm1
movsd xmm1, qword [esp + 0x108]
mov dword [esp + 0xf8], ecx
mov ecx, dword [esp + 0x118]
movsd qword [esp + 0xc0], xmm2
movsd xmm2, qword [eax]
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0xe0], xmm3
movsd qword [esp + 0xc8], xmm1
movsd xmm1, qword [esp + 0x110]
test ecx, ecx
movsd qword [esp + 0x88], xmm2
mov dword [esp + 8], ecx
movsd qword [esp + 0xd0], xmm1
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0x90], xmm1
movsd xmm1, qword [eax + 0x10]
mov eax, dword [eax + 0x18]
movsd qword [esp + 0x98], xmm1
mov dword [esp + 0xa0], eax
je 0x5c72ce
movsd xmm1, qword [esp + 0xc8]
movsd xmm2, qword [esp + 0x88]
mov eax, dword [esp + 0xa0]
movsd xmm0, qword [esp + 0xd0]
movsd xmm3, qword [esp + 0xc0]
movsd qword [esp + 0x258], xmm1
movsd xmm1, qword [esp + 0x90]
movsd qword [esp + 0x218], xmm2
mov dword [esp + 0x230], eax
movsd xmm2, qword [esp + 0xe0]
mov eax, dword [esp + 0xf8]
movsd qword [esp + 0x260], xmm0
movsd qword [esp + 0x250], xmm3
movsd qword [esp + 0x220], xmm1
movsd xmm1, qword [esp + 0x98]
movsd qword [esp + 0x1f8], xmm2
mov dword [esp + 0x210], eax
movsd qword [esp + 0x228], xmm1
movsd xmm1, qword [esp + 0xe8]
movsd qword [esp + 0x200], xmm1
movsd xmm1, qword [esp + 0xf0]
movsd qword [esp + 0x208], xmm1
jmp 0x5c7287
mov eax, dword [esp + 0x12c]
test eax, eax
je 0x5c727f
mov ecx, dword [esp + 0x128]
test ecx, ecx
je 0x5c727f
and eax, 0x1fffffff
je 0x5c727f
push ecx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov dword [esp + 8], 0
mov esi, dword [esp]
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x14]
cmp dword [esp + 8], 0
jne 0x5c2fcf
push edi
call sub.KERNEL32.dll_UnmapViewOfFile
push ebx
call sub.KERNEL32.dll_CloseHandle
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x48]
push 0x6d3ea0
call fcn.0045ab50
add esp, 4
ud2
mov ecx, dword [esp + 0x48]
jmp 0x5c72df
mov dword [esp + 8], 0
jmp 0x5c7287
mov ecx, dword [esp + 0x1a8]
mov edx, ebx
call fcn.0040a640
ud2
mov ecx, dword [esp + 0x30]
mov edx, 8
call fcn.0040a640
ud2
mov ecx, 0x78
mov edx, 4
call fcn.0040a640
ud2
ud2
mov ecx, 0x20
mov edx, 4
call fcn.0040a640
ud2