Function at 0x1002a330
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, 0x300
mov edi, dword [ebp + 8]
call 0x1002a347
pop eax
mov ebx, edx
mov dword [esp + 0xc0], ecx
mov dword [esp + 8], eax
mov eax, dword [edi + 0x28]
test eax, eax
je 0x1002a441
mov edx, dword [ebx]
lea ecx, [esp + 0x80]
push eax
push dword [ebx + 4]
call fcn.1002d7c0
add esp, 8
cmp dword [esp + 0x80], 0
je 0x1002a45e
movq xmm0, qword [esp + 0x90]
movsd xmm2, qword [esp + 0x80]
movq xmm1, qword [esp + 0x88]
movq qword [esp + 0x1b0], xmm0
movq qword [esp + 0x1a8], xmm1
movsd qword [esp + 0x1a0], xmm2
mov dword [esp + 0x198], 1
mov dword [esp + 0x19c], 1
movzx eax, byte [0x104f8048]
mov eax, dword [0x104f8080]
test eax, eax
jne 0x1002a3f1
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x1002b9ad
mov dword [0x104f8080], eax
push 0x20
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x1002b9ad
movsd xmm0, qword [esp + 0x1b0]
mov ecx, eax
movsd qword [eax + 0x18], xmm0
movsd xmm0, qword [esp + 0x1a8]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [esp + 0x198]
movsd xmm1, qword [esp + 0x1a0]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
jmp 0x1002a623
mov ecx, dword [ebx + 0x6c]
test ecx, ecx
je 0x1002a4dd
lock inc dword [ecx - 8]
jle 0x1002bab2
add ecx, 0xfffffff8
jmp 0x1002a623
movzx ecx, word [esp + 0x89]
movzx eax, byte [esp + 0x88]
mov word [esp + 0x150], cx
movzx ecx, byte [esp + 0x8b]
cmp al, 0x4b
mov byte [esp + 0x152], cl
mov ecx, dword [esp + 0x8c]
je 0x1002a623
mov edx, dword [esp + 0x94]
mov esi, dword [esp + 0x90]
movzx edi, word [esp + 0x150]
mov ebx, dword [esp + 0xc0]
mov ah, byte [esp + 0x152]
mov word [ebx + 9], di
mov byte [ebx + 0xb], ah
mov byte [ebx + 8], al
mov dword [ebx + 0xc], ecx
mov dword [ebx + 0x14], edx
mov dword [ebx + 0x10], esi
mov dword [ebx + 4], 0
mov dword [ebx], 2
jmp 0x1002b4b1
mov edx, dword [ebx]
lea ecx, [esp + 0x80]
push 0
push dword [ebx + 4]
call fcn.1002d7c0
add esp, 8
cmp dword [esp + 0x80], 0
je 0x1002a5bc
movq xmm0, qword [esp + 0x90]
movsd xmm2, qword [esp + 0x80]
movq xmm1, qword [esp + 0x88]
movq qword [esp + 0x1b0], xmm0
movq qword [esp + 0x1a8], xmm1
movsd qword [esp + 0x1a0], xmm2
mov dword [esp + 0x198], 1
mov dword [esp + 0x19c], 1
movzx eax, byte [0x104f8048]
mov eax, dword [0x104f8080]
test eax, eax
jne 0x1002a56f
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x1002bb1a
mov dword [0x104f8080], eax
push 0x20
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x1002bb1a
movsd xmm0, qword [esp + 0x1b0]
mov ecx, eax
movsd qword [eax + 0x18], xmm0
movsd xmm0, qword [esp + 0x1a8]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [esp + 0x198]
movsd xmm1, qword [esp + 0x1a0]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
jmp 0x1002a5f2
movzx ecx, word [esp + 0x89]
movzx eax, byte [esp + 0x88]
mov word [esp + 0xd0], cx
movzx ecx, byte [esp + 0x8b]
cmp al, 0x4b
mov byte [esp + 0xd2], cl
mov ecx, dword [esp + 0x8c]
jne 0x1002ae5b
lea edx, [ecx + 8]
xor eax, eax
lock cmpxchg dword [ebx + 0x6c], edx
jne 0x1002a608
lock inc dword [ecx]
jg 0x1002a623
jmp 0x1002bab2
lock dec dword [ecx]
mov esi, eax
jne 0x1002a614
call fcn.10021dd0
lock inc dword [esi - 8]
jle 0x1002bab2
add esi, 0xfffffff8
mov ecx, esi
mov edx, dword [edi + 0x20]
cmp byte [ebx + 0x70], 0
mov dword [esp + 0x38], ebx
movq xmm0, qword [edi + 0x10]
movq xmm1, qword [edi + 0x28]
movsd xmm2, qword [edi + 0x20]
movsd xmm3, qword [edi + 0x18]
movsd xmm4, qword [edi]
movsd xmm5, qword [edi + 8]
mov eax, edx
setne bl
movq qword [esp + 0x268], xmm1
movsd qword [esp + 0x260], xmm2
movsd qword [esp + 0x258], xmm3
movq qword [esp + 0x250], xmm0
movsd qword [esp + 0x248], xmm5
movsd qword [esp + 0x240], xmm4
mov dword [esp + 0x288], ecx
mov dword [esp + 0x270], 0
mov dword [esp + 0x278], 0
mov dword [esp + 0x284], 0
mov dword [esp + 0x280], 0
shr eax, 0x10
cmp ax, 5
setae bh
and edx, 0xff00
xor eax, eax
cmp edx, 0x800
sete al
xor esi, esi
test bl, bh
lea edx, [eax*8 + 8]
lea eax, [eax*8 + 0xc]
cmove edx, esi
cmove eax, esi
mov esi, dword [edi + 8]
xor ebx, ebx
mov dword [esp + 0x28c], edx
mov dword [esp + 0x290], 0
mov dword [esp + 0x294], eax
mov dword [esp + 0x298], eax
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1a8], 0x2f
mov dword [esp + 0x19c], 0
add esi, 0xfffffffd
cmp esi, 2
lea esi, [esp + 0x240]
setb bl
add ecx, 8
mov dword [esp + 0x198], ebx
movq qword [esp + 0x1a0], xmm0
mov eax, dword [esp + 0x258]
mov edi, dword [esp + 0x25c]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], 0
mov dword [esp + 0xac], 0
lea ecx, [esp + 0xd0]
lea edx, [esp + 0x80]
call fcn.10028f00
movzx ecx, byte [esp + 0xd0]
cmp cl, 0x4b
jne 0x1002a7fb
lea ebx, [esp + 0x90]
lea esi, [esp + 0xd0]
lea edi, [esp + 0x80]
nop word [eax + eax]
cmp byte [esp + 0xd1], 0
mov eax, dword [esp + 0x90]
je 0x1002a85c
test eax, eax
jne 0x1002a864
mov ecx, esi
mov edx, edi
call fcn.10028f00
movzx ecx, byte [esp + 0xd0]
cmp cl, 0x4b
je 0x1002a7d0
mov edx, dword [esp + 0xc0]
movzx eax, byte [esp + 0xd1]
movzx edi, word [esp + 0xd2]
mov esi, dword [esp + 0xd8]
mov byte [edx + 8], cl
mov ecx, dword [esp + 0xd4]
mov byte [edx + 9], al
mov word [edx + 0xa], di
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0xdc]
mov dword [edx + 0x10], esi
mov dword [edx + 0x14], ecx
mov dword [edx + 4], 0
mov dword [edx], 2
mov ecx, dword [esp + 0x288]
lock dec dword [ecx]
je 0x1002b421
jmp 0x1002b426
test eax, eax
je 0x1002ae0e
mov edi, dword [esp + 0x98]
mov ecx, dword [esp + 0x94]
mov edx, ebx
cmp dword [edi], 0
je 0x1002a881
mov ebx, dword [edi + 0xc]
mov edi, dword [edi + 4]
jmp 0x1002a890
mov ebx, dword [edi + 4]
cmp ebx, 6
jae 0x1002bb2e
add edi, 8
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x198]
movaps xmm0, xmmword [0x100441f0]
mov dword [esp + 0x154], ecx
mov dword [esp + 0x158], edi
mov dword [esp + 0x15c], ebx
add edi, 0x10
dec ebx
mov dword [esp + 0x160], edx
mov dword [esp + 0x7c], 0
mov dword [esp + 0x14c], 0x2e
mov dword [esp + 0x148], 0
mov dword [esp + 0x60], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x19c]
movaps xmmword [esp + 0x170], xmm0
movaps xmmword [esp + 0x120], xmm0
mov dword [esp + 0x104], eax
jmp 0x1002a934
add edi, 0x10
dec ebx
cmp ebx, 0xffffffff
je 0x1002ac3c
lea eax, [edi - 0x10]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [esp + 0x160]
movsd qword [esp + 0x30], xmm1
movsd qword [esp + 0x28], xmm0
mov eax, dword [eax + 0xc]
lea ecx, [esp + 0xd0]
lea esi, [esp + 0x28]
lea edx, [esp + 0x150]
push esi
push dword [eax + 0x20]
call fcn.100249d0
add esp, 8
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov edx, eax
xor edx, 0x2e
or edx, ecx
je 0x1002ac80
lea edx, [esp + 0xd8]
mov dword [esp + 0x158], edi
mov dword [esp + 0x15c], ebx
movsd xmm0, qword [edx]
movq xmm1, qword [edx + 8]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd0], eax
movq qword [edx + 8], xmm1
movsd qword [edx], xmm0
movsd qword [esp + 0x180], xmm0
movq qword [esp + 0x188], xmm1
movzx eax, word [esp + 0xe0]
cmp eax, 0x71
jle 0x1002aa50
cmp eax, 0x2130
jg 0x1002aab0
add eax, 0xffffff8e
cmp eax, 0x1a
ja 0x1002a930
mov eax, dword [eax*4 + 0x1002c85c]
add eax, dword [esp + 8]
jmp eax
add eax, 0xfffffffd
cmp eax, 0x18
ja 0x1002a930
mov eax, dword [eax*4 + 0x1002c7f8]
add eax, dword [esp + 8]
jmp eax
cmp eax, 0x2131
je 0x1002abbd
cmp eax, 0x2132
je 0x1002aafe
cmp eax, 0x2133
jne 0x1002a930
lea ecx, [esp + 0x28]
lea edx, [esp + 0xd0]
call fcn.100263d0
mov eax, dword [esp + 0x28]
xor eax, 0xb
or eax, dword [esp + 0x2c]
jne 0x1002a930
mov eax, dword [esp + 0x30]
mov dword [esp + 0x290], eax
jmp 0x1002a930
lea ecx, [esp + 0x28]
lea edx, [esp + 0xd0]
call fcn.100263d0
mov eax, dword [esp + 0x28]
xor eax, 0x17
or eax, dword [esp + 0x2c]
jne 0x1002a930
mov eax, dword [esp + 0x30]
mov dword [esp + 0x298], eax
jmp 0x1002a930
mov eax, dword [esp + 4]
or eax, dword [esp + 0x104]
jne 0x1002a930
lea ecx, [esp + 0x28]
lea edx, [esp + 0xd0]
call fcn.100263d0
mov eax, dword [esp + 0x28]
mov dword [esp + 0x104], 0
xor eax, 0x2d
or eax, dword [esp + 0x2c]
jne 0x1002ac2f
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x19c], 0
mov dword [esp + 0x198], 1
mov dword [esp + 4], 1
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a0], eax
jmp 0x1002a930
mov dword [esp + 4], 0
jmp 0x1002a930
mov eax, dword [esp + 0x160]
cmp dword [eax + 0x14], 0
jne 0x1002ac5c
mov ecx, dword [esp + 0x150]
sub ecx, dword [eax]
mov dword [eax + 0x14], 1
mov dword [eax + 0x18], ecx
movdqa xmm1, xmmword [esp + 0x120]
movd ecx, xmm1
pshufd xmm0, xmm1, 0x55
movd eax, xmm0
xor ecx, 0x2e
or ecx, eax
jne 0x1002acb8
xor ebx, ebx
jmp 0x1002ad06
lea eax, [esp + 0xd8]
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
mov eax, dword [esp + 0xc0]
movq qword [esp + 0x180], xmm0
movq qword [esp + 0x188], xmm1
movq qword [eax + 0x10], xmm1
movq qword [eax + 8], xmm0
jmp 0x1002ae20
movzx eax, byte [esp + 0x261]
movdqu xmmword [esp + 0x2d8], xmm1
mov edx, dword [esp + 0x38]
lea esi, [esp + 0x2d8]
lea ecx, [esp + 0x80]
push esi
push dword [esp + 0x290]
push eax
call fcn.10021b90
add esp, 0xc
xor ebx, ebx
cmp byte [esp + 0x80], 0x4b
jne 0x1002acff
mov ebx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
movdqa xmm1, xmmword [esp + 0x170]
mov dword [esp + 0x270], ebx
mov dword [esp + 0x274], edx
movd ecx, xmm1
pshufd xmm0, xmm1, 0x55
movd eax, xmm0
xor ecx, 0x2e
or ecx, eax
jne 0x1002ad65
cmp dword [esp + 0x60], 0
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x278], 0
je 0x1002ae8c
movzx eax, byte [esp + 0x260]
xor esi, esi
mov dword [esp + 0x120], edx
mov byte [esp + 0x60], al
jmp 0x1002adf1
movzx eax, byte [esp + 0x261]
mov dword [esp + 0x120], edx
movdqu xmmword [esp + 0x2e8], xmm1
mov edx, dword [esp + 0x38]
lea esi, [esp + 0x2e8]
lea ecx, [esp + 0x80]
push esi
push dword [esp + 0x290]
push eax
call fcn.10021b90
add esp, 0xc
xor edi, edi
cmp byte [esp + 0x80], 0x4b
mov esi, dword [esp + 0x84]
mov eax, 0
mov ecx, dword [esp + 0x88]
cmove eax, esi
cmp dword [esp + 0x60], 0
mov dword [esp + 0x278], eax
mov dword [esp + 0x27c], ecx
je 0x1002ae90
movzx edx, byte [esp + 0x260]
test eax, eax
mov dword [esp + 0x104], ecx
cmove esi, eax
mov byte [esp + 0x60], dl
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 0x20]
mov edx, dword [ecx + 0x24]
mov ecx, dword [esp + 0x74]
sub edx, ecx
jae 0x1002ae42
xor esi, esi
mov cl, 0x13
mov edi, eax
jmp 0x1002b3ed
mov eax, dword [esp + 0xc0]
mov byte [eax + 8], 0x42
mov dword [eax + 0xc], 0
mov dword [eax + 4], 0
mov dword [eax], 2
mov ecx, dword [esp + 0x288]
lock dec dword [ecx]
je 0x1002b421
jmp 0x1002b426
add eax, ecx
cmp edx, 4
jae 0x1002b194
mov edi, eax
xor esi, esi
mov cl, 0x13
shr edi, 8
jmp 0x1002b1bd
mov ah, byte [esp + 0xd2]
movzx edi, word [esp + 0xd0]
mov edx, dword [esp + 0x94]
mov esi, dword [esp + 0x90]
mov byte [esp + 0x152], ah
mov word [esp + 0x150], di
jmp 0x1002a4a2
xor edi, edi
jmp 0x1002ae94
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x170], eax
mov dword [esp + 4], 0x2f
mov eax, dword [esp + 0x1a8]
xor eax, 0x2f
or eax, dword [esp + 0x1ac]
je 0x1002af42
cmp dword [esp + 0x200], 0
je 0x1002aedc
push dword [esp + 0x1fc]
push 0
push dword [0x104f8080]
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esp + 0x74]
cmp dword [esp + 0x20c], 0
je 0x1002aefe
push dword [esp + 0x208]
push 0
push dword [0x104f8080]
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esp + 0x74]
cmp dword [esp + 0x218], 0
je 0x1002af20
push dword [esp + 0x214]
push 0
push dword [0x104f8080]
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esp + 0x74]
cmp dword [esp + 0x224], 0
je 0x1002af42
push dword [esp + 0x220]
push 0
push dword [0x104f8080]
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 4]
movsd xmm0, qword [esp + 0x150]
mov dword [esp + 0x1ac], edi
movq xmm1, qword [esp + 0x158]
mov edi, dword [esp + 0x6c]
movzx edx, byte [esp + 0xc7]
mov dword [esp + 0x1a8], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x1b0], ebx
movzx ebx, byte [esp + 0x4e]
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1bc], 0
mov dword [esp + 0x1b8], 0
movsd qword [esp + 0x1c0], xmm0
movsd xmm0, qword [esp + 0x160]
mov eax, dword [esp + 0x48]
movq qword [esp + 0x1c8], xmm1
movsd qword [esp + 0x1d0], xmm0
movsd xmm0, qword [esp + 0x168]
movsd qword [esp + 0x1d8], xmm0
mov dword [esp + 0x1e0], eax
mov eax, dword [esp + 0x144]
movsd xmm0, qword [esp + 0x180]
mov dword [esp + 0x1e4], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x1e8], eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x1ec], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1f0], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x1f4], eax
movzx eax, byte [esp + 0x60]
mov byte [esp + 0x1f8], al
movzx eax, byte [esp + 0x1b]
mov byte [esp + 0x1f9], al
mov eax, dword [esp + 0x170]
mov word [esp + 0x1fa], ax
mov dword [esp + 0x1fc], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x200], esi
mov esi, dword [esp + 0x188]
mov dword [esp + 0x204], edi
mov edi, dword [esp + 0x14]
movsd qword [esp + 0x208], xmm0
movsd xmm0, qword [esp + 0x2a0]
mov dword [esp + 0x210], esi
mov esi, dword [esp + 0x24]
mov dword [esp + 0x214], edi
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x218], esi
mov esi, dword [esp + 0x2a8]
mov dword [esp + 0x21c], edi
movsd qword [esp + 0x220], xmm0
mov edi, dword [esp + 0x100]
mov dword [esp + 0x228], esi
mov dword [esp + 0x22c], ecx
mov esi, dword [esp + 0x11c]
movzx ecx, byte [esp + 0xc4]
mov dword [esp + 0x230], edi
mov dword [esp + 0x234], esi
mov byte [esp + 0x238], cl
movzx ecx, byte [esp + 0x4f]
mov byte [esp + 0x239], dl
movzx edx, byte [esp + 0xc6]
mov byte [esp + 0x23a], cl
movzx ecx, byte [esp + 0xc5]
mov byte [esp + 0x23b], dl
mov byte [esp + 0x23c], cl
mov ecx, dword [esp + 0x14c]
mov byte [esp + 0x23d], bl
mov edx, ecx
xor edx, 0x2e
or edx, dword [esp + 0x148]
jne 0x1002b167
lea eax, [esp + 0x198]
push 0x108
push eax
push dword [esp + 0xc8]
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x1002b4b1
mov eax, ecx
and al, 0x3f
cmp al, 0xc
je 0x1002b1e1
and ecx, 0x3f
jne 0x1002b20c
mov edi, dword [esp + 0x70]
shr edi, 8
xor esi, esi
mov cl, 1
xor ebx, ebx
xor edx, edx
mov dword [esp + 8], 0
jmp 0x1002b27a
lea ecx, [eax + 4]
mov dword [esp + 0x44], esi
lea esi, [edx - 4]
mov byte [esp + 0x1b], 4
mov dword [esp + 0xc], ecx
mov ecx, dword [eax]
cmp ecx, 0xffffffef
jbe 0x1002b1ce
cmp ecx, 0xffffffff
je 0x1002b2f3
xor edi, edi
mov cl, 0x10
xor esi, esi
shld esi, edi, 8
movzx eax, al
shl edi, 8
or edi, eax
jmp 0x1002b3ed
mov eax, ecx
cmp esi, eax
jae 0x1002b3da
mov edx, dword [esp + 0xc]
jmp 0x1002b3e7
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x290]
mov esi, dword [eax + 0xc]
mov ecx, dword [eax + 8]
sub esi, ebx
jae 0x1002b222
mov al, 0x13
mov dword [esp + 0x87], ecx
mov dword [esp + 0x8b], 0
jmp 0x1002b23f
mov dword [esp + 0x70], eax
xor esi, esi
xor ebx, ebx
xor ecx, ecx
mov dword [esp + 8], 0
xor edx, edx
jmp 0x1002b27a
movzx eax, byte [esp + 0x260]
mov byte [esp + 0x38], al
movzx edi, al
mov eax, dword [esp + 0x70]
mul edi
jno 0x1002b35c
mov al, 0x35
mov dword [esp + 0x38], eax
movzx ecx, byte [esp + 0x8a]
movzx edi, word [esp + 0x88]
movzx eax, byte [esp + 0x87]
xor ebx, ebx
mov esi, 1
shl ecx, 0x10
mov dword [esp + 0x70], eax
or edi, ecx
mov ecx, dword [esp + 0x8b]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x38]
mov eax, edx
movzx ecx, cl
shl edi, 8
shl eax, 8
or ecx, eax
movzx eax, byte [esp + 0x70]
or eax, edi
or esi, ebx
je 0x1002b2d3
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 8]
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x7c]
shld edi, edx, 8
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
mov dword [esi + 4], 0
mov dword [esi], 2
mov ecx, dword [esp + 0x288]
lock dec dword [ecx]
je 0x1002b421
jmp 0x1002b426
cmp ecx, 1
jne 0x1002b146
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x280], eax
mov dword [esp + 0x284], ecx
jmp 0x1002b146
cmp esi, 8
jae 0x1002b3af
mov eax, dword [esp + 0xc]
xor esi, esi
mov cl, 0x13
mov dword [esp + 0x2f], eax
movzx eax, byte [esp + 0x32]
movq xmm0, qword [esp + 0x28]
mov byte [esp + 0x8a], al
movzx eax, word [esp + 0x30]
movd ebx, xmm0
mov word [esp + 0x88], ax
movq qword [esp + 0x80], xmm0
mov dword [esp + 0x8b], 0
shufps xmm0, xmm0, 0x55
mov eax, dword [esp + 0x87]
movd edx, xmm0
shld edx, ebx, 8
mov edi, eax
shr edi, 8
jmp 0x1002b1bd
mov edx, esi
add ecx, ebx
sub edx, eax
jb 0x1002b1f6
dec edi
cmp edi, 7
ja 0x1002b643
mov ebx, dword [esp + 8]
add ecx, eax
add ebx, dword [edi*4 + 0x1002c924]
jmp ebx
mov esi, dword [esp + 0xc]
cmp dword [esi + 4], 0
jne 0x1002b51f
mov esi, dword [esi]
add eax, 0xc
add edx, 0xfffffff4
mov byte [esp + 0x1b], 8
mov dword [esp + 0xc], eax
mov eax, esi
mov esi, edx
cmp esi, eax
jb 0x1002b1d8
mov edx, dword [esp + 0xc]
cmp eax, 2
jae 0x1002b4b9
xor esi, esi
mov cl, 0x13
mov edi, edx
shl ebx, 8
movzx eax, cl
or eax, ebx
mov ebx, dword [esp + 0xc0]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x10], edi
mov dword [ebx + 0x14], esi
mov dword [ebx + 4], 0
mov dword [ebx], 2
mov ecx, dword [esp + 0x288]
lock dec dword [ecx]
jne 0x1002b426
call fcn.10021dd0
mov eax, dword [esp + 0x1a8]
xor eax, 0x2f
or eax, dword [esp + 0x1ac]
je 0x1002b4b1
cmp dword [esp + 0x200], 0
je 0x1002b457
push dword [esp + 0x1fc]
push 0
push dword [0x104f8080]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x20c], 0
je 0x1002b475
push dword [esp + 0x208]
push 0
push dword [0x104f8080]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x218], 0
je 0x1002b493
push dword [esp + 0x214]
push 0
push dword [0x104f8080]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x224], 0
je 0x1002b4b1
push dword [esp + 0x220]
push 0
push dword [0x104f8080]
call sub.KERNEL32.dll_HeapFree
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movzx esi, word [edx]
mov dword [esp + 0x100], eax
mov eax, esi
movzx edi, si
add eax, 0xfffffffa
cmp ax, 0xfffc
jae 0x1002b4da
xor esi, esi
mov cl, 0x11
jmp 0x1002ae09
mov eax, dword [esp + 0x100]
add edx, 2
cmp si, 4
mov dword [esp + 0x170], esi
lea eax, [eax - 2]
mov dword [esp + 0xfc], eax
jbe 0x1002b52a
cmp dword [esp + 0xfc], 0
je 0x1002b7a6
cmp dword [esp + 0x100], 3
jne 0x1002b58a
mov edx, dword [esp + 0xc]
add edx, 3
jmp 0x1002b3e7
xor edi, edi
mov cl, 0x35
xor esi, esi
jmp 0x1002b1bd
mov eax, dword [esp + 0xfc]
cmp ecx, 0xfffffff0
jb 0x1002b6c4
cmp eax, 8
jae 0x1002b67a
mov dword [esp + 0x87], edx
shr edx, 8
movq xmm0, qword [esp + 0x80]
movdqa xmmword [esp + 0x2c0], xmm0
movdqa xmm1, xmm0
movd eax, xmm0
movzx ebx, byte [esp + 0x2c7]
shufps xmm1, xmm0, 0x55
movd ecx, xmm1
shld ecx, eax, 8
mov eax, edx
mov dword [esp + 0xc], ecx
mov cl, 0x13
mov edx, ebx
jmp 0x1002b6d0
mov edx, dword [esp + 0xc]
cmp byte [edx + 3], 0
je 0x1002b6a6
mov cl, 0x41
jmp 0x1002b7b3
movzx eax, byte [esp + 0x38]
movzx ecx, word [esp + 0x84]
mov byte [esp + 0x80], al
movzx eax, byte [esp + 0x86]
mov edx, dword [esp + 0x80]
shl eax, 0x10
or ecx, eax
mov al, 0x17
mov dword [esp + 8], ecx
mov dword [esp + 0x38], eax
jmp 0x1002b243
cmp dword [edx + 4], 0
jne 0x1002b6a2
mov ecx, dword [edx]
add edx, 8
add eax, 0xfffffff8
jmp 0x1002b6ed
mov cl, 0x35
jmp 0x1002b6d0
movzx eax, byte [edx + 2]
add edx, 4
mov byte [esp + 0x60], al
mov eax, dword [esp + 0x100]
add eax, 0xfffffffc
cmp ecx, 0xfffffff0
jae 0x1002b53a
cmp eax, 4
jae 0x1002b6e5
mov eax, edx
mov cl, 0x13
shr eax, 8
movzx edi, dl
mov edx, dword [esp + 0xc]
shl eax, 8
movd ebx, xmm0
xor esi, esi
jmp 0x1002b1c7
mov ecx, dword [edx]
add eax, 0xfffffffc
add edx, 4
sub eax, ecx
jb 0x1002b7a6
test ecx, ecx
mov dword [esp + 0xfc], eax
je 0x1002b7a6
mov dword [esp + 0x11c], ecx
lea eax, [ecx - 1]
lea ecx, [edx + 1]
mov dword [esp + 0xf8], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x48], ecx
movzx ecx, byte [edx]
test cl, cl
mov byte [esp + 0xc7], cl
je 0x1002b7b1
cmp word [esp + 0x170], 4
mov byte [esp + 0x4f], 1
jb 0x1002b775
test eax, eax
je 0x1002b7b8
mov eax, dword [esp + 0xf8]
movzx eax, byte [eax + 1]
test al, al
mov byte [esp + 0x4f], al
je 0x1002b852
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0xf8]
add eax, 0xfffffffe
add ecx, 2
mov dword [esp + 0x48], ecx
test eax, eax
je 0x1002b7b8
mov ecx, dword [esp + 0x48]
mov edx, eax
dec edx
lea ecx, [ecx + 1]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
je 0x1002b847
cmp eax, 2
jne 0x1002b7c5
mov edi, dword [esp + 0x48]
xor esi, esi
mov cl, 0x13
add edi, 2
jmp 0x1002ae09
xor esi, esi
mov cl, 0x13
mov edi, edx
jmp 0x1002ae09
mov cl, 0x1a
jmp 0x1002b3ed
mov edi, dword [esp + 0x48]
xor esi, esi
mov cl, 0x13
jmp 0x1002b3ed
mov edx, dword [esp + 0x48]
lea esi, [eax - 3]
movzx ecx, byte [edx]
mov byte [esp + 4], cl
movzx ecx, byte [edx + 1]
mov byte [esp + 0xc6], cl
lea ecx, [edx + 3]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], esi
movzx edx, byte [edx + 2]
test dl, dl
mov byte [esp + 0xc5], dl
je 0x1002b859
cmp byte [esp + 4], 0
setne byte [esp + 0xc4]
test esi, esi
je 0x1002b847
mov ecx, dword [esp + 0x48]
movzx ecx, byte [ecx + 3]
test cl, cl
mov byte [esp + 0x4e], cl
je 0x1002b860
movzx ecx, byte [esp + 0x4e]
add dword [esp + 0x48], 4
add eax, 0xfffffffc
dec cl
movzx edx, cl
sub eax, edx
mov ecx, edx
mov dword [esp + 0x144], edx
jae 0x1002b867
mov edi, dword [esp + 0x48]
xor esi, esi
mov cl, 0x13
mov edx, edi
jmp 0x1002b3ed
mov edi, ecx
xor esi, esi
mov cl, 0x13
jmp 0x1002b3ed
mov cl, 0x1b
jmp 0x1002b7b3
mov cl, 0x1c
jmp 0x1002b7b3
mov cl, 0x1d
jmp 0x1002b7b3
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x144]
cmp word [esp + 0x170], 4
mov dword [esp + 0x108], 8
mov dword [esp + 0x10c], 0
mov dword [esp + 0x110], 0
lea ecx, [ecx + edx]
mov dword [esp + 0x1c], ecx
mov dword [esp], ecx
mov dword [esp + 0x20], eax
ja 0x1002b9c1
test eax, eax
je 0x1002baf8
mov ecx, dword [esp]
mov dword [esp + 0x40], 0
mov dword [esp + 0x6c], 8
lea edx, [ecx + eax]
mov ecx, dword [esp + 4]
xor esi, esi
mov dword [esp + 0xc], ecx
mov ecx, dword [esp]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp byte [ecx + esi], 0
je 0x1002b8fb
mov ecx, dword [esp + 4]
lea ecx, [ecx + esi + 1]
inc esi
cmp ecx, edx
jne 0x1002b8df
jmp 0x1002bab6
mov ecx, esi
not ecx
add ecx, eax
mov eax, dword [esp + 4]
test esi, esi
lea eax, [eax + esi + 1]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
je 0x1002bde1
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x10c]
jne 0x1002b94c
mov edx, dword [esp + 0x40]
lea ecx, [esp + 0x108]
call fcn.1002f5e0
mov eax, dword [esp + 0x108]
mov ecx, dword [esp + 0x110]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 4]
shl eax, 4
mov dword [ecx + eax + 4], 0
mov dword [ecx + eax], 0x1f
mov ecx, dword [esp + 0x6c]
mov dword [ecx + eax + 8], edx
mov ecx, dword [esp + 0x6c]
mov dword [ecx + eax + 0xc], esi
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x20]
mov dword [esp], ecx
lea edx, [ecx + eax]
test eax, eax
jne 0x1002b8ce
jmp 0x1002baf8
mov ecx, 4
mov edx, 0x20
call fcn.10002cd0
jmp 0x1002c703
lea ecx, [esp + 0x80]
lea edx, [esp + 0x1c]
call fcn.1002e560
movzx eax, byte [esp + 0x80]
cmp al, 0x4b
mov dword [esp + 0x10], eax
jne 0x1002babf
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov dword [esp], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x78], eax
mov dword [esp + 0x40], edx
test ecx, ecx
je 0x1002bb47
mov eax, ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp]
lea edx, [ecx + eax]
neg eax
inc ecx
mov dword [esp], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x44], eax
xor ecx, ecx
mov edx, dword [esp]
cmp ecx, 0x3f
movzx eax, byte [edx - 1]
mov byte [esp + 4], al
jne 0x1002ba5c
cmp byte [esp + 4], 2
jae 0x1002bb51
mov dh, byte [esp + 4]
mov eax, 0
and dh, 0x7f
movzx esi, dh
xor edx, edx
shld edx, esi, cl
shl esi, cl
test cl, 0x20
cmovne edx, esi
cmovne esi, eax
or dword [esp + 0x64], edx
or dword [esp + 0x68], esi
cmp byte [esp + 4], 0
jns 0x1002bbc4
add ecx, 7
inc dword [esp]
inc dword [esp + 0x44]
jne 0x1002ba41
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0
mov dword [esp], eax
jmp 0x1002bb47
ud2
mov eax, dword [esp + 4]
mov dword [esp], eax
jmp 0x1002baf8
movzx eax, byte [esp + 0x83]
movzx ebx, word [esp + 0x81]
mov esi, dword [esp + 0x8c]
shl eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov al, 1
mov dword [esp + 8], eax
jmp 0x1002bb75
mov al, 0x13
xor esi, esi
mov dword [esp + 0x78], 2
mov dword [esp + 0x40], 0
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
jmp 0x1002bb75
mov ecx, 4
mov edx, 0x20
call fcn.10002cd0
jmp 0x1002c703
mov edx, 5
mov ecx, ebx
push 0x104eda1c
call fcn.10003920
add esp, 4
jmp 0x1002c703
mov al, 0x13
xor esi, esi
mov dword [esp + 0x10], eax
jmp 0x1002bb68
mov eax, dword [esp + 0x44]
mov ecx, dword [esp]
not eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
mov al, 6
mov dword [esp + 0x10], eax
movzx ebx, byte [esp + 4]
mov dword [esp + 8], 0
cmp dword [esp + 0x10c], 0
je 0x1002bb93
push dword [esp + 0x108]
push 0
push dword [0x104f8080]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x40], 0
mov ecx, dword [esp + 8]
sete al
or cl, al
jne 0x1002bbb4
push dword [esp + 0x78]
push 0
push dword [0x104f8080]
call sub.KERNEL32.dll_HeapFree
mov edi, dword [esp]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
jmp 0x1002b3ed
mov ecx, dword [esp]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x68]
not eax
mov dword [esp + 0x20], eax
or ecx, dword [esp + 0x64]
je 0x1002bdbc
cmp dword [esp + 0x6c], 0
je 0x1002c6d3
movzx ecx, byte [esp + 0x1b]
mov eax, edi
mov dword [esp + 0x3c], 0
mov dword [esp + 0x50], 8
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
shl eax, 0x10
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x60]
or eax, ecx
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x6c]
lea eax, [eax*4]
mov dword [esp + 0xf4], eax
add dword [esp + 0x58], 1
mov dword [esp + 0x44], 0x2e
mov dword [esp + 4], 0
mov dword [esp + 0x14], 0
adc dword [esp + 0x54], 0
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 4]
movzx eax, word [eax + ecx + 2]
lea ecx, [esp + 0x80]
lea edx, [esp + 0x1c]
push eax
push dword [esp + 0xd0]
call fcn.1002e910
add esp, 8
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
mov esi, dword [esp + 0x94]
or eax, dword [esp + 0x84]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0xc], eax
mov dword [esp], ecx
jne 0x1002bdb0
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x24]
cmp word [eax + ecx], 1
mov eax, dword [esp + 0x5c]
cmove edx, dword [esp]
cmove eax, esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x44]
cmove esi, dword [esp + 0xc]
cmove edx, dword [esp + 0x10]
add ecx, 4
mov dword [esp + 0x14], esi
cmp dword [esp + 0xf4], ecx
mov dword [esp + 4], ecx
mov dword [esp + 0x44], edx
jne 0x1002bc5f
mov eax, dword [esp + 0x44]
xor eax, 0x2e
or eax, dword [esp + 0x14]
je 0x1002c6d3
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x10c]
jne 0x1002bd58
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x108]
call fcn.1002f5e0
mov eax, dword [esp + 0x108]
mov ecx, dword [esp + 0x110]
mov dword [esp + 0x50], eax
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 0x44]
mov eax, ecx
inc ecx
shl eax, 4
mov dword [esp + 0x3c], ecx
mov dword [edx + eax], esi
mov esi, dword [esp + 0x14]
mov dword [edx + eax + 4], esi
mov esi, dword [esp + 0x5c]
mov dword [edx + eax + 0xc], esi
mov esi, dword [esp + 0x24]
mov dword [edx + eax + 8], esi
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x110], ecx
cmp esi, dword [esp + 0x68]
sbb edx, dword [esp + 0x64]
jb 0x1002bc3d
mov dword [esp + 0x44], 0
jmp 0x1002bdf9
mov ebx, dword [esp + 0x10]
shr ebx, 8
jmp 0x1002bb10
mov dword [esp + 0x28], 8
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x44], 0
jmp 0x1002c000
mov dword [esp + 0x78], 2
mov dword [esp + 0x6c], 0
mov dword [esp + 0x40], 0
cmp word [esp + 0x170], 5
mov dword [esp + 0x28], 8
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
jae 0x1002c000
test ebx, ebx
mov eax, 0x2e
mov ecx, 0x1f
cmove ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp], eax
test ecx, ecx
je 0x1002c635
mov eax, dword [esp]
xor edi, edi
mov dword [esp + 0x24], 0
mov dword [esp + 0x5c], 8
add eax, ecx
mov edx, dword [esp + 0x14]
xor esi, esi
mov dword [esp + 0xc], edx
mov edx, dword [esp]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x14]
cmp byte [edx + esi], 0
lea edx, [edx + esi + 1]
je 0x1002be86
inc esi
cmp edx, eax
jne 0x1002be6e
jmp 0x1002c13d
mov eax, esi
mov dword [esp + 0x1c], edx
not eax
add eax, ecx
test esi, esi
mov dword [esp + 0x20], eax
je 0x1002c6a0
lea ecx, [esp + 0x80]
lea edx, [esp + 0x1c]
push esi
push dword [esp + 0x18]
call fcn.10020c00
add esp, 8
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x94]
mov dword [esp + 0x68], eax
xor eax, 0x2e
mov dword [esp + 0x64], ecx
mov dword [esp + 0xc], edx
or eax, ecx
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x10], eax
mov dword [esp], ecx
je 0x1002c6bd
lea eax, [esp + 0x98]
mov ecx, dword [esp + 0x24]
movsd xmm1, qword [eax + 0x10]
movq xmm0, qword [eax + 0x18]
movsd xmm2, qword [eax]
cmp ecx, dword [esp + 0x2c]
movsd qword [esp + 0xe0], xmm1
movq xmm1, qword [eax + 8]
movq qword [esp + 0xe8], xmm0
movsd qword [esp + 0xd0], xmm2
movq qword [esp + 0xd8], xmm1
jne 0x1002bf61
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x28]
call fcn.10020f40
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x24], ecx
imul edx, dword [esp + 0x24], 0x38
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x64]
mov dword [eax + edx + 4], ecx
mov ecx, dword [esp + 0x68]
mov dword [eax + edx], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + edx + 8], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax + edx + 0xc], ecx
mov ecx, dword [esp]
mov dword [eax + edx + 0x14], esi
mov dword [eax + edx + 0x10], ecx
movsd xmm0, qword [esp + 0xd0]
movq xmm1, qword [esp + 0xd8]
movsd qword [eax + edx + 0x18], xmm0
movq qword [eax + edx + 0x20], xmm1
movsd xmm0, qword [esp + 0xe0]
movsd qword [eax + edx + 0x28], xmm0
movq xmm0, qword [esp + 0xe8]
movq qword [eax + edx + 0x30], xmm0
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
inc eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
test ecx, ecx
mov dword [esp], eax
lea eax, [eax + ecx]
jne 0x1002be5d
jmp 0x1002c635
lea ecx, [esp + 0x80]
lea edx, [esp + 0x1c]
call fcn.1002e560
movzx eax, byte [esp + 0x80]
cmp al, 0x4b
mov dword [esp + 0x10], eax
jne 0x1002c0f7
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov dword [esp], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], edx
test ecx, ecx
je 0x1002c133
mov eax, ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 4], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp]
lea edx, [ecx + eax]
neg eax
inc ecx
mov dword [esp], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
xor ecx, ecx
mov edx, dword [esp]
cmp ecx, 0x3f
movzx eax, byte [edx - 1]
mov byte [esp + 0x120], al
jne 0x1002c0a1
cmp byte [esp + 0x120], 2
jae 0x1002c149
movzx eax, byte [esp + 0x120]
xor ebx, ebx
mov dh, al
and dh, 0x7f
movzx esi, dh
mov edx, 0
shld ebx, esi, cl
shl esi, cl
test cl, 0x20
cmovne ebx, esi
cmovne esi, edx
or dword [esp + 0x68], ebx
or dword [esp + 4], esi
test al, al
jns 0x1002c175
add ecx, 7
inc dword [esp]
inc dword [esp + 0xc]
jne 0x1002c080
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0
mov dword [esp], eax
jmp 0x1002c133
movzx eax, byte [esp + 0x83]
movzx ebx, word [esp + 0x81]
mov esi, dword [esp + 0x8c]
shl eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov al, 1
mov dword [esp + 8], eax
jmp 0x1002c65e
mov al, 0x13
xor esi, esi
mov dword [esp + 0x10], eax
jmp 0x1002c160
mov eax, dword [esp + 0x14]
mov dword [esp], eax
jmp 0x1002c635
mov eax, dword [esp + 0xc]
mov ecx, dword [esp]
not eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
mov al, 6
mov dword [esp + 0x10], eax
movzx ebx, byte [esp + 0x120]
mov dword [esp + 8], 0
jmp 0x1002c65e
mov ecx, dword [esp]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 4]
not eax
mov dword [esp + 0x20], eax
or ecx, dword [esp + 0x68]
je 0x1002c59e
cmp dword [esp + 0x5c], 0
je 0x1002c6ec
movzx eax, byte [esp + 0x1b]
movzx ebx, byte [esp + 0x60]
shl edi, 0x10
mov dword [esp + 0xc8], 0
mov dword [esp + 0x138], 8
mov dword [esp + 0x140], 0
mov dword [esp + 0x13c], 0
shl eax, 8
or eax, edi
or ebx, eax
mov eax, dword [esp + 0x5c]
lea eax, [eax*4]
mov dword [esp + 0x120], eax
add dword [esp + 0x140], 1
pxor xmm0, xmm0
mov dword [esp + 0x64], 0x2e
mov dword [esp + 0xcc], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x58], 0
movdqa xmmword [esp + 0x2b0], xmm0
adc dword [esp + 0x13c], 0
xor edi, edi
jmp 0x1002c29a
add edi, 4
cmp dword [esp + 0x120], edi
je 0x1002c4b1
mov eax, dword [esp + 0x14]
movzx eax, word [eax + edi + 2]
lea ecx, [esp + 0x80]
lea edx, [esp + 0x1c]
push eax
push ebx
call fcn.1002e910
add esp, 8
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
mov esi, dword [esp + 0x94]
or eax, dword [esp + 0x84]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0xc], eax
mov dword [esp], ecx
jne 0x1002c64f
mov eax, dword [esp + 0x14]
movzx ecx, word [eax + edi]
dec ecx
cmp ecx, 4
ja 0x1002c28a
mov ecx, dword [ecx*4 + 0x1002c8c8]
mov eax, dword [esp]
add ecx, dword [esp + 8]
shr eax, 8
jmp ecx
mov eax, dword [esp + 0x64]
xor eax, 0x2e
or eax, dword [esp + 0xcc]
je 0x1002c6ec
mov eax, dword [esp + 0xc8]
cmp eax, dword [esp + 0x2c]
jne 0x1002c4f8
mov edx, dword [esp + 0xc8]
lea ecx, [esp + 0x28]
call fcn.10020f40
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x138], eax
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x138]
mov esi, dword [esp + 0xcc]
movdqa xmm0, xmmword [esp + 0x2b0]
imul eax, ecx, 0x38
inc ecx
mov dword [edx + eax + 4], esi
mov esi, dword [esp + 0x64]
mov dword [esp + 0xc8], ecx
mov dword [edx + eax], esi
mov esi, dword [esp + 0x194]
mov dword [edx + eax + 8], esi
mov esi, dword [esp + 0xf4]
mov dword [edx + eax + 0xc], esi
mov esi, dword [esp + 0xb8]
mov dword [edx + eax + 0x14], esi
mov esi, dword [esp + 0xbc]
mov dword [edx + eax + 0x10], esi
mov esi, dword [esp + 0x50]
mov dword [edx + eax + 0x1c], esi
mov esi, dword [esp + 0x54]
mov dword [edx + eax + 0x18], esi
mov esi, dword [esp + 0x58]
mov dword [edx + eax + 0x24], esi
mov esi, dword [esp + 0x3c]
mov dword [edx + eax + 0x20], esi
mov esi, dword [esp + 0x140]
movdqu xmmword [edx + eax + 0x28], xmm0
mov edx, dword [esp + 0x13c]
mov dword [esp + 0x30], ecx
cmp esi, dword [esp + 4]
sbb edx, dword [esp + 0x68]
jb 0x1002c1f1
xor edi, edi
mov dword [esp + 4], 0x2e
mov dword [esp + 0x120], 0
movsd xmm0, qword [esp + 0x108]
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x110]
mov esi, dword [esp + 0x78]
movsd qword [esp + 0x180], xmm0
movq xmm0, qword [esp + 0x28]
mov dword [esp + 0x2a8], ecx
add dword [esp + 0xf8], eax
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x188], edx
movq qword [esp + 0x2a0], xmm0
pxor xmm0, xmm0
movdqa xmmword [esp + 0x150], xmm0
movdqa xmmword [esp + 0x160], xmm0
mov eax, dword [esp + 0x1a8]
xor eax, 0x2f
or eax, dword [esp + 0x1ac]
jne 0x1002aeba
jmp 0x1002af42
mov al, 0x13
xor esi, esi
mov dword [esp + 0x14], 2
mov dword [esp + 0x24], 0
mov dword [esp + 0x10], eax
jmp 0x1002c656
mov ebx, dword [esp + 0x10]
shr ebx, 8
mov dword [esp + 8], 0
cmp dword [esp + 0x2c], 0
je 0x1002c676
push dword [esp + 0x28]
push 0
push dword [0x104f8080]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x24], 0
mov ecx, dword [esp + 8]
sete al
or cl, al
jne 0x1002bb10
push dword [esp + 0x14]
push 0
push dword [0x104f8080]
call sub.KERNEL32.dll_HeapFree
jmp 0x1002bb10
mov dword [esp + 0x24], 0
mov dword [esp + 0x14], 2
mov dword [esp + 0x5c], 0
jmp 0x1002c5b3
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x24], 0
mov dword [esp + 0x14], 2
jmp 0x1002c653
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rsIndex_out_of_bounds
push 0x104ee84c
call fcn.10003c40
add esp, 4
jmp 0x1002c703
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rsIndex_out_of_bounds
push 0x104ee83c
call fcn.10003c40
add esp, 4
ud2