Function at 0x1004a8d0
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
mov eax, 0x11c0
call 0x1006d593
mov eax, dword [edx]
mov edi, dword [ebp + 8]
mov dword [esp + 0x158], 6
mov dword [esp + 0x16c], 0
mov dword [esp + 0x168], 0
mov dword [esp + 0x128], ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x170], eax
mov dword [esp + 0x144], 0
mov dword [esp + 0x140], 0
mov ebx, dword [edi]
movzx eax, word [ebx + 0x120]
cmp eax, 0x8664
jne 0x10059e7b
movzx eax, word [ebx + 0x106]
and eax, 0xfffffffe
cmp ax, 2
jne 0x1004aa82
mov esi, dword [ebx + 0xd8]
xor eax, eax
sub esi, 1
cmovb esi, eax
movzx eax, word [ebx + 0x122]
and eax, 0xfffffffe
cmp ax, 2
jne 0x1004a9a8
mov edx, dword [ebx + 0x12c]
cmp edx, 2
jb 0x1004c313
mov edi, dword [ebx + 0x128]
cmp byte [edi + 0x2f], 0
jne 0x1004a9a8
cmp byte [edi + 0x2e], 0
jne 0x1004a9a8
cmp byte [edi + 0x2d], 0
jne 0x1004a9a8
cmp byte [edi + 0x2c], 0
je 0x1004b0f5
mov ecx, dword [ebx + 0x12c]
test ecx, ecx
je 0x1004aa82
mov eax, dword [ebx + 0x128]
mov edi, dword [ebp + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add eax, 8
jmp 0x1004a9dc
add eax, 0x28
add ecx, 0xffffffd8
je 0x1004aa82
mov edx, dword [eax + 0x18]
not edx
test edx, 0xa0000000
jne 0x1004a9d0
mov edx, dword [ebx + 0xcc]
sub edx, dword [eax + 4]
jb 0x1004a9d0
cmp edx, dword [eax]
jae 0x1004a9d0
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x508339c
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0xda41f9ad
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xe543
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1004aa80
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
mov ebx, dword [edi]
movzx eax, word [ebx + 0x122]
add eax, 0xfffffffe
cmp ax, 2
ja 0x1004aabd
movzx eax, word [ebx + 0x106]
and eax, 0xfffffffe
cmp ax, 2
jne 0x1004aabd
movzx eax, word [ebx + 0x126]
cmp eax, 0x2022
jne 0x1004aabd
cmp dword [ebx + 0xcc], 0
je 0x1004ae5f
mov edi, dword [ebp + 8]
mov eax, dword [edi]
movzx ecx, word [eax + 0x126]
cmp ecx, 0x2022
jne 0x1004aafc
cmp dword [eax + 0x18], 0
je 0x1004aafc
cmp dword [eax + 0x12c], 3
jb 0x1004aafc
mov edx, dword [eax + 0x128]
cmp byte [edx + 0x2f], 0
jne 0x1004aafc
cmp byte [edx + 0x2e], 0
jne 0x1004aafc
cmp byte [edx + 0x2d], 0
je 0x1004af40
mov eax, dword [edi]
cmp dword [eax + 0x18], 0
je 0x1004bd53
mov edx, edi
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
call fcn.10068470
add esp, 4
xor edi, edi
lea edx, [0x508403d]
lea esi, [0x508403e]
mov eax, 0xfffffff9
xor ebx, ebx
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x1004ab65
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, edi
movzx ecx, ch
shl esi, 4
or ecx, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x1004ab84
shld ebx, edi, 4
inc eax
test edx, edx
mov edi, ecx
jne 0x1004ab40
mov eax, dword [esp + 0x190]
test eax, eax
je 0x1004ac01
movsd xmm0, qword [esp + 0x194]
mov esi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
xor ecx, 0x50
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x80]
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x98], xmm0
movaps xmmword [esp + 0x70], xmm0
mov dword [esp + 0x9c], esi
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
mov edi, dword [ebp + 8]
je 0x1004ac1f
lea ecx, [esp + 0x98]
call fcn.10004080
xor eax, eax
jmp 0x1004ac35
mov ecx, dword [esp + 0x198]
mov eax, dword [esp + 0x194]
mov edi, dword [ebp + 8]
lea esi, [esp + 0x190]
mov dword [esp + 0x20], ecx
jmp 0x1004ac99
movdqa xmm0, xmmword [esp + 0x70]
mov eax, dword [esp + 0x84]
movd ecx, xmm0
mov dword [eax], ecx
mov dword [eax + 4], esi
movq xmm0, qword [esp]
mov edx, dword [esp + 0x20]
lea esi, [esp + 0x190]
movd ecx, xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], edx
test ecx, ecx
je 0x1004ac90
mov dword [esp + 0x190], ecx
mov ecx, dword [esp + 0x3c]
movq xmm0, qword [esp + 0x44]
mov edx, 0x5084141
mov ecx, dword [ecx + 0x10]
movq qword [esp + 0x194], xmm0
mov dword [esp + 0x19c], eax
push esi
push 7
call fcn.1005cbb0
add esp, 8
jmp 0x1004bd53
pshufd xmm0, xmm0, 0x55
movd eax, xmm0
lea ecx, [esp + 0x17c]
mov dword [esp + 0xe0], 4
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0x1190], 0
mov dword [esp + 0x17c], esi
mov dword [esp + 0xe4], ecx
xor ecx, ecx
mov ebx, dword [eax + 0x34]
mov edx, dword [eax + 0x30]
lea eax, [ebx + ebx*8]
add ebx, edx
lea eax, [eax + eax*2]
add ebx, eax
nop dword [eax]
add edx, 0x1c
lea eax, [edx - 0x1c]
cmp eax, ebx
je 0x1004b17e
mov eax, dword [eax + 0x10]
test eax, eax
je 0x1004acf0
mov esi, dword [edx - 8]
cmp esi, 3
jbe 0x1004acf0
mov dword [esp + 0x60], ebx
movzx ebx, byte [eax]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x70], esi
xor esi, esi
mov dword [esp + 0xc0], edx
mov ecx, ebx
add cl, 0x81
cmp cl, 0xa1
mov ecx, 0
jb 0x1004ad65
mov cl, 2
cmp bl, 0x5f
je 0x1004ad65
mov ecx, ebx
add cl, 0xd0
cmp cl, 0xa
mov cl, 3
jb 0x1004ad65
mov ecx, ebx
add cl, 0xbf
cmp cl, 0x1a
mov cl, 4
jb 0x1004ad65
add bl, 0x9f
cmp bl, 0x1a
setb cl
shl cl, 2
or cl, 1
mov edx, dword [esp + 0x70]
inc eax
lea edi, [edx - 1]
jmp 0x1004ad81
xor ebx, ebx
xor ecx, ecx
cmp dl, bl
setne cl
inc eax
add esi, ecx
dec edi
mov ecx, ebx
je 0x1004adc0
mov edx, ecx
movzx ecx, byte [eax]
mov ch, cl
add ch, 0x81
cmp ch, 0xa1
jb 0x1004ad70
mov bl, 2
cmp cl, 0x5f
je 0x1004ad72
mov ch, cl
mov bl, 3
add ch, 0xd0
cmp ch, 0xa
jb 0x1004ad72
mov ch, cl
mov bl, 4
add ch, 0xbf
cmp ch, 0x1a
jb 0x1004ad72
add cl, 0x9f
cmp cl, 0x1a
setb bl
shl bl, 2
or bl, 1
jmp 0x1004ad72
push 0
push dword [esp + 0x74]
push esi
push 0
call 0x1006d91c
add esp, 0x10
mov ebx, dword [esp + 0x60]
test edx, edx
jne 0x1004c7c2
mov esi, eax
mov eax, dword [esp + 0xb0]
mov edi, dword [ebp + 8]
mov ecx, eax
inc ecx
je 0x1004b06b
cmp ecx, dword [esp + 0xec]
jbe 0x1004ae3a
mov dword [esp + 0x70], ecx
call fcn.100032d0
mov edx, dword [esp + 0x70]
test eax, eax
je 0x1004ae26
cmp eax, edx
jbe 0x1004ae26
lea ecx, [esp + 0xe0]
mov edx, eax
call fcn.10028040
mov edx, dword [esp + 0x70]
cmp al, 8
je 0x1004ae3a
lea ecx, [esp + 0xe0]
call fcn.10028040
cmp al, 8
jne 0x1004b177
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xc0]
mov dword [eax + ecx*4], esi
inc ecx
mov dword [esp + 0xe8], ecx
jmp 0x1004acf0
cmp dword [ebx + 0x18], 0
je 0x1004aabd
mov eax, dword [ebx + 0x20]
or eax, dword [ebx + 0x24]
jne 0x1004aabd
lea ecx, [ebx + 8]
call fcn.1002d960
mov edi, edx
mov edx, dword [ebx + 0x12c]
cmp edx, 2
jb 0x1004c674
mov ecx, dword [ebx + 0x128]
add eax, dword [ecx + 0x30]
lea ecx, [esp + 0x190]
adc edi, 0
mov esi, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x20], edi
mov ebx, edi
mov edi, dword [ebp + 0xc]
add esi, 0xfffffff8
adc ebx, 0xffffffff
mov edx, dword [edi]
push 0
push ebx
push esi
push dword [edi + 8]
push dword [edi + 4]
mov edi, ecx
call fcn.100341e0
add esp, 0x14
mov ecx, 0x508337c
mov edx, 0x23
call fcn.10007f70
mov ecx, esp
mov edx, edi
push eax
call fcn.10032cc0
add esp, 4
movq xmm0, qword [esp]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
movd edx, xmm0
test edx, edx
je 0x1004b079
movd edx, xmm0
test edx, edx
je 0x1004aabd
movq qword [esp + 0x190], xmm0
mov dword [esp + 0x198], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x19c], eax
mov edx, 0x5084138
mov ecx, dword [ecx + 0x10]
push edi
push 3
call fcn.1005cbb0
add esp, 8
jmp 0x1004aabd
cmp byte [edx + 0x2c], 0
je 0x1004aafc
movzx eax, byte [edx + 0x2c]
mov ecx, 0x7865742e
xor ecx, dword [edx + 0x28]
xor eax, 0x74
or eax, ecx
jne 0x1004aafc
mov dword [esp + 0x70], edx
mov edx, edi
mov ecx, esp
push dword [ebp + 0xc]
call fcn.10068470
add esp, 4
xor esi, esi
lea ebx, [0x5080b4d]
lea edx, [0x5080b4e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
movzx ecx, byte [ebx]
mov ebx, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x1004afb4
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, esi
movzx edi, dl
lea edx, [ebx + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, ebx
je 0x1004afd5
shld dword [esp + 0x20], esi, 4
inc eax
test ebx, ebx
mov esi, edi
jne 0x1004af8f
mov eax, dword [esp]
test eax, eax
je 0x1004c1aa
mov ecx, dword [esp + 0xc]
movq xmm0, qword [esp + 4]
xor edi, 0x23
mov dword [esp + 0x190], eax
lea edx, [esp + 0x190]
movq qword [esp + 0x194], xmm0
mov dword [esp + 0x19c], ecx
lea ecx, [esp + 0x40]
push edi
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 0x40]
test eax, eax
je 0x1004c219
mov ecx, dword [esp + 0x4c]
movq xmm0, qword [esp + 0x44]
mov edi, dword [ebp + 8]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x3c]
movq qword [esp + 0x194], xmm0
mov dword [esp + 0x19c], ecx
mov edx, 0x508413b
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 6
call fcn.1005cbb0
add esp, 8
jmp 0x1004aafc
mov ecx, eax
mov dword [esp + 0x12c], eax
jmp 0x1004b18e
mov esi, dword [esp + 0x20]
or ecx, eax
je 0x1004aabd
mov edi, dword [ebp + 0xc]
mov ebx, dword [esp + 0x70]
mov eax, esi
lea ecx, [esp + 0x190]
mov edx, dword [edi]
add ebx, 8
adc eax, 0
push 0
push eax
push ebx
push dword [edi + 8]
push dword [edi + 4]
call fcn.100341e0
add esp, 0x14
mov ecx, 0x508337c
mov edx, 0x26
call fcn.10007f70
mov ecx, esp
lea edx, [esp + 0x190]
push eax
call fcn.10032cc0
add esp, 4
movq xmm0, qword [esp]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
movd edx, xmm0
test edx, edx
je 0x1004c0d1
lea edi, [esp + 0x190]
jmp 0x1004af01
cmp byte [edi + 0x2b], 0
je 0x1004a9a8
cmp dword [edi + 0x28], 0x30585055
jne 0x1004a9a8
test dword [edi + 0x30], esi
jne 0x1004a9a8
cmp dword [edi + 0x38], 0
jne 0x1004a9a8
cmp dword [edi + 0x48], 0xe0000080
jne 0x1004a9a8
cmp edx, 3
jb 0x1004c870
lea ecx, [edi + 0x50]
call 0x1006d530
cmp edx, 4
jne 0x1004a9a8
cmp dword [eax], 0x31585055
jne 0x1004a9a8
test dword [edi + 0x58], esi
jne 0x1004a9a8
cmp dword [edi + 0x60], 0
je 0x1004a9a8
cmp dword [edi + 0x70], 0xe0000040
jne 0x1004a9a8
jmp 0x1004aa82
mov ecx, dword [esp + 0xe8]
cmp ecx, 2
mov dword [esp + 0x12c], ecx
jb 0x1004bd41
mov edx, dword [esp + 0xec]
mov edi, dword [esp + 0xe0]
mov ebx, ecx
mov eax, 0x20
cmp ecx, edx
cmovb edx, ecx
mov ecx, 0x20
test edx, edx
je 0x1004b1b7
bsr ecx, edx
xor ecx, 0x1f
sub eax, ecx
mov esi, esp
mov ecx, edi
push eax
push 0
push esi
call fcn.10062440
add esp, 0xc
mov eax, dword [edi]
mov dword [esp + 0x180], eax
mov eax, ebx
and eax, 0xfffffffe
cmp ebx, 4
mov eax, dword [edi + eax*2]
mov dword [esp + 0x184], eax
mov eax, dword [edi + ebx*4 - 4]
mov dword [esp + 0x188], eax
jae 0x1004b1f9
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x1004b25f
mov eax, ebx
mov ecx, ebx
lea ecx, [edi + 8]
pxor xmm1, xmm1
pxor xmm2, xmm2
pxor xmm0, xmm0
and eax, 0xfffffffc
mov edx, eax
nop word cs:[eax + eax]
nop dword [eax + eax]
movq xmm3, qword [ecx - 8]
movq xmm4, qword [ecx]
add ecx, 0x10
add edx, 0xfffffffc
punpckldq xmm3, xmm1
punpckldq xmm4, xmm1
paddq xmm2, xmm3
paddq xmm0, xmm4
jne 0x1004b220
paddq xmm0, xmm2
cmp ebx, eax
pshufd xmm1, xmm0, 0xee
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0x55
movd ecx, xmm1
movd edx, xmm0
je 0x1004b27b
mov esi, ebx
sub esi, eax
lea eax, [edi + eax*4]
nop word cs:[eax + eax]
add ecx, dword [eax]
adc edx, 0
add eax, 4
dec esi
jne 0x1004b270
push 0
push ebx
push edx
push ecx
call 0x1006d91c
add esp, 0x10
test edx, edx
jne 0x1004c7e7
mov dword [esp + 0x18c], eax
lea eax, [esp + 0x12c]
lea edi, [esp + 0x40]
mov ebx, esp
mov dword [esp + 0xd4], 1
mov dword [esp + 0xd8], 0
mov dword [esp], 0x50868cc
mov dword [esp + 0xdc], 0
mov dword [esp + 4], 1
mov edx, 0x508435c
mov dword [esp + 0xf8], eax
lea eax, [esp + 0xd4]
mov ecx, edi
mov dword [esp + 0x40], eax
lea eax, [esp + 0xf8]
mov dword [esp + 0xf0], eax
lea eax, [esp + 0xf0]
mov dword [esp + 0xf4], 0x5012f70
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
push ebx
call fcn.10005570
add esp, 4
test al, al
jne 0x1004b483
mov eax, dword [esp + 0x3c]
mov esi, dword [eax + 0x10]
cmp byte [esi + 0x28], 2
jb 0x1004b483
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd8]
cmp byte [esi + 0x2a], 0
je 0x1004b35d
mov byte [esi + 0x2a], 0
jmp 0x1004b3aa
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0x40]
mov dword [esp], 0x50836fc
mov dword [esp + 4], 1
mov dword [esp + 8], 0x5086800
mov dword [esp + 0xc], 0
mov dword [esp + 0x40], esi
mov dword [esp + 0x10], 0
mov edx, 0x50834cc
push ebx
mov dword [esp + 0x74], eax
call fcn.10005570
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x74]
add esp, 4
mov dword [esp], eax
lea eax, [esp + 0x98]
mov dword [esp + 0x80], 0x5083710
mov dword [esp + 0x84], 3
mov dword [esp + 4], ecx
mov dword [esp + 0x40], 0x5084045
mov dword [esp + 0x44], 0xa
mov ecx, 0x7fffffff
mov edx, 0xffffffdf
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], 0x5017930
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xfc], esi
mov dword [esp + 0x48], 0
mov dword [esp + 8], 0
mov dword [esp + 0xa4], 0x5017930
mov dword [esp + 0x88], eax
mov eax, 0xefffffff
mov dword [esp + 0x8c], 2
mov dword [esp + 0x54], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0xc], edx
mov dword [esp + 0x90], 0
lea ecx, [esp + 0xfc]
mov edx, 0x50834cc
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], eax
lea eax, [esp + 0x80]
mov byte [esp + 0x58], 0
mov byte [esp + 0x18], 0
push eax
call fcn.10005570
add esp, 4
mov edx, 1
mov ecx, 1
push dword [esp + 0xdc]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1004b4ba
mov ecx, dword [0x5087000]
push edx
push eax
push dword [esp + 0xdc]
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
lea eax, [esp + 0x180]
lea edi, [esp + 0x40]
mov dword [esp + 0xd4], 1
mov dword [esp + 0xd8], 0
mov dword [esp], 0x50868cc
mov dword [esp + 0xdc], 0
mov dword [esp + 4], 1
mov edx, 0x508435c
mov dword [esp + 0xf8], eax
lea eax, [esp + 0xd4]
mov ecx, edi
mov dword [esp + 0x40], eax
lea eax, [esp + 0xf8]
mov dword [esp + 0xf0], eax
lea eax, [esp + 0xf0]
mov dword [esp + 0xf4], 0x5012f70
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
push ebx
call fcn.10005570
add esp, 4
test al, al
jne 0x1004b6a4
mov eax, dword [esp + 0x3c]
mov esi, dword [eax + 0x10]
cmp byte [esi + 0x28], 2
jb 0x1004b6a4
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd8]
cmp byte [esi + 0x2a], 0
je 0x1004b57e
mov byte [esi + 0x2a], 0
jmp 0x1004b5cb
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0x40]
mov dword [esp], 0x50836fc
mov dword [esp + 4], 1
mov dword [esp + 8], 0x5086800
mov dword [esp + 0xc], 0
mov dword [esp + 0x40], esi
mov dword [esp + 0x10], 0
mov edx, 0x50834cc
push ebx
mov dword [esp + 0x74], eax
call fcn.10005570
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x74]
add esp, 4
mov dword [esp], eax
lea eax, [esp + 0x98]
mov dword [esp + 0x80], 0x5083710
mov dword [esp + 0x84], 3
mov dword [esp + 4], ecx
mov dword [esp + 0x40], 0x508404f
mov dword [esp + 0x44], 8
mov ecx, 0x7fffffff
mov edx, 0xffffffdf
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], 0x5017930
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xfc], esi
mov dword [esp + 0x48], 0
mov dword [esp + 8], 0
mov dword [esp + 0xa4], 0x5017930
mov dword [esp + 0x88], eax
mov eax, 0xefffffff
mov dword [esp + 0x8c], 2
mov dword [esp + 0x54], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0xc], edx
mov dword [esp + 0x90], 0
lea ecx, [esp + 0xfc]
mov edx, 0x50834cc
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], eax
lea eax, [esp + 0x80]
mov byte [esp + 0x58], 0
mov byte [esp + 0x18], 0
push eax
call fcn.10005570
add esp, 4
mov edx, 1
mov ecx, 1
push dword [esp + 0xdc]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1004b6db
mov ecx, dword [0x5087000]
push edx
push eax
push dword [esp + 0xdc]
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
lea eax, [esp + 0x184]
lea edi, [esp + 0x40]
mov dword [esp + 0xd4], 1
mov dword [esp + 0xd8], 0
mov dword [esp], 0x50868cc
mov dword [esp + 0xdc], 0
mov dword [esp + 4], 1
mov edx, 0x508435c
mov dword [esp + 0xf8], eax
lea eax, [esp + 0xd4]
mov ecx, edi
mov dword [esp + 0x40], eax
lea eax, [esp + 0xf8]
mov dword [esp + 0xf0], eax
lea eax, [esp + 0xf0]
mov dword [esp + 0xf4], 0x5012f70
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
push ebx
call fcn.10005570
add esp, 4
test al, al
jne 0x1004b8c5
mov eax, dword [esp + 0x3c]
mov esi, dword [eax + 0x10]
cmp byte [esi + 0x28], 2
jb 0x1004b8c5
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd8]
cmp byte [esi + 0x2a], 0
je 0x1004b79f
mov byte [esi + 0x2a], 0
jmp 0x1004b7ec
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0x40]
mov dword [esp], 0x50836fc
mov dword [esp + 4], 1
mov dword [esp + 8], 0x5086800
mov dword [esp + 0xc], 0
mov dword [esp + 0x40], esi
mov dword [esp + 0x10], 0
mov edx, 0x50834cc
push ebx
mov dword [esp + 0x74], eax
call fcn.10005570
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x74]
add esp, 4
mov dword [esp], eax
lea eax, [esp + 0x98]
mov dword [esp + 0x80], 0x5083710
mov dword [esp + 0x84], 3
mov dword [esp + 4], ecx
mov dword [esp + 0x40], 0x5084057
mov dword [esp + 0x44], 0xb
mov ecx, 0x7fffffff
mov edx, 0xffffffdf
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], 0x5017930
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xfc], esi
mov dword [esp + 0x48], 0
mov dword [esp + 8], 0
mov dword [esp + 0xa4], 0x5017930
mov dword [esp + 0x88], eax
mov eax, 0xefffffff
mov dword [esp + 0x8c], 2
mov dword [esp + 0x54], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0xc], edx
mov dword [esp + 0x90], 0
lea ecx, [esp + 0xfc]
mov edx, 0x50834cc
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], eax
lea eax, [esp + 0x80]
mov byte [esp + 0x58], 0
mov byte [esp + 0x18], 0
push eax
call fcn.10005570
add esp, 4
mov edx, 1
mov ecx, 1
push dword [esp + 0xdc]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1004b8fc
mov ecx, dword [0x5087000]
push edx
push eax
push dword [esp + 0xdc]
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
lea eax, [esp + 0x18c]
lea edi, [esp + 0x40]
mov dword [esp + 0xd4], 1
mov dword [esp + 0xd8], 0
mov dword [esp], 0x50868cc
mov dword [esp + 0xdc], 0
mov dword [esp + 4], 1
mov edx, 0x508435c
mov dword [esp + 0xf8], eax
lea eax, [esp + 0xd4]
mov ecx, edi
mov dword [esp + 0x40], eax
lea eax, [esp + 0xf8]
mov dword [esp + 0xf0], eax
lea eax, [esp + 0xf0]
mov dword [esp + 0xf4], 0x5012f70
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
push ebx
call fcn.10005570
add esp, 4
test al, al
jne 0x1004bae6
mov eax, dword [esp + 0x3c]
mov esi, dword [eax + 0x10]
cmp byte [esi + 0x28], 2
jb 0x1004bae6
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd8]
cmp byte [esi + 0x2a], 0
je 0x1004b9c0
mov byte [esi + 0x2a], 0
jmp 0x1004ba0d
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0x40]
mov dword [esp], 0x50836fc
mov dword [esp + 4], 1
mov dword [esp + 8], 0x5086800
mov dword [esp + 0xc], 0
mov dword [esp + 0x40], esi
mov dword [esp + 0x10], 0
mov edx, 0x50834cc
push ebx
mov dword [esp + 0x74], eax
call fcn.10005570
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x74]
add esp, 4
mov dword [esp], eax
lea eax, [esp + 0x98]
mov dword [esp + 0x80], 0x5083710
mov dword [esp + 0x84], 3
mov dword [esp + 4], ecx
mov dword [esp + 0x40], 0x5084062
mov dword [esp + 0x44], 0xc
mov ecx, 0x7fffffff
mov edx, 0xffffffdf
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], 0x5017930
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xfc], esi
mov dword [esp + 0x48], 0
mov dword [esp + 8], 0
mov dword [esp + 0xa4], 0x5017930
mov dword [esp + 0x88], eax
mov eax, 0xefffffff
mov dword [esp + 0x8c], 2
mov dword [esp + 0x54], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0xc], edx
mov dword [esp + 0x90], 0
lea ecx, [esp + 0xfc]
mov edx, 0x50834cc
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], eax
lea eax, [esp + 0x80]
mov byte [esp + 0x58], 0
mov byte [esp + 0x18], 0
push eax
call fcn.10005570
add esp, 4
mov edx, 1
mov ecx, 1
push dword [esp + 0xdc]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1004bb1d
mov ecx, dword [0x5087000]
push edx
push eax
push dword [esp + 0xdc]
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
lea eax, [esp + 0x188]
lea edi, [esp + 0x40]
mov dword [esp + 0xd4], 1
mov dword [esp + 0xd8], 0
mov dword [esp], 0x50868cc
mov dword [esp + 0xdc], 0
mov dword [esp + 4], 1
mov edx, 0x508435c
mov dword [esp + 0xf8], eax
lea eax, [esp + 0xd4]
mov ecx, edi
mov dword [esp + 0x40], eax
lea eax, [esp + 0xf8]
mov dword [esp + 0xf0], eax
lea eax, [esp + 0xf0]
mov dword [esp + 0xf4], 0x5012f70
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
push ebx
call fcn.10005570
add esp, 4
test al, al
jne 0x1004bd07
mov eax, dword [esp + 0x3c]
mov esi, dword [eax + 0x10]
cmp byte [esi + 0x28], 2
jb 0x1004bd07
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd8]
cmp byte [esi + 0x2a], 0
je 0x1004bbe1
mov byte [esi + 0x2a], 0
jmp 0x1004bc2e
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0x40]
mov dword [esp], 0x50836fc
mov dword [esp + 4], 1
mov dword [esp + 8], 0x5086800
mov dword [esp + 0xc], 0
mov dword [esp + 0x40], esi
mov dword [esp + 0x10], 0
mov edx, 0x50834cc
push ebx
mov dword [esp + 0x74], eax
call fcn.10005570
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x74]
add esp, 4
mov dword [esp], eax
mov eax, 0x7fffffff
mov dword [esp + 4], ecx
mov dword [esp + 0x40], 0x508406e
mov dword [esp + 0x44], 8
mov dword [esp + 0x80], 0x5083710
mov dword [esp + 0x84], 3
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], 0x5017930
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xfc], esi
mov dword [esp + 0x48], 0
mov dword [esp + 8], 0
mov dword [esp + 0xa4], 0x5017930
lea ecx, [esp + 0xfc]
mov edx, 0x50834cc
mov dword [esp + 0x54], eax
mov dword [esp + 0x14], eax
mov eax, 0xefffffff
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], eax
mov eax, 0xffffffdf
mov dword [esp + 0x4c], eax
mov dword [esp + 0xc], eax
lea eax, [esp + 0x98]
mov byte [esp + 0x58], 0
mov byte [esp + 0x18], 0
mov dword [esp + 0x88], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x8c], 2
mov dword [esp + 0x90], 0
push eax
call fcn.10005570
add esp, 4
mov edx, 1
mov ecx, 1
push dword [esp + 0xdc]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1004bd3e
mov ecx, dword [0x5087000]
push edx
push eax
push dword [esp + 0xdc]
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
mov edi, dword [ebp + 8]
lea ecx, [esp + 0xe0]
call fcn.100288d0
mov eax, dword [esp + 0x20]
dec dword [eax]
mov edx, edi
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
call fcn.100693f0
add esp, 4
xor edi, edi
lea esi, [0x507d8e5]
lea edx, [0x507d8e6]
mov eax, 0xfffffff9
xor ebx, ebx
nop dword [eax]
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x1004bda5
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, edi
movzx edx, dl
shl ecx, 4
or edx, ecx
test eax, eax
mov ecx, edx
lea edx, [esi + 1]
cmove edx, esi
je 0x1004bdc6
shld ebx, edi, 4
inc eax
test esi, esi
mov edi, ecx
jne 0x1004bd80
mov eax, dword [esp + 0x190]
test eax, eax
je 0x1004be40
movsd xmm0, qword [esp + 0x194]
mov esi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
xor ecx, 0xd
mov dword [esp + 0x70], ecx
lea ecx, [esp + 0x80]
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x98], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x9c], esi
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
je 0x1004be66
lea ecx, [esp + 0x98]
call fcn.10004080
xor eax, eax
jmp 0x1004be7c
mov ecx, dword [esp + 0x198]
mov eax, dword [esp + 0x194]
mov dword [esp + 0x70], ecx
mov ecx, dword [eax + 0x10]
test ecx, ecx
mov dword [esp + 0x60], ecx
jne 0x1004bef5
jmp 0x1004c974
movdqa xmm0, xmmword [esp + 0x20]
mov eax, dword [esp + 0x84]
movd ecx, xmm0
mov dword [eax], ecx
mov dword [eax + 4], esi
movq xmm0, qword [esp]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x70]
movd edx, xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], ecx
test edx, edx
je 0x1004bedd
mov ecx, dword [esp + 0x3c]
movq xmm0, qword [esp + 0x44]
mov dword [esp + 0x190], edx
mov edx, 0x5084148
mov ecx, dword [ecx + 0x10]
movq qword [esp + 0x194], xmm0
mov dword [esp + 0x19c], eax
lea eax, [esp + 0x190]
push eax
push 6
call fcn.1005cbb0
add esp, 8
jmp 0x1004c980
pshufd xmm0, xmm0, 0x55
movd eax, xmm0
mov ecx, dword [eax + 0x10]
test ecx, ecx
mov dword [esp + 0x60], ecx
je 0x1004c974
mov ebx, dword [esp + 0x60]
mov eax, dword [eax + 0xc]
xor ecx, ecx
mov esi, ebx
mov dword [esp + 0x20], eax
jmp 0x1004bf1a
mov ebx, esi
sub esi, ecx
jbe 0x1004c974
shr esi, 1
mov edi, dword [esp + 0x20]
xor edx, edx
add esi, ecx
mov eax, esi
shl eax, 4
cmp dword [edi + eax + 0xc], 0x2dd2b3ce
mov edi, 0xff
setne dl
cmovb edx, edi
cmp dl, 1
je 0x1004bf10
movzx ecx, dl
cmp ecx, 0xff
jne 0x1004bf5a
inc esi
mov ecx, esi
mov esi, ebx
sub esi, ecx
ja 0x1004bf1a
jmp 0x1004c974
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + eax + 4]
test edx, edx
je 0x1004c974
mov ecx, dword [esp + 0x20]
xor ebx, ebx
mov esi, dword [ecx + eax]
mov ecx, edx
jmp 0x1004bf8a
mov ecx, edx
sub edx, ebx
jbe 0x1004c974
shr edx, 1
xor eax, eax
add edx, ebx
mov edi, edx
shl edi, 4
cmp dword [esi + edi + 0xc], 0x2b937060
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x1004bf80
movzx eax, al
cmp eax, 0xff
jne 0x1004bfc4
inc edx
mov ebx, edx
mov edx, ecx
sub edx, ebx
ja 0x1004bf8a
jmp 0x1004c974
mov ecx, dword [esp + 0x60]
xor ebx, ebx
mov esi, ecx
jmp 0x1004bfd8
mov ecx, esi
sub esi, ebx
jbe 0x1004c974
shr esi, 1
mov edi, dword [esp + 0x20]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [edi + eax + 0xc], 0x2dd2b3ce
mov edi, 0xff
setne dl
cmovb edx, edi
cmp dl, 1
je 0x1004bfce
movzx edx, dl
cmp edx, 0xff
jne 0x1004c018
inc esi
mov ebx, esi
mov esi, ecx
sub esi, ebx
ja 0x1004bfd8
jmp 0x1004c974
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + eax + 4]
test edx, edx
je 0x1004c974
mov ecx, dword [esp + 0x20]
xor ebx, ebx
mov esi, dword [ecx + eax]
mov ecx, edx
jmp 0x1004c03f
mov ecx, edx
sub edx, ebx
jbe 0x1004c974
shr edx, 1
xor eax, eax
add edx, ebx
mov edi, edx
shl edi, 4
cmp dword [esi + edi + 0xc], 0xc709d571
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x1004c035
movzx eax, al
cmp eax, 0xff
jne 0x1004c079
inc edx
mov ebx, edx
mov edx, ecx
sub edx, ebx
ja 0x1004c03f
jmp 0x1004c974
mov ecx, dword [esp + 0x60]
xor ebx, ebx
mov esi, ecx
jmp 0x1004c08d
mov ecx, esi
sub esi, ebx
jbe 0x1004c974
shr esi, 1
mov edi, dword [esp + 0x20]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [edi + eax + 0xc], 0x2dd2b3ce
mov edi, 0xff
setne dl
cmovb edx, edi
cmp dl, 1
je 0x1004c083
movzx edx, dl
cmp edx, 0xff
jne 0x1004c1b4
inc esi
mov ebx, esi
mov esi, ecx
sub esi, ebx
ja 0x1004c08d
jmp 0x1004c974
or ecx, eax
lea edi, [esp + 0x190]
je 0x1004aabd
mov eax, dword [ebp + 0xc]
lea ebx, [esp + 0x190]
mov ecx, ebx
mov edx, dword [eax]
push 0
push esi
push dword [esp + 0x78]
push dword [eax + 8]
push dword [eax + 4]
call fcn.100341e0
add esp, 0x14
mov ecx, 0x508337c
mov edx, 0x29
call fcn.10007f70
mov ecx, esp
mov edx, ebx
push eax
call fcn.10032cc0
add esp, 4
movq xmm0, qword [esp]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
movd edx, xmm0
test edx, edx
jne 0x1004af01
or ecx, eax
jne 0x1004aabd
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
lea edx, [esp + 0x190]
push 4
push 0x5083398
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0x15c9146b
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xe543
call fcn.1003b900
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.10028ce0
jmp 0x1004aabd
mov esi, dword [esp + 4]
mov eax, dword [esp + 8]
jmp 0x1004c221
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + eax + 4]
test edx, edx
je 0x1004c974
mov ecx, dword [esp + 0x20]
xor ebx, ebx
mov esi, dword [ecx + eax]
mov ecx, edx
jmp 0x1004c1db
mov ecx, edx
sub edx, ebx
jbe 0x1004c974
shr edx, 1
xor eax, eax
add edx, ebx
mov edi, edx
shl edi, 4
cmp dword [esi + edi + 0xc], 0x52cd0d58
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x1004c1d1
movzx eax, al
cmp eax, 0xff
jne 0x1004c2bb
inc edx
mov ebx, edx
mov edx, ecx
sub edx, ebx
ja 0x1004c1db
jmp 0x1004c974
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
cmp dword [esi + 0x18], 0xa
mov dword [esp + 0x20], eax
ja 0x1004c231
cmp dword [esi + 0x14], 0
je 0x1004c23f
mov eax, dword [esp + 0x20]
mov edi, dword [ebp + 8]
dec dword [eax]
jmp 0x1004aafc
mov ecx, 0x50833a9
mov edx, 0x11
call 0x1006d230
mov edi, dword [esi + 0x34]
mov edx, dword [esi + 0x30]
lea ecx, [edi + edi*8]
mov dword [esp + 0x60], edx
lea ebx, [ecx + ecx*2]
mov ecx, ebx
lea ecx, [ebx + edi]
mov dword [esp + 0xb0], ebx
test ecx, ecx
je 0x1004c231
mov ebx, edx
add ecx, 0xffffffe4
add edx, 0x1c
cmp dword [ebx], 0
je 0x1004c26a
cmp dword [ebx + 4], eax
jne 0x1004c26a
mov ecx, 0x50833ba
mov edx, 0x13
call 0x1006d230
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0x60]
add ecx, edi
test ecx, ecx
je 0x1004c327
mov ebx, edx
add ecx, 0xffffffe4
add edx, 0x1c
cmp dword [ebx], 0
je 0x1004c29c
cmp dword [ebx + 4], eax
jne 0x1004c29c
jmp 0x1004c231
mov ecx, dword [esp + 0x60]
xor ebx, ebx
mov esi, ecx
jmp 0x1004c2cf
mov ecx, esi
sub esi, ebx
jbe 0x1004c974
shr esi, 1
mov edi, dword [esp + 0x20]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [edi + eax + 0xc], 0x2dd2b3ce
mov edi, 0xff
setne dl
cmovb edx, edi
cmp dl, 1
je 0x1004c2c5
movzx edx, dl
cmp edx, 0xff
jne 0x1004c5bf
inc esi
mov ebx, esi
mov esi, ecx
sub esi, ebx
ja 0x1004c2cf
jmp 0x1004c974
mov ecx, 1
push 0x508433c
call fcn.10004a00
add esp, 4
ud2
mov ecx, esi
call fcn.1005d490
test eax, eax
je 0x1004c231
cmp dword [eax + 0xc], 0
jne 0x1004c231
cmp edi, 1
je 0x1004c555
test edi, edi
je 0x1005cb93
mov eax, dword [ebp + 8]
add dword [esp + 0x60], 0x28
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xc0], ecx
lea eax, [edi + eax - 0x1c]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x70]
mov edx, dword [eax]
mov eax, edx
sub eax, dword [ecx + 0x34]
jb 0x1004c231
mov ecx, dword [esp + 0x70]
cmp eax, dword [ecx + 0x30]
jae 0x1004c231
add edx, dword [esp + 0xc0]
mov eax, dword [esp + 0x100]
lea esi, [esp + 0x190]
mov ecx, esi
adc eax, 0
mov edi, edx
add edi, 0x20
mov ebx, eax
adc ebx, 0
push ebx
push edi
push eax
call fcn.100461a0
add esp, 0xc
mov edx, dword [ebp + 0xc]
mov edi, esp
mov ecx, edi
push esi
call fcn.10066980
add esp, 4
mov ecx, 0x5080b4c
mov edx, 0x3e
call fcn.10007f70
lea ecx, [esp + 0x40]
mov edx, edi
push eax
call fcn.1002ba60
add esp, 4
cmp dword [esp + 0x40], 0
jne 0x1004c6e9
movdqu xmm0, xmmword [esp + 0x48]
pshufd xmm1, xmm0, 0x55
movd eax, xmm0
movd ecx, xmm1
or ecx, eax
jne 0x1004c231
pshufd xmm1, xmm0, 0xff
pshufd xmm0, xmm0, 0xee
movd edx, xmm0
movd eax, xmm1
mov ecx, edx
add ecx, 0x20
adc eax, 0
sub esp, 0xc
lea esi, [esp + 0x19c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
movd dword [esp], xmm1
mov ecx, esi
call fcn.100461a0
add esp, 0xc
mov edx, dword [ebp + 0xc]
mov edi, esp
mov ecx, edi
push esi
call fcn.10066dc0
add esp, 4
mov ecx, 0x5080b4c
mov edx, 0x43
call fcn.10007f70
lea ecx, [esp + 0x40]
mov edx, edi
push eax
call fcn.1002ba60
add esp, 4
cmp dword [esp + 0x40], 0
jne 0x1004c6e9
movdqu xmm0, xmmword [esp + 0x48]
pshufd xmm1, xmm0, 0x55
movd eax, xmm0
movd ecx, xmm1
or ecx, eax
jne 0x1004c231
pshufd xmm1, xmm0, 0xff
pshufd xmm0, xmm0, 0xee
movd edx, xmm0
movd eax, xmm1
mov ecx, edx
add ecx, 0x20
adc eax, 0
sub esp, 0xc
lea esi, [esp + 0x19c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
movd dword [esp], xmm1
mov ecx, esi
call fcn.100461a0
add esp, 0xc
mov edx, dword [ebp + 0xc]
mov edi, esp
mov ecx, edi
push esi
call fcn.10066ba0
add esp, 4
mov ecx, 0x5080b4c
mov edx, 0x48
call fcn.10007f70
lea ecx, [esp + 0x40]
mov edx, edi
push eax
call fcn.1002ba60
add esp, 4
cmp dword [esp + 0x40], 0
jne 0x1004c6e9
movdqu xmm0, xmmword [esp + 0x48]
pshufd xmm0, xmm0, 0x55
movd eax, xmm0
or eax, dword [esp + 0x48]
jne 0x1004c231
add dword [esp + 0x60], 0x1c
add dword [esp + 0xb0], 0xffffffe4
jne 0x1004c381
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
lea edx, [esp + 0x190]
push 4
push 0x5080b80
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0xb1d111b0
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xe543
call fcn.1003b900
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.10028ce0
jmp 0x1004c231
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + eax + 4]
test edx, edx
je 0x1004c974
mov ecx, dword [esp + 0x20]
xor ebx, ebx
mov esi, dword [ecx + eax]
mov ecx, edx
jmp 0x1004c5e6
mov ecx, edx
sub edx, ebx
jbe 0x1004c974
shr edx, 1
xor eax, eax
add edx, ebx
mov edi, edx
shl edi, 4
cmp dword [esi + edi + 0xc], 0x1a9b3246
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x1004c5dc
movzx eax, al
cmp eax, 0xff
jne 0x1004c620
inc edx
mov ebx, edx
mov edx, ecx
sub edx, ebx
ja 0x1004c5e6
jmp 0x1004c974
mov ecx, dword [esp + 0x60]
xor ebx, ebx
mov esi, ecx
jmp 0x1004c634
mov ecx, esi
sub esi, ebx
jbe 0x1004c974
shr esi, 1
mov edi, dword [esp + 0x20]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [edi + eax + 0xc], 0x2dd2b3ce
mov edi, 0xff
setne dl
cmovb edx, edi
cmp dl, 1
je 0x1004c62a
movzx edx, dl
cmp edx, 0xff
jne 0x1004c688
inc esi
mov ebx, esi
mov esi, ecx
sub esi, ebx
ja 0x1004c634
jmp 0x1004c974
mov ecx, 1
push 0x5083388
call fcn.10004a00
add esp, 4
ud2
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + eax + 4]
test edx, edx
je 0x1004c974
mov ecx, dword [esp + 0x20]
xor ebx, ebx
mov esi, dword [ecx + eax]
mov ecx, edx
jmp 0x1004c6af
mov ecx, edx
sub edx, ebx
jbe 0x1004c974
shr edx, 1
xor eax, eax
add edx, ebx
mov edi, edx
shl edi, 4
cmp dword [esi + edi + 0xc], 0x40c62caa
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x1004c6a5
movzx eax, al
cmp eax, 0xff
jne 0x1004c70d
inc edx
mov ebx, edx
mov edx, ecx
sub edx, ebx
ja 0x1004c6af
jmp 0x1004c974
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
movq xmm0, qword [esp + 0x48]
mov ecx, dword [esp + 0x50]
mov edi, dword [ebp + 8]
dec dword [edx]
test eax, eax
jne 0x1004b031
jmp 0x1004aafc
mov ecx, dword [esp + 0x60]
xor ebx, ebx
mov esi, ecx
jmp 0x1004c721
mov ecx, esi
sub esi, ebx
jbe 0x1004c974
shr esi, 1
mov edi, dword [esp + 0x20]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [edi + eax + 0xc], 0x2dd2b3ce
mov edi, 0xff
setne dl
cmovb edx, edi
cmp dl, 1
je 0x1004c717
movzx edx, dl
cmp edx, 0xff
jne 0x1004c761
inc esi
mov ebx, esi
mov esi, ecx
sub esi, ebx
ja 0x1004c721
jmp 0x1004c974
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + eax + 4]
test edx, edx
je 0x1004c974
mov ecx, dword [esp + 0x20]
xor ebx, ebx
mov esi, dword [ecx + eax]
mov ecx, edx
jmp 0x1004c788
mov ecx, edx
sub edx, ebx
jbe 0x1004c974
shr edx, 1
xor eax, eax
add edx, ebx
mov edi, edx
shl edi, 4
cmp dword [esi + edi + 0xc], 0xd222f5a1
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x1004c77e
movzx eax, al
cmp eax, 0xff
jne 0x1004c80e
inc edx
mov ebx, edx
mov edx, ecx
sub edx, ebx
ja 0x1004c788
jmp 0x1004c974
mov eax, esp
mov ecx, 0x50867d4
mov edx, 0x2b
mov byte [esp], 1
push 0x508481c
push 0x5084380
push eax
call fcn.10005c10
add esp, 0xc
ud2
mov ecx, 0x50867d4
mov edx, 0x2b
mov byte [esp], 1
push 0x508481c
push 0x5084380
lea eax, [esp + 8]
push eax
call fcn.10005c10
add esp, 0xc
ud2
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x20]
xor esi, esi
mov edx, 0xff
jmp 0x1004c82d
mov ecx, dword [esp + 0x60]
sub dword [esp + 0x60], esi
jbe 0x1004c974
mov eax, dword [esp + 0x60]
xor ebx, ebx
shr eax, 1
add eax, esi
mov dword [esp + 0x60], eax
shl eax, 4
cmp dword [edi + eax + 0xc], 0x2dd2b3ce
setne bl
cmovb ebx, edx
cmp bl, 1
je 0x1004c81f
movzx esi, bl
cmp esi, 0xff
jne 0x1004c889
mov esi, dword [esp + 0x60]
mov dword [esp + 0x60], ecx
inc esi
sub dword [esp + 0x60], esi
ja 0x1004c82d
jmp 0x1004c974
mov ecx, 2
mov edx, 2
push 0x508434c
call fcn.10004a00
add esp, 4
ud2
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + eax + 4]
test ecx, ecx
je 0x1004c974
mov edx, dword [esp + 0x20]
xor ebx, ebx
mov esi, ecx
mov eax, dword [edx + eax]
jmp 0x1004c8b0
mov esi, ecx
sub ecx, ebx
jbe 0x1004c974
shr ecx, 1
xor edx, edx
add ecx, ebx
mov edi, ecx
shl edi, 4
cmp dword [eax + edi + 0xc], 0xe9b7ea0f
mov edi, 0xff
setne dl
cmovb edx, edi
cmp dl, 1
je 0x1004c8a6
movzx edx, dl
cmp edx, 0xff
jne 0x1004c8ec
inc ecx
mov ebx, ecx
mov ecx, esi
sub ecx, ebx
ja 0x1004c8b0
jmp 0x1004c974
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x507d8ed
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0xe5d4cb4f
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xe543
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1004c974
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
mov eax, dword [esp + 0x70]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
dec dword [eax]
mov edx, esi
lea ecx, [esp + 0x190]
push edi
call fcn.100693f0
add esp, 4
lea esi, [0x507d8f2]
lea edx, [0x507d8f3]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
mov dword [esp + 0x70], 0
nop word cs:[eax + eax]
nop dword [eax]
movzx ebx, byte [esi]
mov esi, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x1004c9e5
or bl, 0x20
mov edx, ebx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add bl, 0xa9
mov edx, ebx
mov ebx, dword [esp + 0x20]
movzx ecx, dl
lea edx, [esi + 1]
mov edi, ebx
shl edi, 4
or ecx, edi
test eax, eax
cmove edx, esi
je 0x1004ca0c
shld dword [esp + 0x70], ebx, 4
inc eax
test esi, esi
mov dword [esp + 0x20], ecx
jne 0x1004c9c0
mov eax, dword [esp + 0x190]
test eax, eax
je 0x1004ca89
movsd xmm0, qword [esp + 0x194]
mov esi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
xor ecx, 0x15
mov dword [esp + 0xb0], ecx
lea ecx, [esp + 0x80]
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x98], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x9c], esi
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
je 0x1004caaf
lea ecx, [esp + 0x98]
call fcn.10004080
xor eax, eax
jmp 0x1004cac5
mov eax, dword [esp + 0x198]
mov edi, dword [esp + 0x194]
mov dword [esp + 0xb0], eax
mov esi, dword [edi + 0x10]
cmp esi, 1
jne 0x1004cb50
jmp 0x1004ce47
movdqa xmm0, xmmword [esp + 0x20]
mov eax, dword [esp + 0x84]
movd ecx, xmm0
mov dword [eax], ecx
mov dword [eax + 4], esi
movq xmm0, qword [esp]
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0xb0]
movd edx, xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], ecx
test edx, edx
je 0x1004cb3b
mov ecx, dword [esp + 0x3c]
movq xmm0, qword [esp + 0x44]
mov dword [esp + 0x190], edx
mov edx, 0x508414e
mov ecx, dword [ecx + 0x10]
movq qword [esp + 0x194], xmm0
mov dword [esp + 0x19c], eax
lea eax, [esp + 0x190]
push eax
push 6
call fcn.1005cbb0
add esp, 8
mov eax, dword [edi]
movzx ecx, word [eax + 0x126]
cmp ecx, 0x2022
je 0x1004ce68
jmp 0x1004e06d
pshufd xmm0, xmm0, 0x55
movd edi, xmm0
mov esi, dword [edi + 0x10]
cmp esi, 1
je 0x1004ce47
mov ecx, 0x50828d0
mov edx, 8
call 0x1006d230
test esi, esi
mov dword [esp + 0x20], eax
je 0x1004ce47
mov eax, dword [edi + 0xc]
xor ebx, ebx
mov dword [esp + 0x60], esi
mov dword [esp + 0x70], eax
jmp 0x1004cb8c
mov dword [esp + 0x60], esi
sub esi, ebx
jbe 0x1004ce47
shr esi, 1
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x20]
xor edx, edx
add esi, ebx
mov edi, esi
shl edi, 4
cmp dword [eax + edi + 0xc], ecx
mov eax, 0xff
setne dl
cmovb edx, eax
cmp dl, 1
je 0x1004cb80
movzx ecx, dl
cmp ecx, 0xff
jne 0x1004cbce
inc esi
mov ebx, esi
mov esi, dword [esp + 0x60]
sub esi, ebx
ja 0x1004cb8c
jmp 0x1004ce47
mov eax, dword [esp + 0x70]
mov eax, dword [eax + edi + 4]
cmp eax, 9
mov dword [esp + 0xc0], eax
ja 0x1004ce47
mov ecx, 0x5082734
mov edx, 0xc
call 0x1006d230
cmp dword [esp + 0xc0], 0
mov dword [esp + 0x60], eax
je 0x1004ce47
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0xc0]
xor ebx, ebx
add eax, edi
mov edi, dword [esp + 0x60]
mov edx, ecx
mov dword [esp + 0x70], ecx
mov eax, dword [eax]
mov dword [esp + 0x20], eax
jmp 0x1004cc34
mov dword [esp + 0x70], edx
sub edx, ebx
jbe 0x1004ce47
shr edx, 1
mov eax, dword [esp + 0x20]
xor ecx, ecx
add edx, ebx
mov esi, edx
shl esi, 4
cmp dword [eax + esi + 0xc], edi
mov eax, 0xff
setne cl
cmovb ecx, eax
cmp cl, 1
je 0x1004cc28
movzx ecx, cl
cmp ecx, 0xff
jne 0x1004cc72
inc edx
mov ebx, edx
mov edx, dword [esp + 0x70]
sub edx, ebx
ja 0x1004cc34
jmp 0x1004ce47
mov ecx, 0x507d8fa
mov edx, 8
call 0x1006d230
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x70], eax
xor ebx, ebx
mov edi, dword [esp + 0x70]
mov edx, ecx
mov dword [esp + 0x60], ecx
jmp 0x1004cca6
mov dword [esp + 0x60], edx
sub edx, ebx
jbe 0x1004ce47
shr edx, 1
mov eax, dword [esp + 0x20]
xor ecx, ecx
add edx, ebx
mov esi, edx
shl esi, 4
cmp dword [eax + esi + 0xc], edi
mov eax, 0xff
setne cl
cmovb ecx, eax
cmp cl, 1
je 0x1004cc9a
movzx ecx, cl
cmp ecx, 0xff
jne 0x1004cce4
inc edx
mov ebx, edx
mov edx, dword [esp + 0x60]
sub edx, ebx
ja 0x1004cca6
jmp 0x1004ce47
mov ecx, 0x507d902
mov edx, 0xd
call 0x1006d230
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0xc0]
push eax
call fcn.100632d0
add esp, 4
test eax, eax
jne 0x1004ce47
mov ecx, 0x507d90f
mov edx, 0xc
call 0x1006d230
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0xc0]
push eax
call fcn.100632d0
add esp, 4
test eax, eax
jne 0x1004ce47
mov ecx, 0x507d91b
mov edx, 0xc
call 0x1006d230
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0xc0]
push eax
call fcn.100632d0
add esp, 4
test eax, eax
jne 0x1004ce47
mov ecx, 0x507d927
mov edx, 0xe
call 0x1006d230
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0xc0]
push eax
call fcn.100632d0
add esp, 4
test eax, eax
jne 0x1004ce47
mov ecx, 0x507d935
mov edx, 5
call 0x1006d230
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0xc0]
push eax
call fcn.100632d0
add esp, 4
test eax, eax
jne 0x1004ce47
mov ecx, 0x5083a11
mov edx, 0xc
call 0x1006d230
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0xc0]
push eax
call fcn.100632d0
add esp, 4
test eax, eax
jne 0x1004ce47
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
lea edx, [esp + 0x190]
push 4
push 0x507d93a
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0x8f1ee398
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xe543
call fcn.1003b900
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.10028ce0
mov eax, dword [esp + 0xb0]
mov edi, dword [ebp + 8]
dec dword [eax]
mov eax, dword [edi]
movzx ecx, word [eax + 0x126]
cmp ecx, 0x2022
jne 0x1004e06d
movzx ecx, word [eax + 0xf8]
cmp ecx, 0x20b
jne 0x1004e06d
mov ecx, dword [eax + 0x18]
or ecx, dword [eax + 0x1c]
jne 0x1004e06d
mov esi, dword [eax + 0xcc]
test esi, esi
je 0x1004e06d
mov edi, dword [ebp + 0xc]
mov ebx, dword [eax + 0xc]
add esi, dword [eax + 8]
lea ecx, [esp + 0x190]
mov edx, edi
adc ebx, 0
push 0xa
push 0x5080b55
mov dword [esp + 0x68], ebx
push ebx
push esi
call fcn.10064d30
add esp, 0x10
lea ecx, [0x5080b4d]
lea edx, [0x5080b4e]
mov eax, 0xfffffff9
movzx ebx, byte [ecx]
mov ecx, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x1004ceee
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1005c879
lea edx, [ecx + 1]
test eax, eax
cmove edx, ecx
je 0x1004cefd
inc eax
test ecx, ecx
jne 0x1004ced0
mov eax, dword [esp + 0x190]
test eax, eax
je 0x1004cf6c
movsd xmm0, qword [esp + 0x194]
mov ebx, esi
mov esi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
lea ecx, [esp + 0x40]
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x80], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], esi
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004cf76
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x1004cf8b
movzx eax, byte [esp + 0x194]
jmp 0x1004cf9b
movdqa xmm0, xmmword [esp + 0x20]
mov ecx, dword [esp + 0x44]
movd eax, xmm0
mov dword [ecx], eax
mov eax, ecx
mov dword [ecx + 4], esi
cmp dword [esp], 0
mov esi, ebx
jne 0x1004d1a1
mov eax, dword [esp + 4]
test al, al
je 0x1004d1c3
mov ebx, dword [esp + 0x60]
mov eax, esi
xor edx, edx
movd xmm0, esi
mov byte [esp + 0x1a0], 2
mov dword [esp + 0x70], esi
xor eax, 0xffffffc0
mov ecx, ebx
movd xmm1, ebx
not ecx
punpckldq xmm0, xmm1
or ecx, eax
pshufd xmm1, xmm0, 0x44
sete dl
paddq xmm1, xmmword [0x507d5b0]
movd xmm0, edx
pshufd xmm0, xmm0, 0x44
psllq xmm0, 0x3f
psrad xmm0, 0x1f
pshufd xmm0, xmm0, 0xf5
movdqa xmm2, xmm0
pand xmm0, xmmword [0x507d5c0]
pandn xmm2, xmm1
por xmm0, xmm2
pshufd xmm2, xmm0, 0xee
pshufd xmm1, xmm0, 0x55
movd eax, xmm0
movdqu xmmword [esp], xmm0
mov byte [esp + 0x10], 0
movd ecx, xmm2
cmp ecx, eax
movd eax, xmm1
pshufd xmm1, xmm0, 0xff
movd ecx, xmm1
sbb ecx, eax
mov eax, esp
lea ecx, [esp + 0x190]
cmovb eax, ecx
mov ecx, dword [eax + 0x11]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [eax + 0x14]
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe3], eax
movsd qword [esp + 0x98], xmm0
movsd qword [esp + 0xa0], xmm1
jb 0x1004dffc
movsd xmm0, qword [esp + 0x98]
movq xmm1, qword [esp + 0xa0]
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe3]
lea edx, [esp + 0x190]
movq qword [esp + 0x198], xmm1
movsd qword [esp + 0x190], xmm0
mov byte [esp + 0x1a0], 0
mov dword [esp + 0x1a1], eax
mov dword [esp + 0x1a4], ecx
lea ecx, [esp + 0x40]
push edi
push 6
push 0x5084be8
call fcn.1002baf0
add esp, 0xc
xor edi, edi
lea esi, [0x5080b4d]
lea edx, [0x5080b4e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop
movzx ebx, byte [esi]
mov esi, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x1004d125
or bl, 0x20
mov edx, ebx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add bl, 0xa9
mov edx, ebx
mov ecx, edi
movzx ebx, dl
lea edx, [esi + 1]
shl ecx, 4
or ebx, ecx
test eax, eax
cmove edx, esi
je 0x1004d146
shld dword [esp + 0x20], edi, 4
inc eax
test esi, esi
mov edi, ebx
jne 0x1004d100
cmp dword [esp + 0x40], 0
je 0x1004d58b
movsd xmm0, qword [esp + 0x44]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
xor ebx, 0x80
lea edx, [esp + 0x190]
movsd qword [esp + 0x190], xmm0
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], ecx
lea ecx, [esp + 0x84]
push ebx
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 0x90]
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0x70]
test eax, eax
je 0x1004d1c3
mov ecx, eax
mov ebx, eax
call fcn.10004080
mov eax, dword [0x5087000]
push 4
push 8
push ebx
push 0x5086800
call dword [eax + 0x10]
add esp, 0x10
mov eax, dword [esp + 0x60]
mov edx, edi
mov word [esp + 0xf0], 0x24
lea ecx, [esp + 0x190]
push 3
push 0x5084a64
mov dword [esp + 0x28], eax
push eax
mov dword [esp + 0x7c], esi
push esi
call fcn.10064d30
add esp, 0x10
xor esi, esi
lea edi, [0x5080b4d]
lea edx, [0x5080b4e]
mov eax, 0xfffffff9
xor ebx, ebx
nop dword [eax + eax]
movzx ecx, byte [edi]
mov edi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x1004d235
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, esi
movzx edx, dl
shl ecx, 4
or edx, ecx
test eax, eax
mov ecx, edx
lea edx, [edi + 1]
cmove edx, edi
je 0x1004d256
shld ebx, esi, 4
inc eax
test edi, edi
mov esi, ecx
jne 0x1004d210
mov eax, dword [esp + 0x190]
test eax, eax
je 0x1004d2c9
movsd xmm0, qword [esp + 0x194]
mov edi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
mov ebx, ecx
lea ecx, [esp + 0x40]
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x80], xmm0
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x84], edi
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
mov esi, dword [esp + 0x70]
je 0x1004d2da
lea ecx, [esp + 0x80]
call fcn.10004080
xor edx, edx
jmp 0x1004d2ed
movzx ecx, byte [esp + 0x194]
mov esi, dword [esp + 0x70]
jmp 0x1004d3a6
movdqa xmm0, xmmword [esp + 0x60]
mov edx, dword [esp + 0x44]
movd eax, xmm0
mov dword [edx], eax
mov dword [edx + 4], edi
mov eax, dword [esp]
mov ecx, dword [esp + 4]
test eax, eax
mov dword [esp + 0x60], eax
je 0x1004d3a6
xor ebx, 0xa7
mov dword [esp + 0x70], ecx
shr ecx, 0x10
mov dword [esp + 0xc0], edx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0x100], ecx
xor edi, edi
lea ecx, [0x5080b4d]
lea edx, [0x5080b4e]
mov eax, 0xfffffff9
xor ebx, ebx
nop word [eax + eax]
mov esi, ecx
movzx ecx, byte [ecx]
mov dword [esp + 0x20], edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x1004d369
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, edi
movzx esi, dl
shl ecx, 4
or esi, ecx
mov ecx, dword [esp + 0x20]
test eax, eax
lea edx, [ecx + 1]
cmove edx, ecx
je 0x1004d38c
shld ebx, edi, 4
inc eax
test ecx, ecx
mov edi, esi
jne 0x1004d340
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x100]
xor esi, 0xe8
jmp 0x1004d702
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x20]
test cl, cl
je 0x1004e05e
mov edi, esi
mov edx, esi
mov esi, ebx
mov ecx, ebx
mov byte [esp + 0x1a0], 2
mov dword [esp + 0x20], 0
mov eax, edi
xor edx, 0xffffffc0
not esi
add eax, 0x3f
adc ecx, 0
or esi, edx
mov esi, 0
mov edx, 1
cmovne edx, edi
cmove ecx, esi
cmove eax, esi
cmove ebx, esi
cmp eax, edx
mov esi, ecx
mov dword [esp + 4], ebx
mov dword [esp], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov eax, esp
lea ecx, [esp + 0x190]
mov byte [esp + 0x10], 0
sbb esi, ebx
cmovb eax, ecx
mov ecx, dword [eax + 0x11]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [eax + 0x14]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd7], eax
movsd qword [esp + 0x98], xmm0
movsd qword [esp + 0xa0], xmm1
jb 0x1004dffc
movsd xmm0, qword [esp + 0x98]
movq xmm1, qword [esp + 0xa0]
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd7]
lea edx, [esp + 0x190]
movq qword [esp + 0x198], xmm1
movsd qword [esp + 0x190], xmm0
mov byte [esp + 0x1a0], 0
mov dword [esp + 0x1a1], eax
mov dword [esp + 0x1a4], ecx
lea ecx, [esp + 0x40]
push dword [ebp + 0xc]
push 3
push 0x5080b6b
call fcn.1002baf0
add esp, 0xc
lea esi, [0x5080b4d]
lea ebx, [0x5080b4e]
mov eax, 0xfffffff9
xor edx, edx
nop word cs:[eax + eax]
nop
movzx ecx, byte [esi]
mov esi, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x1004d4f5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov ebx, edx
movzx edi, ch
shl ebx, 4
or edi, ebx
lea ebx, [esi + 1]
test eax, eax
cmove ebx, esi
je 0x1004d516
shld dword [esp + 0x20], edx, 4
inc eax
test esi, esi
mov edx, edi
jne 0x1004d4d0
cmp dword [esp + 0x40], 0
je 0x1004d621
movsd xmm0, qword [esp + 0x44]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
xor edi, 0xad
lea edx, [esp + 0x190]
movsd qword [esp + 0x190], xmm0
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], ecx
lea ecx, [esp + 0x84]
push edi
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x88]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x90]
jmp 0x1004d6d7
mov eax, dword [esp + 0x48]
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0x70]
or eax, dword [esp + 0x4c]
je 0x1004d1c3
mov edx, dword [esp + 0x50]
mov ecx, esp
push dword [edi + 8]
push dword [edi + 4]
push dword [edi]
push dword [esp + 0x60]
call fcn.1002c0f0
add esp, 0x10
mov ecx, 0x5080b4c
mov edx, 0x84
call fcn.10007f70
mov ecx, dword [esp]
test ecx, ecx
je 0x1004d898
mov edx, dword [esp + 0xc]
movsd xmm0, qword [esp + 4]
mov dword [esp + 0x190], ecx
lea ecx, [esp + 0x40]
movsd qword [esp + 0x194], xmm0
mov dword [esp + 0x19c], edx
lea edx, [esp + 0x190]
push eax
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 0x4c]
cmp dword [esp + 0x40], 0
jne 0x1004d1a1
mov ebx, dword [esp + 0x48]
jmp 0x1004d8a0
mov eax, dword [esp + 0x48]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x4c]
je 0x1004e05e
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
lea edi, [esp + 0x190]
mov ecx, edi
mov esi, edx
mov ebx, eax
add esi, 0x20
adc ebx, 0
push ebx
push esi
push eax
call fcn.100461a0
add esp, 0xc
mov ecx, esp
mov edx, edi
push dword [ebp + 0xc]
push 3
push 0x50823e8
call fcn.1002baf0
add esp, 0xc
mov ecx, 0x5080b4c
mov edx, 0xb8
call fcn.10007f70
cmp dword [esp], 0
je 0x1004d8f2
movsd xmm0, qword [esp + 4]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movsd qword [esp + 0x190], xmm0
mov dword [esp + 0x198], ecx
mov dword [esp + 0x19c], edx
lea ecx, [esp + 0x44]
lea edx, [esp + 0x190]
push eax
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x50]
mov ecx, 0x5080b4c
mov edx, 0xe8
mov dword [esp + 0x70], ebx
mov dword [esp + 0xc0], eax
shr ebx, 0x10
call fcn.10007f70
test edi, edi
je 0x1004d7f8
mov ecx, dword [esp + 0x70]
mov esi, eax
movzx eax, ch
mov dword [esp + 0x70], ecx
movzx ecx, cl
shl ebx, 0x10
mov dword [esp + 0x60], edi
movd xmm1, edi
mov edi, dword [esp + 0xb0]
shl eax, 8
or ecx, eax
mov eax, dword [0x5087000]
or ebx, ecx
movd xmm0, ebx
mov ebx, dword [esp + 0xc0]
mov dword [esp], edi
punpckldq xmm1, xmm0
movdqa xmmword [esp + 0x20], xmm1
mov dword [esp + 4], ebx
push 4
push 8
push 0x5086800
lea ecx, [esp + 0x19c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x190], 0
je 0x1004d772
mov ecx, esp
call fcn.10004080
xor eax, eax
jmp 0x1004d77e
mov eax, dword [esp + 0x194]
mov dword [eax], edi
mov dword [eax + 4], ebx
mov edx, dword [esp + 0x60]
movaps xmm0, xmmword [esp + 0x20]
test edx, edx
movlps qword [esp + 0xe0], xmm0
je 0x1004d7f8
movzx ecx, word [esp + 0xe5]
mov word [esp + 0x195], cx
movzx ecx, byte [esp + 0xe7]
mov byte [esp + 0x197], cl
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x190], edx
mov edx, 0x5084154
mov byte [esp + 0x194], cl
mov dword [esp + 0x198], esi
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 6
call fcn.1005cbb0
add esp, 8
mov edi, dword [ebp + 8]
jmp 0x1004e06d
mov eax, dword [esp + 0x70]
mov edi, dword [ebp + 8]
test al, al
je 0x1004e06d
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x5080b84
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0xafee5d80
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xe543
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1004e06d
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x1004e06d
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x190]
mov edx, edi
push 3
push 0x5080b5f
push eax
push ebx
call fcn.10064d30
add esp, 0x10
mov ecx, 0x5080b4c
mov edx, 0x86
call fcn.10007f70
mov ecx, esp
lea edx, [esp + 0x190]
push eax
call fcn.1002c280
add esp, 4
cmp dword [esp], 0
je 0x1004d98a
mov eax, dword [esp + 0xc]
jmp 0x1004d1a1
mov eax, dword [esp + 8]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0xc]
je 0x1004e05e
mov eax, dword [ebp + 0xc]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
lea edi, [esp + 0x190]
mov ecx, edi
mov edx, dword [eax]
push 1
push ebx
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10034550
add esp, 0x14
mov ecx, 0x5080b4c
mov edx, 0xbd
call fcn.10007f70
mov ecx, esp
mov edx, edi
push eax
call fcn.1002c330
add esp, 4
mov eax, dword [esp]
test eax, eax
mov dword [esp + 0x60], eax
je 0x1004da20
movzx eax, byte [esp + 4]
mov ah, byte [esp + 5]
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x70], eax
movzx eax, word [esp + 6]
mov dword [esp + 0xb0], edx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x100], eax
jmp 0x1004d322
mov eax, dword [esp + 0x20]
cmp byte [esp + 4], 0
je 0x1004d1c3
mov edx, ebx
mov ecx, eax
add edx, 0x90
adc ecx, 0
add ebx, 0xb0
adc eax, 0
mov dword [esp + 0xb0], ecx
lea ecx, [esp + 0x190]
push eax
push ebx
push dword [esp + 0xb8]
call fcn.100461a0
add esp, 0xc
mov eax, edi
mov edi, esp
lea edx, [esp + 0x190]
mov ecx, edi
push eax
push 9
push 0x5080b62
call fcn.1002baf0
add esp, 0xc
mov ecx, 0x5080b4c
mov edx, 0x8d
call fcn.10007f70
lea ecx, [esp + 0x40]
mov edx, edi
push eax
call fcn.1002ba60
add esp, 4
cmp dword [esp + 0x40], 0
je 0x1004db57
mov eax, dword [esp + 0x50]
mov edi, dword [ebp + 0xc]
jmp 0x1004d1a1
movzx eax, byte [esp + 4]
mov edx, esi
lea edi, [esp + 0x190]
add edx, 5
mov ecx, edi
mov byte [esp + 0xf1], al
mov eax, ebx
adc eax, 0
add esi, 0x25
adc ebx, 0
push ebx
push esi
push eax
call fcn.100461a0
add esp, 0xc
lea eax, [esp + 0xf0]
mov ecx, esp
mov edx, edi
push dword [ebp + 0xc]
push 2
push eax
call fcn.1002baf0
add esp, 0xc
mov ecx, 0x5080b4c
mov edx, 0xc2
call fcn.10007f70
cmp dword [esp], 0
jne 0x1004d687
mov eax, dword [esp + 8]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0xc]
je 0x1004e05e
mov esi, dword [ebp + 0xc]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ecx, esp
mov edx, dword [esi]
mov dword [esp + 0x20], eax
add eax, 0xfffffffc
mov edi, ebx
adc ebx, 0xffffffff
push ebx
push eax
push dword [esi + 8]
push dword [esi + 4]
call fcn.10033aa0
add esp, 0x10
mov ecx, 0x5080b4c
mov edx, 0xc7
call fcn.10007f70
mov ecx, dword [esp]
test ecx, ecx
je 0x1004dc17
mov edx, dword [esp + 0xc]
movsd xmm0, qword [esp + 4]
mov dword [esp + 0x190], ecx
lea ecx, [esp + 0x40]
movsd qword [esp + 0x194], xmm0
mov dword [esp + 0x19c], edx
lea edx, [esp + 0x190]
push eax
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 0x40]
test eax, eax
mov dword [esp + 0x60], eax
je 0x1004dc1e
mov eax, dword [esp + 0x48]
movzx esi, word [esp + 0x44]
movzx ebx, word [esp + 0x46]
mov ecx, 0x5080b4c
mov edx, 0xe8
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc0], eax
call fcn.10007f70
mov edi, dword [esp + 0x60]
mov ecx, esi
jmp 0x1004d700
mov eax, dword [esp + 0x48]
or eax, dword [esp + 0x4c]
je 0x1004dbbe
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0x190]
mov eax, edi
mov esi, ebx
add eax, 4
adc esi, 0
push 9
push 0x5080b62
push esi
push eax
call fcn.10064d30
add esp, 0x10
mov ecx, 0x5080b4c
mov edx, 0x94
call fcn.10007f70
mov ecx, esp
lea edx, [esp + 0x190]
push eax
call fcn.1002c280
add esp, 4
cmp dword [esp], 0
je 0x1004dbca
mov eax, dword [esp + 0xc]
jmp 0x1004d19a
mov eax, dword [esp + 0x60]
mov edi, dword [ebp + 0xc]
jmp 0x1004d1c7
cmp byte [esp + 4], 0
je 0x1004dd59
mov edx, edi
mov edi, dword [ebp + 0xc]
lea ecx, [esp + 0x190]
push dword [edi + 8]
push dword [edi + 4]
push dword [edi]
push ebx
call fcn.1002c0f0
add esp, 0x10
mov eax, dword [esp + 0x19c]
cmp dword [esp + 0x190], 0
mov esi, dword [esp + 0x70]
jne 0x1004d1a1
mov esi, dword [esp + 0x198]
jmp 0x1004d1c7
movzx eax, word [esp + 4]
jmp 0x1004dc23
movzx eax, word [esp + 0x44]
movzx eax, ax
mov cl, 1
cmp eax, 0x64c0
mov dword [esp + 0x70], ecx
jg 0x1004dc4a
cmp eax, 0x446b
je 0x1004dc67
cmp eax, 0x4481
je 0x1004dc67
cmp eax, 0x4c81
je 0x1004dc67
jmp 0x1004dc5f
cmp eax, 0x64c1
je 0x1004dc67
cmp eax, 0x6cc1
je 0x1004dc67
cmp eax, 0x7481
je 0x1004dc67
mov dword [esp + 0x70], 0
mov edx, dword [esp + 0x20]
mov esi, edi
lea ebx, [esp + 0x190]
mov ecx, ebx
mov eax, edx
add eax, 0x20
adc esi, 0
push esi
push eax
push edi
call fcn.100461a0
add esp, 0xc
mov ecx, esp
mov edx, ebx
push dword [ebp + 0xc]
push 2
lea eax, [esp + 0xf8]
push eax
call fcn.1002baf0
add esp, 0xc
mov ecx, 0x5080b4c
mov edx, 0xc2
call fcn.10007f70
cmp dword [esp], 0
jne 0x1004d687
mov eax, dword [esp + 8]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0xc]
je 0x1004e05e
mov edi, dword [esp + 0x10]
mov esi, dword [ebp + 0xc]
mov ebx, dword [esp + 0x14]
mov ecx, esp
mov eax, edi
mov edx, dword [esi]
mov dword [esp + 0x20], ebx
add eax, 0xfffffffc
adc ebx, 0xffffffff
push ebx
push eax
push dword [esi + 8]
push dword [esi + 4]
call fcn.10033aa0
add esp, 0x10
mov ecx, 0x5080b4c
mov edx, 0xc7
call fcn.10007f70
mov ecx, dword [esp]
test ecx, ecx
je 0x1004dd69
mov edx, dword [esp + 0xc]
movsd xmm0, qword [esp + 4]
mov dword [esp + 0x190], ecx
lea ecx, [esp + 0x40]
movsd qword [esp + 0x194], xmm0
mov dword [esp + 0x19c], edx
lea edx, [esp + 0x190]
push eax
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 0x40]
test eax, eax
mov dword [esp + 0x60], eax
jne 0x1004db1d
movzx eax, word [esp + 0x44]
jmp 0x1004dd6e
mov eax, dword [esp + 0x60]
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0x70]
jmp 0x1004d1c7
movzx eax, word [esp + 4]
movzx eax, ax
cmp eax, 0x64c0
jg 0x1004dd8f
cmp eax, 0x446b
je 0x1004dda4
cmp eax, 0x4481
je 0x1004dda4
cmp eax, 0x4c81
je 0x1004dda4
jmp 0x1004ddc8
cmp eax, 0x64c1
je 0x1004dda4
cmp eax, 0x7481
je 0x1004dda4
cmp eax, 0x6cc1
jne 0x1004ddc8
cmp byte [esp + 0x70], 0
mov al, 1
mov dword [esp + 0x70], eax
je 0x1004ddc8
mov ecx, 0x5080b4c
mov edx, 0xe8
call fcn.10007f70
mov edi, dword [ebp + 8]
jmp 0x1004d807
mov ebx, dword [esp + 0x20]
mov eax, edi
lea ecx, [esp + 0x190]
mov edx, edi
add eax, 0x20
mov esi, ebx
adc esi, 0
push esi
push eax
push ebx
call fcn.100461a0
add esp, 0xc
mov ecx, esp
lea edx, [esp + 0x190]
push dword [ebp + 0xc]
push 2
lea eax, [esp + 0xf8]
push eax
call fcn.1002baf0
add esp, 0xc
mov ecx, 0x5080b4c
mov edx, 0xc2
call fcn.10007f70
cmp dword [esp], 0
jne 0x1004d687
mov eax, dword [esp + 8]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0xc]
je 0x1004e05e
mov edi, dword [esp + 0x10]
mov esi, dword [ebp + 0xc]
mov ebx, dword [esp + 0x14]
mov ecx, esp
mov eax, edi
mov edx, dword [esi]
mov dword [esp + 0x20], ebx
add eax, 0xfffffffc
adc ebx, 0xffffffff
push ebx
push eax
push dword [esi + 8]
push dword [esi + 4]
call fcn.10033aa0
add esp, 0x10
mov ecx, 0x5080b4c
mov edx, 0xc7
call fcn.10007f70
mov ecx, dword [esp]
test ecx, ecx
je 0x1004debf
mov edx, dword [esp + 0xc]
movsd xmm0, qword [esp + 4]
mov dword [esp + 0x190], ecx
lea ecx, [esp + 0x40]
movsd qword [esp + 0x194], xmm0
mov dword [esp + 0x19c], edx
lea edx, [esp + 0x190]
push eax
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 0x40]
test eax, eax
mov dword [esp + 0x60], eax
jne 0x1004db1d
movzx eax, word [esp + 0x44]
jmp 0x1004dec4
movzx eax, word [esp + 4]
movzx eax, ax
cmp eax, 0x64c0
jg 0x1004dee5
cmp eax, 0x446b
je 0x1004defa
cmp eax, 0x4481
je 0x1004defa
cmp eax, 0x4c81
je 0x1004defa
jmp 0x1004df0b
cmp eax, 0x64c1
je 0x1004defa
cmp eax, 0x7481
je 0x1004defa
cmp eax, 0x6cc1
jne 0x1004df0b
cmp byte [esp + 0x70], 0
mov al, 1
mov dword [esp + 0x70], eax
jne 0x1004ddb1
mov ebx, dword [esp + 0x20]
mov eax, edi
lea ecx, [esp + 0x190]
mov edx, edi
add eax, 0x20
mov esi, ebx
adc esi, 0
push esi
push eax
push ebx
call fcn.100461a0
add esp, 0xc
mov ecx, esp
lea edx, [esp + 0x190]
push dword [ebp + 0xc]
push 2
lea eax, [esp + 0xf8]
push eax
call fcn.1002baf0
add esp, 0xc
mov ecx, 0x5080b4c
mov edx, 0xc2
call fcn.10007f70
cmp dword [esp], 0
jne 0x1004d687
mov eax, dword [esp + 8]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0xc]
je 0x1004e05e
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, esp
mov edx, dword [edi]
add esi, 0xfffffffc
adc eax, 0xffffffff
push eax
push esi
push dword [edi + 8]
push dword [edi + 4]
call fcn.10033aa0
add esp, 0x10
mov ecx, 0x5080b4c
mov edx, 0xc7
call fcn.10007f70
mov ecx, dword [esp]
test ecx, ecx
je 0x1004e015
mov edx, dword [esp + 0xc]
movsd xmm0, qword [esp + 4]
mov dword [esp + 0x190], ecx
lea ecx, [esp + 0x40]
movsd qword [esp + 0x194], xmm0
mov dword [esp + 0x19c], edx
lea edx, [esp + 0x190]
push eax
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 0x40]
test eax, eax
mov dword [esp + 0x60], eax
jne 0x1004db1d
movzx eax, word [esp + 0x44]
jmp 0x1004e01a
mov ecx, 0x50869e4
mov edx, 0x2b
push 0x5083e84
call fcn.100053c0
add esp, 4
ud2
movzx eax, word [esp + 4]
movzx eax, ax
cmp eax, 0x64c0
jg 0x1004e03b
cmp eax, 0x446b
je 0x1004e050
cmp eax, 0x4481
je 0x1004e050
cmp eax, 0x4c81
je 0x1004e050
jmp 0x1004e05b
cmp eax, 0x64c1
je 0x1004e050
cmp eax, 0x7481
je 0x1004e050
cmp eax, 0x6cc1
jne 0x1004e05b
cmp byte [esp + 0x70], 0
jne 0x1004ddb1
mov edi, dword [ebp + 8]
mov ecx, 0x5080b4c
mov edx, 0xe8
call fcn.10007f70
mov eax, dword [edi]
mov ecx, dword [eax + 0x18]
or ecx, dword [eax + 0x1c]
jne 0x1004e32c
movzx ecx, word [eax + 0xf8]
cmp ecx, 0x20b
jne 0x1004e32c
movzx eax, word [eax + 0x126]
not eax
test eax, 0x2022
jne 0x1004e32c
lea edx, [esp + 0x140]
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
push edi
call fcn.10002580
add esp, 8
xor ebx, ebx
lea esi, [0x5080b4d]
lea edx, [0x5080b4e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word [eax + eax]
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x1004e105
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x1004e126
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x1004e0e0
cmp dword [esp + 0x190], 0
je 0x1004e197
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x128
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004e2d0
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x1004e2d9
movq xmm0, qword [esp + 0x198]
movq xmm1, qword [esp + 0x1a0]
mov edi, dword [ebp + 8]
movq qword [esp + 0xc], xmm1
movq qword [esp + 4], xmm0
cmp dword [esp + 4], 1
jne 0x1004e32c
cmp dword [esp + 8], 0x7dd
jne 0x1004e32c
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0x80]
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x190]
push 0xb
push 0x5080bf4
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ecx, ecx
lea edx, [0x5080b4d]
lea esi, [0x5080b4e]
mov eax, 0xfffffff9
xor edi, edi
nop dword [eax + eax]
movzx ebx, byte [edx]
mov edx, esi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x1004e245
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005c879
add bl, 0xa9
mov bh, bl
mov esi, ecx
movzx ebx, bh
shl esi, 4
or ebx, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x1004e264
shld edi, ecx, 4
inc eax
test edx, edx
mov ecx, ebx
jne 0x1004e220
cmp dword [esp + 0x190], 0
je 0x10050109
movq xmm0, qword [esp + 0x194]
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x1a0]
xor ebx, 0x13c
lea edx, [esp + 0x40]
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 4]
push ebx
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x4c], esi
jmp 0x1004e2f8
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm0, xmmword [esp + 0x20]
movlps qword [esp], xmm0
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
movdqu xmm0, xmmword [esp]
mov eax, dword [esp]
movdqa xmmword [esp + 0x40], xmm0
mov edi, dword [ebp + 8]
test eax, eax
je 0x1004e32c
mov eax, dword [esp + 0x3c]
movdqa xmm0, xmmword [esp + 0x40]
mov edx, 0x508415a
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
movdqu xmmword [esp + 0x190], xmm0
push eax
push 8
call fcn.1005cbb0
add esp, 8
mov ecx, dword [edi]
lea edx, [esp + 0x80]
mov eax, dword [ecx + 8]
mov esi, dword [ecx + 0xc]
add eax, dword [ecx + 0xcc]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x80], ecx
adc esi, 0
lea ecx, [esp + 0x190]
push 8
push 0x50832d8
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
mov eax, dword [esp + 0x190]
test eax, eax
jne 0x1004e3fe
cmp dword [esp + 0x198], 1
jne 0x1004e3fe
mov edx, esp
mov dword [esp], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
lea ecx, [esp + 0x40]
push 4
push 0x5083378
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
mov edx, 0x82e3ee5a
mov ecx, dword [eax + 0x10]
push dword [esp + 0x44]
push esi
push 0xe543
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 0x48]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1004e429
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
jmp 0x1004e426
test eax, eax
je 0x1004e429
mov esi, dword [esp + 0x1a0]
test esi, esi
je 0x1004e429
mov ecx, esi
call fcn.10004080
mov eax, dword [0x5087000]
push 4
push 8
push esi
push 0x5086800
call dword [eax + 0x10]
add esp, 0x10
mov eax, dword [edi]
test byte [eax + 0x127], 0x20
je 0x1004ed97
movzx ecx, word [eax + 0xf8]
cmp ecx, 0x20b
jne 0x1004ed97
mov ecx, dword [eax + 0x18]
or ecx, dword [eax + 0x1c]
je 0x1004ed97
lea ecx, [esp + 0x190]
mov edx, edi
push dword [ebp + 0xc]
call fcn.10068470
add esp, 4
xor ecx, ecx
lea edx, [0x508125d]
lea edi, [0x508125e]
mov eax, 0xfffffff9
xor esi, esi
movzx ebx, byte [edx]
mov edx, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x1004e4a5
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005c879
add bl, 0xa9
mov bh, bl
mov edi, ecx
movzx ebx, bh
shl edi, 4
or ebx, edi
lea edi, [edx + 1]
test eax, eax
cmove edi, edx
je 0x1004e4c4
shld esi, ecx, 4
inc eax
test edx, edx
mov ecx, ebx
jne 0x1004e480
mov eax, dword [esp + 0x190]
test eax, eax
je 0x1004e53d
movsd xmm0, qword [esp + 0x194]
mov esi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
xor ebx, 0x41
lea ecx, [esp + 0x98]
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0xe0], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0xe4], esi
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x98], 0
mov edi, dword [ebp + 8]
je 0x1004e550
lea ecx, [esp + 0xe0]
call fcn.10004080
xor eax, eax
jmp 0x1004e566
mov eax, dword [esp + 0x194]
mov ebx, dword [esp + 0x198]
mov edi, dword [ebp + 8]
jmp 0x1004e5c6
movdqa xmm0, xmmword [esp + 0x20]
mov eax, dword [esp + 0x9c]
movd ecx, xmm0
mov dword [eax], ecx
mov dword [eax + 4], esi
movq xmm0, qword [esp]
movd ecx, xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], ebx
test ecx, ecx
je 0x1004e5bd
movq xmm0, qword [esp + 0x44]
mov dword [esp + 0x190], ecx
movq qword [esp + 0x194], xmm0
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x3c]
mov edx, 0x5084162
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 6
call fcn.1005cbb0
add esp, 8
jmp 0x1004ed97
pshufd xmm0, xmm0, 0x55
movd eax, xmm0
mov edx, dword [eax + 0x34]
mov dword [esp + 0xc0], ebx
mov ebx, dword [eax + 0x30]
mov ecx, 5
mov dword [esp + 0x20], 0
lea eax, [edx + edx*8]
add edx, ebx
lea eax, [eax + eax*2]
add edx, eax
mov dword [esp + 0xb0], edx
jmp 0x1004e619
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x70]
mov edi, dword [ebp + 8]
add ebx, 0x1c
mov dword [esp + 0x20], eax
dec ecx
je 0x1004ecbc
cmp ebx, edx
je 0x1004ecb8
mov dword [esp + 0x70], ecx
mov ecx, dword [edi]
mov eax, dword [ebx + 0xc]
mov esi, dword [ecx + 8]
mov edi, dword [ecx + 0xc]
add esi, eax
adc edi, 0
cmp dword [ecx + 0x14c], eax
jbe 0x1004e600
cmp dword [esp + 0x20], 3
mov eax, 3
je 0x1004e604
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x190]
lea edx, [esp + 0xe0]
mov dword [esp + 0xe0], eax
push 2
push 0x5081218
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
push esi
call fcn.10063630
add esp, 0x18
mov eax, dword [esp + 0x190]
test eax, eax
jne 0x1004e817
cmp dword [esp + 0x198], 1
jne 0x1004e817
mov esi, dword [esp + 0x1a0]
mov edi, dword [esp + 0x1a4]
mov dword [esp], 3
mov dword [esp + 4], 0x40
mov dword [esp + 8], 0x5081248
mov dword [esp + 0xc], 1
lea ecx, [esp + 0x190]
lea edx, [esp + 0xe0]
push 1
lea eax, [esp + 4]
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
push esi
call fcn.10063630
add esp, 0x18
mov eax, dword [esp + 0x190]
test eax, eax
jne 0x1004e817
cmp dword [esp + 0x198], 1
jne 0x1004e817
mov eax, dword [esp + 0x1a0]
mov dword [esp + 0xac], ebx
lea ecx, [esp + 0x190]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x1a4]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xe0]
mov edx, dword [eax]
push 0
push edi
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10034550
add esp, 0x14
xor edi, edi
mov eax, 0xfffffff9
lea esi, [0x508125e]
xor edx, edx
lea ebx, [0x508125d]
nop word [eax + eax]
movzx ecx, byte [ebx]
mov ebx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x1004e785
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, edi
movzx ecx, ch
shl esi, 4
or ecx, esi
lea esi, [ebx + 1]
test eax, eax
cmove esi, ebx
je 0x1004e7a4
shld edx, edi, 4
inc eax
test ebx, ebx
mov edi, ecx
jne 0x1004e760
mov eax, dword [esp + 0x190]
test eax, eax
je 0x1004e854
movsd xmm0, qword [esp + 0x194]
mov esi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
mov edi, ecx
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x98], xmm0
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x9c], esi
push 4
push 8
push 0x5086800
lea ecx, [esp + 0x4c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004e85e
lea ecx, [esp + 0x98]
call fcn.10004080
xor edx, edx
jmp 0x1004e871
test eax, eax
je 0x1004e842
mov esi, dword [esp + 0x1a0]
test esi, esi
je 0x1004e842
mov ecx, esi
call fcn.10004080
mov eax, dword [0x5087000]
push 4
push 8
push esi
push 0x5086800
call dword [eax + 0x10]
add esp, 0x10
mov edx, dword [esp + 0xb0]
xor eax, eax
add eax, dword [esp + 0x20]
jmp 0x1004e604
movzx ecx, byte [esp + 0x194]
jmp 0x1004e887
movdqa xmm0, xmmword [esp + 0x60]
mov edx, dword [esp + 0x44]
movd eax, xmm0
mov dword [edx], eax
mov dword [edx + 4], esi
mov eax, dword [esp]
mov ebx, dword [esp + 0xc0]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x10057ec5
mov edi, dword [esp + 0xe0]
movzx eax, cl
mov esi, dword [esp + 0xa8]
lea ecx, [esp + 0x190]
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x100]
mov edx, dword [edi]
add eax, 0xfffffffe
adc esi, 0xffffffff
push 0
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10034550
add esp, 0x14
xor edx, edx
mov eax, 0xfffffff9
lea ebx, [0x508125e]
lea esi, [0x508125d]
mov dword [esp + 0x60], 0
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [esi]
mov esi, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x1004e915
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov ebx, edx
movzx edi, ch
shl ebx, 4
or edi, ebx
lea ebx, [esi + 1]
test eax, eax
cmove ebx, esi
je 0x1004e936
shld dword [esp + 0x60], edx, 4
inc eax
test esi, esi
mov edx, edi
jne 0x1004e8f0
mov eax, dword [esp + 0x190]
test eax, eax
je 0x1004e9aa
movsd xmm0, qword [esp + 0x194]
mov esi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x98], xmm0
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x9c], esi
push 4
push 8
push 0x5086800
lea ecx, [esp + 0x4c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
mov ebx, dword [esp + 0xc0]
je 0x1004e9b4
lea ecx, [esp + 0x98]
call fcn.10004080
xor edx, edx
jmp 0x1004e9c7
movzx ecx, byte [esp + 0x194]
jmp 0x1004e9d6
movdqa xmm0, xmmword [esp + 0x60]
mov edx, dword [esp + 0x44]
movd eax, xmm0
mov dword [edx], eax
mov dword [edx + 4], esi
mov eax, dword [esp]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x10057f26
mov ebx, dword [esp + 0xac]
mov eax, ecx
and al, 0xc7
cmp al, 0x44
jne 0x1004eb19
mov eax, dword [esp + 0xe0]
lea ecx, [esp + 0x190]
mov edx, dword [eax]
push 0
push dword [esp + 0xac]
push dword [esp + 0x108]
push dword [eax + 8]
push dword [eax + 4]
call fcn.10034550
add esp, 0x14
mov eax, dword [esp + 0x190]
test eax, eax
je 0x1004ec25
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x19c]
movq xmm0, qword [esp + 0x194]
mov ecx, 0xfffffff9
lea ebx, [0x508125e]
lea esi, [0x508125d]
mov dword [esp + 0x60], 0
mov dword [esp + 0x100], eax
xor eax, eax
nop
movzx edx, byte [esi]
mov esi, ebx
mov dh, dl
add dh, 0xd0
cmp dh, 0xa
jb 0x1004ea85
or dl, 0x20
mov dh, dl
add dh, 0x9f
cmp dh, 6
jae 0x1005c879
add dl, 0xa9
mov dh, dl
mov ebx, eax
movzx edi, dh
shl ebx, 4
or edi, ebx
lea ebx, [esi + 1]
test ecx, ecx
cmove ebx, esi
je 0x1004eaa6
shld dword [esp + 0x60], eax, 4
inc ecx
test esi, esi
mov eax, edi
jne 0x1004ea60
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0x100]
mov dword [esp + 0x190], eax
mov eax, dword [0x5087000]
movq qword [esp + 0x194], xmm0
pshufd xmm0, xmm0, 0x55
movd dword [esp + 0x40], xmm0
movdqa xmmword [esp + 0x60], xmm0
mov dword [esp + 0x44], esi
push 4
push 8
push 0x5086800
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp], 0
mov ebx, dword [esp + 0xc0]
je 0x1004ec49
lea ecx, [esp + 0x40]
call fcn.10004080
mov dword [esp + 0x60], 0
jmp 0x1004ec60
mov edx, dword [esp + 0xb0]
not cl
test cl, 0x84
jne 0x1004e849
mov eax, dword [esp + 0xe0]
mov ecx, esp
mov edx, dword [eax]
push 0
push dword [esp + 0xac]
push dword [esp + 0x108]
push dword [eax + 8]
push dword [eax + 4]
call fcn.10033e30
add esp, 0x14
xor edx, edx
mov eax, 0xfffffff9
lea ebx, [0x508125e]
lea esi, [0x508125d]
mov dword [esp + 0x60], 0
nop
movzx ecx, byte [esi]
mov esi, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x1004eb95
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov ebx, edx
movzx edi, ch
shl ebx, 4
or edi, ebx
lea ebx, [esi + 1]
test eax, eax
cmove ebx, esi
je 0x1004ebb6
shld dword [esp + 0x60], edx, 4
inc eax
test esi, esi
mov edx, edi
jne 0x1004eb70
mov eax, dword [esp]
mov ecx, dword [esp + 4]
test eax, eax
je 0x1004ec15
mov esi, ecx
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x190], eax
xor edi, 0x24
mov dword [esp + 0x194], esi
mov dword [esp + 0x198], ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x19c], edx
lea edx, [esp + 0x190]
push edi
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0xc0]
test eax, eax
jne 0x1005815a
mov ebx, dword [esp + 0xac]
mov edx, dword [esp + 0xb0]
jmp 0x1004ec87
movzx eax, byte [esp + 0x194]
mov ecx, 0x508125c
mov edx, 0x21
mov esi, eax
call fcn.10007f70
mov edx, dword [esp + 0xb0]
mov ecx, esi
jmp 0x1004ec84
movdqa xmm0, xmmword [esp + 0x60]
mov ecx, dword [esp + 4]
movd eax, xmm0
mov dword [esp + 0x60], ecx
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov eax, dword [esp + 0x190]
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x194]
test eax, eax
jne 0x10057fac
mov ebx, dword [esp + 0xac]
movsx ecx, cl
mov eax, dword [esp + 0x110]
cmp ecx, 0x100
mov esi, ecx
setb ch
mov cl, al
add cl, 0xd0
cmp cl, 0x51
setb cl
add eax, 0x30
and cl, ch
cmp esi, eax
setae al
and al, cl
movzx eax, al
jmp 0x1004e84b
mov eax, dword [esp + 0x20]
lea edx, [0x508125d]
lea esi, [0x508125e]
mov ecx, 0xfffffff9
nop dword [eax]
movzx ebx, byte [edx]
mov edx, esi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x1004ecee
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1005c879
lea esi, [edx + 1]
test ecx, ecx
cmove esi, edx
je 0x1004ecfd
inc ecx
test edx, edx
jne 0x1004ecd0
mov ebx, dword [esp + 0xc0]
dec dword [ebx]
cmp eax, 3
jne 0x1004ed97
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x5081265
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0x9fff997c
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xe543
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1004ed97
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
lea esi, [esp + 0x190]
lea edx, [esp + 0x140]
mov ecx, esi
push dword [ebp + 0xc]
push edi
call fcn.10002580
add esp, 8
cmp dword [esp + 0x190], 0
je 0x1004eee8
movdqu xmm0, xmmword [esp + 0x194]
movd eax, xmm0
test eax, eax
je 0x1004edf1
mov eax, dword [esp + 0x3c]
movups xmmword [esp + 0x190], xmm0
mov edx, 0x5084168
mov ecx, dword [eax + 0x10]
push esi
push 8
call fcn.1005cbb0
add esp, 8
lea edx, [esp + 0x140]
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
push edi
call fcn.10002580
add esp, 8
xor edi, edi
lea edx, [0x508155d]
lea ebx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x1004ee55
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov ebx, edi
movzx esi, ch
shl ebx, 4
or esi, ebx
lea ebx, [edx + 1]
test eax, eax
cmove ebx, edx
je 0x1004ee76
shld dword [esp + 0x20], edi, 4
inc eax
test edx, edx
mov edi, esi
jne 0x1004ee30
cmp dword [esp + 0x190], 0
je 0x1004f018
mov edi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor esi, 0x62
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], edi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004f168
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x1004f171
cmp dword [esp + 0x198], 0
jne 0x1004edf1
cmp dword [esp + 0x19c], 0x7e3
jne 0x1004edf1
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0x1a4]
mov esi, dword [esp + 0x1a0]
lea edx, [esp + 0x98]
mov dword [esp + 0x98], ecx
lea ecx, [esp + 0x190]
push 7
push 0x50812b4
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
push esi
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea esi, [0x508125d]
lea edx, [0x508125e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop dword [eax]
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x1004ef85
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x1004efa6
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x1004ef60
cmp dword [esp + 0x190], 0
je 0x1004f3fb
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x76
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004f54b
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x1004f554
movsd xmm0, qword [esp + 0x198]
movsd xmm1, qword [esp + 0x1a0]
mov edi, dword [ebp + 8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x1004f1b8
cmp dword [esp + 8], 0x7e3
jne 0x1004f1b8
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0x98]
mov dword [esp + 0x98], ecx
lea ecx, [esp + 0x190]
push 0xa
push 0x5081494
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor edi, edi
lea edx, [0x508155d]
lea ebx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x1004f0d5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov ebx, edi
movzx esi, ch
shl ebx, 4
or esi, ebx
lea ebx, [edx + 1]
test eax, eax
cmove ebx, edx
je 0x1004f0f6
shld dword [esp + 0x20], edi, 4
inc eax
test edx, edx
mov edi, esi
jne 0x1004f0b0
cmp dword [esp + 0x190], 0
je 0x1004f4a3
mov edi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor esi, 0x69
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], edi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004f591
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x1004f59a
mov eax, dword [esp + 0x44]
mov dword [eax], edi
mov dword [eax + 4], ebx
movaps xmm0, xmmword [esp + 0x20]
movlps qword [esp], xmm0
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
movdqu xmm0, xmmword [esp]
mov edi, dword [ebp + 8]
movd eax, xmm0
test eax, eax
je 0x1004f1b8
mov eax, dword [esp + 0x3c]
movups xmmword [esp + 0x190], xmm0
mov edx, 0x5084170
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 5
call fcn.1005cbb0
add esp, 8
mov eax, dword [edi]
mov ecx, dword [eax + 0x12c]
cmp ecx, 7
mov dword [esp + 0x190], ecx
jae 0x1004f216
mov edi, dword [ebp + 8]
lea ecx, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
movzx ebx, byte [ecx]
mov ecx, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x1004f1fe
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1005c879
lea edx, [ecx + 1]
test eax, eax
cmove edx, ecx
je 0x1004f775
inc eax
test ecx, ecx
jne 0x1004f1e0
jmp 0x1004f775
mov edx, dword [eax + 0x12c]
mov ecx, dword [eax + 0x128]
push 5
push 0x508303c
call fcn.10032ad0
add esp, 8
cmp ax, 1
jne 0x1004f1cc
mov edi, edx
cmp dx, 3
jb 0x1004f1cc
mov eax, dword [esp + 0x3c]
mov edx, 0x5083041
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
mov dword [esp + 0x70], ecx
push eax
push 0x16
call fcn.1005ce80
add esp, 8
movzx ecx, di
mov edi, dword [ebp + 8]
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
nop dword [eax + eax]
movzx ebx, byte [edx]
mov edx, esi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x1004f29e
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1005c879
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x1004f2ad
inc eax
test edx, edx
jne 0x1004f280
mov eax, dword [edi]
add ecx, 0xfffffffe
mov edx, dword [eax + 0x12c]
cmp ecx, edx
jae 0x1005bf99
mov edx, dword [eax + 0x128]
lea ecx, [ecx + ecx*4]
mov esi, 0xfffffc00
add esi, dword [edx + ecx*8 + 8]
cmp esi, 0xbff
ja 0x1004f775
mov ecx, dword [edx + ecx*8 + 0xc]
mov esi, dword [eax + 8]
mov ebx, dword [eax + 0xc]
add esi, ecx
adc ebx, 0
cmp dword [eax + 0x14c], ecx
jbe 0x1004f775
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x190]
mov dword [esp + 0xb0], ebx
mov edx, dword [eax]
push ebx
mov dword [esp + 0x64], esi
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10033580
add esp, 0x10
xor esi, esi
lea ebx, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop dword [eax + eax]
movzx ecx, byte [ebx]
mov ebx, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x1004f365
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, esi
movzx edi, dl
lea edx, [ebx + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, ebx
je 0x1004f386
shld dword [esp + 0x20], esi, 4
inc eax
test ebx, ebx
mov esi, edi
jne 0x1004f340
cmp dword [esp + 0x190], 0
je 0x1004f5d0
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0xa1
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004f68d
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x1004f696
mov eax, dword [esp + 0x198]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x19c]
je 0x1004edf1
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x5081340
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0x1e0c01b6
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xe543
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1004edf1
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x1004edf1
mov eax, dword [esp + 0x198]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x19c]
je 0x1004f1b8
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x5081565
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0xfdf0f7ce
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c6f
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1004f1b8
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x1004f1b8
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm2, xmmword [esp + 0x20]
movd xmm1, eax
lea esi, [esp + 0x190]
movlps qword [esp], xmm2
mov dword [esp + 8], edi
mov edi, dword [ebp + 8]
movsd xmm0, qword [esp + 4]
shufps xmm1, xmm0, 0xd4
unpcklps xmm0, xmm2
shufps xmm0, xmm1, 0x21
movd eax, xmm0
test eax, eax
jne 0x1004edd2
jmp 0x1004edf1
mov eax, dword [esp + 0x44]
mov dword [eax], edi
mov dword [eax + 4], ebx
movaps xmm2, xmmword [esp + 0x20]
movd xmm1, eax
movlps qword [esp], xmm2
mov dword [esp + 8], esi
movsd xmm0, qword [esp + 4]
shufps xmm1, xmm0, 0xd4
unpcklps xmm0, xmm2
shufps xmm0, xmm1, 0x21
mov edi, dword [ebp + 8]
movd eax, xmm0
test eax, eax
jne 0x1004f192
jmp 0x1004f1b8
mov eax, dword [esp + 0x198]
mov ecx, dword [esp + 0x19c]
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0xb0]
or ecx, dword [esp + 0x1a4]
or eax, dword [esp + 0x1a0]
or eax, ecx
jne 0x1004f775
mov esi, ebx
mov ebx, dword [ebp + 0xc]
mov eax, edx
lea ecx, [esp + 0x190]
add eax, 0x10
adc esi, 0
mov edx, dword [ebx]
push esi
push eax
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.10033580
add esp, 0x10
mov ecx, 0x508155c
mov edx, 0xa7
call fcn.10007f70
cmp dword [esp + 0x190], 0
je 0x100575e8
movq xmm0, qword [esp + 0x194]
mov ecx, dword [esp + 0x19c]
mov edx, dword [esp + 0x1a0]
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
lea ecx, [esp + 4]
lea edx, [esp + 0x40]
push eax
call fcn.100031f0
add esp, 4
mov edx, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
jmp 0x1004f6a9
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movdqa xmm0, xmmword [esp + 0x20]
movq qword [esp], xmm0
movd edx, xmm0
mov ecx, dword [esp + 4]
mov esi, eax
shr eax, 8
shld esi, edi, 0x18
shld edi, ecx, 0x18
test edx, edx
je 0x1004f708
mov dword [esp + 0x190], edx
mov byte [esp + 0x194], cl
mov ecx, dword [esp + 0x70]
mov word [esp + 0x19d], ax
shr eax, 0x10
mov dword [esp + 0x195], edi
mov dword [esp + 0x199], esi
mov edx, 0x5084175
mov byte [esp + 0x19f], al
lea eax, [esp + 0x190]
push eax
push 7
call fcn.1005cbb0
add esp, 8
mov edi, dword [ebp + 8]
jmp 0x1004f775
mov edi, dword [ebp + 8]
test cl, 1
je 0x1004f775
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
lea edx, [esp + 0x190]
push 4
push 0x508157c
call fcn.10018480
add esp, 8
mov edi, dword [esp]
mov ecx, dword [esp + 0x70]
mov edx, 0xbd51f66
push dword [esp + 4]
push edi
push 0xffff1c70
call fcn.1003b900
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, edi
mov edi, dword [ebp + 8]
call fcn.10028ce0
mov eax, dword [edi]
cmp dword [eax + 0x18], 0
je 0x1004fa8a
mov edx, edi
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
call fcn.10068470
add esp, 4
xor esi, esi
lea edi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
xor ebx, ebx
nop word [eax + eax]
movzx ecx, byte [edi]
mov edi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x1004f7d5
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, esi
movzx edx, dl
shl ecx, 4
or edx, ecx
test eax, eax
mov ecx, edx
lea edx, [edi + 1]
cmove edx, edi
je 0x1004f7f6
shld ebx, esi, 4
inc eax
test edi, edi
mov esi, ecx
jne 0x1004f7b0
mov eax, dword [esp + 0x190]
test eax, eax
je 0x1004f871
movsd xmm0, qword [esp + 0x194]
mov edi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
xor ecx, 0xd6
mov esi, ecx
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x98], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x9c], edi
push 4
push 8
push 0x5086800
lea ecx, [esp + 0x8c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
je 0x1004f88e
lea ecx, [esp + 0x98]
call fcn.10004080
xor eax, eax
jmp 0x1004f8a4
mov edi, dword [esp + 0x194]
mov esi, dword [esp + 0x198]
cmp dword [edi + 0x34], 5
je 0x1004f913
jmp 0x1004fa85
movdqa xmm0, xmmword [esp + 0x20]
mov eax, dword [esp + 0x84]
movd ecx, xmm0
mov dword [eax], ecx
mov dword [eax + 4], edi
movq xmm0, qword [esp]
mov edi, dword [ebp + 8]
mov edx, esi
movd ecx, xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], esi
test ecx, ecx
je 0x1004f900
movsd xmm0, qword [esp + 0x44]
mov dword [esp + 0x190], ecx
mov edx, 0x508417c
movsd qword [esp + 0x194], xmm0
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 7
call fcn.1005cbb0
add esp, 8
jmp 0x1004fa8a
pshufd xmm0, xmm0, 0x55
movd edi, xmm0
cmp dword [edi + 0x34], 5
jne 0x1004fa85
mov ecx, 0x5081580
mov edx, 6
call 0x1006d230
mov edi, dword [edi + 0x30]
cmp dword [edi], 0
je 0x1004f92f
cmp dword [edi + 4], eax
je 0x1004f963
cmp dword [edi + 0x1c], 0
je 0x1004f93a
cmp dword [edi + 0x20], eax
je 0x1004f963
cmp dword [edi + 0x38], 0
je 0x1004f945
cmp dword [edi + 0x3c], eax
je 0x1004f963
cmp dword [edi + 0x54], 0
je 0x1004f950
cmp dword [edi + 0x58], eax
je 0x1004f963
cmp dword [edi + 0x70], 0
je 0x1004fa85
cmp dword [edi + 0x74], eax
jne 0x1004fa85
mov ecx, 0x5081586
mov edx, 9
call 0x1006d230
cmp dword [edi], 0
je 0x1004f97c
cmp dword [edi + 4], eax
je 0x1004f9b0
cmp dword [edi + 0x1c], 0
je 0x1004f987
cmp dword [edi + 0x20], eax
je 0x1004f9b0
cmp dword [edi + 0x38], 0
je 0x1004f992
cmp dword [edi + 0x3c], eax
je 0x1004f9b0
cmp dword [edi + 0x54], 0
je 0x1004f99d
cmp dword [edi + 0x58], eax
je 0x1004f9b0
cmp dword [edi + 0x70], 0
je 0x1004fa85
cmp dword [edi + 0x74], eax
jne 0x1004fa85
mov ecx, 0x508158f
mov edx, 0x14
call 0x1006d230
cmp dword [edi], 0
je 0x1004f9c9
cmp dword [edi + 4], eax
je 0x1004f9fd
cmp dword [edi + 0x1c], 0
je 0x1004f9d4
cmp dword [edi + 0x20], eax
je 0x1004f9fd
cmp dword [edi + 0x38], 0
je 0x1004f9df
cmp dword [edi + 0x3c], eax
je 0x1004f9fd
cmp dword [edi + 0x54], 0
je 0x1004f9ea
cmp dword [edi + 0x58], eax
je 0x1004f9fd
cmp dword [edi + 0x70], 0
je 0x1004fa85
cmp dword [edi + 0x74], eax
jne 0x1004fa85
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x50815a3
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov edi, dword [esp]
mov edx, 0x998609a6
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push edi
push 0xe543
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1004fa85
mov ecx, dword [0x5087000]
push edx
push eax
push edi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
mov edi, dword [ebp + 8]
dec dword [esi]
push 0x200
push 0
lea eax, [esp + 0x198]
push eax
call 0x1006d5e0
add esp, 0xc
lea edx, [esp + 0x140]
mov ecx, esp
push edi
call fcn.10002f00
add esp, 4
xor edi, edi
lea edx, [0x508155d]
lea ebx, [0x508155e]
mov eax, 0xfffffff9
xor esi, esi
nop dword [eax + eax]
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x1004faf5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov ebx, edi
movzx ecx, ch
shl ebx, 4
or ecx, ebx
lea ebx, [edx + 1]
test eax, eax
cmove ebx, edx
je 0x1004fb14
shld esi, edi, 4
inc eax
test edx, edx
mov edi, ecx
jne 0x1004fad0
mov eax, dword [esp]
test eax, eax
je 0x1004fb83
movsd xmm0, qword [esp + 4]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, dword [0x5087000]
mov ebx, ecx
movsd qword [esp + 0x44], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x98], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x9c], esi
push 4
push 8
push 0x5086800
lea ecx, [esp + 0x8c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
mov edi, dword [ebp + 8]
je 0x1004fb90
lea ecx, [esp + 0x98]
call fcn.10004080
xor esi, esi
jmp 0x1004fba8
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0xc]
mov edi, dword [ebp + 8]
jmp 0x1004fbc2
movdqa xmm0, xmmword [esp + 0x20]
mov ecx, dword [esp + 0x84]
movd eax, xmm0
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov esi, ecx
movq xmm0, qword [esp + 0x40]
mov ecx, ebx
xor ecx, 0xfa
movd eax, xmm0
test eax, eax
jne 0x10050348
cmp ecx, 0x8000
mov eax, esi
xorps xmm0, xmm0
sbb eax, 0
jae 0x1004fbd7
jmp 0x10050348
mov eax, dword [edi]
mov dword [esp + 0x70], ecx
mov ecx, dword [eax + 0x12c]
sub ecx, 1
jb 0x1005b85a
mov eax, dword [eax + 0x128]
lea ecx, [ecx + ecx*4]
xor ebx, ebx
mov edx, dword [eax + ecx*8 + 0x10]
add edx, dword [eax + ecx*8 + 0x14]
mov eax, dword [esp + 0x70]
mov ecx, esi
sub eax, edx
sbb ecx, 0
cmovb eax, ebx
cmovb ecx, ebx
cmp eax, 0x8000
sbb ecx, 0
jb 0x10050348
mov eax, dword [ebp + 0xc]
mov ecx, esp
mov dword [esp + 0x20], 0
mov dword [esp + 0xb0], esi
mov eax, dword [eax + 8]
mov edx, dword [eax]
push dword [ebp + 0x10]
mov dword [esp + 0x64], eax
push dword [eax + 8]
call fcn.10031c90
add esp, 8
lea edi, [0x508155d]
lea ecx, [0x508155e]
mov eax, 0xfffffff9
xor esi, esi
nop dword [eax]
movzx ebx, byte [edi]
mov edi, ecx
mov ecx, ebx
add cl, 0xd0
cmp cl, 0xa
jb 0x1004fc85
or bl, 0x20
mov ecx, ebx
add cl, 0x9f
cmp cl, 6
jae 0x1005c879
add bl, 0xa9
mov ecx, ebx
mov ebx, esi
movzx edx, cl
lea ecx, [edi + 1]
shl ebx, 4
or edx, ebx
test eax, eax
cmove ecx, edi
je 0x1004fca6
shld dword [esp + 0x20], esi, 4
inc eax
test edi, edi
mov esi, edx
jne 0x1004fc60
cmp dword [esp], 0
je 0x1004fd1b
mov eax, dword [esp + 0xc]
movsd xmm0, qword [esp + 4]
mov ebx, dword [esp + 0x10]
mov esi, edx
lea ecx, [esp + 0x40]
xor esi, 0x106
mov dword [esp + 0x80], eax
mov dword [esp + 0x70], eax
mov eax, dword [0x5087000]
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
mov edi, dword [ebp + 8]
je 0x1004fdaf
lea ecx, [esp + 0x80]
call fcn.10004080
movdqa xmm0, xmmword [esp + 0x20]
mov ecx, esi
xor esi, esi
jmp 0x10050348
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x60]
mov eax, dword [ecx + 0x2c]
cmp eax, dword [edx + 8]
jne 0x1005ca5a
mov eax, dword [esp + 8]
mov edx, dword [ecx + 0x18]
mov esi, dword [esp + 0xb0]
mov ebx, dword [ecx + 0x1c]
mov dword [esp + 0xc0], ecx
mov ecx, esp
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x124], edx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x70]
add eax, 0xfffffff0
adc esi, 0xffffffff
push 0
push 0x10
lea edi, [esp + 0x198]
push edi
push esi
push eax
push dword [esp + 0x74]
mov dword [esp + 0x148], ebx
push ebx
call fcn.10032d70
add esp, 0x1c
mov eax, dword [esp]
test eax, eax
je 0x1004fdcb
movq xmm0, qword [esp + 4]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x20], eax
mov dword [esp + 0x110], ecx
jmp 0x1004fe6c
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x70]
movdqa xmm0, xmmword [esp + 0x20]
mov dword [eax], ecx
mov ecx, esi
mov dword [eax + 4], ebx
mov esi, eax
jmp 0x10050348
cmp dword [esp + 4], 0x10
jne 0x1004fdea
mov dword [esp + 0x20], 0
mov dword [esp + 0x110], 0
jmp 0x1004fe6c
xor ecx, ecx
lea edx, [0x50848ed]
lea edi, [0x50848ee]
mov eax, 0xfffffff9
xor esi, esi
movzx ebx, byte [edx]
mov edx, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x1004fe24
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005c879
add bl, 0xa9
mov bh, bl
mov edi, ecx
movzx ebx, bh
shl edi, 4
or ebx, edi
lea edi, [edx + 1]
test eax, eax
cmove edi, edx
je 0x1004fe43
shld esi, ecx, 4
inc eax
test edx, edx
mov ecx, ebx
jne 0x1004fdff
movdqa xmm0, xmmword [0x507d5d0]
xor ebx, 0x91
mov dword [esp + 0x110], 0
mov dword [esp + 0x20], 0xc76970a8
movd xmm1, ebx
punpckldq xmm0, xmm1
xor edi, edi
lea esi, [0x508155d]
lea ebx, [0x508155e]
mov ecx, 0xfffffff9
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx edx, byte [esi]
mov esi, ebx
mov dh, dl
add dh, 0xd0
cmp dh, 0xa
jb 0x1004feb5
or dl, 0x20
mov dh, dl
add dh, 0x9f
cmp dh, 6
jae 0x1005c879
add dl, 0xa9
mov dh, dl
mov ebx, edi
movzx edx, dh
shl ebx, 4
or edx, ebx
lea ebx, [esi + 1]
test ecx, ecx
cmove ebx, esi
je 0x1004fed4
shld eax, edi, 4
inc ecx
test esi, esi
mov edi, edx
jne 0x1004fe90
mov eax, dword [esp + 0x20]
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0xb0]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x100], edx
test eax, eax
je 0x1004ff86
mov ebx, dword [esp + 0x110]
mov dword [esp], eax
mov eax, dword [0x5087000]
movq qword [esp + 4], xmm0
pshufd xmm0, xmm0, 0x55
lea ecx, [esp + 0x40]
movd dword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004ff50
lea ecx, [esp + 0x80]
call fcn.10004080
xor ecx, ecx
jmp 0x1004ff63
movdqa xmm0, xmmword [esp + 0x20]
mov ecx, dword [esp + 0x44]
movd eax, xmm0
mov dword [ecx], eax
mov dword [ecx + 4], ebx
movq xmm1, qword [esp]
mov ebx, dword [esp + 0x60]
movd eax, xmm1
test eax, eax
je 0x1004ff86
xor dword [esp + 0x100], 0x10e
mov ebx, ecx
jmp 0x100502d1
xor eax, eax
cmp dword [esp + 0x190], 0x6578652e
je 0x1005008c
cmp dword [esp + 0x191], 0x6578652e
mov eax, 1
je 0x1005008c
cmp dword [esp + 0x192], 0x6578652e
mov eax, 2
je 0x1005008c
cmp dword [esp + 0x193], 0x6578652e
mov eax, 3
je 0x1005008c
cmp dword [esp + 0x194], 0x6578652e
mov eax, 4
je 0x1005008c
cmp dword [esp + 0x195], 0x6578652e
mov eax, 5
je 0x1005008c
cmp dword [esp + 0x196], 0x6578652e
mov eax, 6
je 0x1005008c
cmp dword [esp + 0x197], 0x6578652e
mov eax, 7
je 0x1005008c
cmp dword [esp + 0x198], 0x6578652e
mov eax, 8
je 0x1005008c
cmp dword [esp + 0x199], 0x6578652e
mov eax, 9
je 0x1005008c
cmp dword [esp + 0x19a], 0x6578652e
mov eax, 0xa
je 0x1005008c
cmp dword [esp + 0x19b], 0x6578652e
mov eax, 0xb
je 0x1005008c
cmp dword [esp + 0x19c], 0x6578652e
mov eax, 0xc
je 0x1005008c
xor eax, eax
jmp 0x100502d1
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x124]
mov ecx, esp
add edi, eax
adc esi, 0
add edi, 0xfffffdf0
adc esi, 0xffffffff
push 0
push 0x200
lea eax, [esp + 0x198]
push eax
push esi
push edi
push ebx
push dword [esp + 0x148]
call fcn.10032d70
add esp, 0x1c
mov eax, dword [esp]
test eax, eax
je 0x100500e6
movq xmm0, qword [esp + 4]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x70], eax
mov dword [esp + 0x60], ecx
jmp 0x1005020f
cmp dword [esp + 4], 0x200
jne 0x10050190
mov dword [esp + 0x70], 0
mov dword [esp + 0x60], 0
jmp 0x1005020f
mov eax, dword [esp + 0x198]
or eax, dword [esp + 0x19c]
je 0x100575d9
mov edx, dword [esp + 0x1a0]
lea edi, [esp + 0x190]
mov ecx, edi
push dword [esp + 0x80]
push dword [esp + 0x1a8]
call fcn.1002c3e0
add esp, 8
mov ecx, 0x5080b4c
mov edx, 0x141
call fcn.10007f70
mov ecx, esp
mov edx, edi
push eax
call fcn.1002c280
add esp, 4
mov eax, dword [esp]
test eax, eax
je 0x10057a9b
movq xmm0, qword [esp + 5]
movzx ecx, byte [esp + 4]
mov edx, dword [esp + 0xc]
movq qword [esp + 0x45], xmm0
mov dword [esp + 0x4c], edx
mov dword [esp + 0x40], eax
mov byte [esp + 0x44], cl
jmp 0x1004e2f8
xor ecx, ecx
lea edx, [0x50848ed]
lea edi, [0x50848ee]
mov eax, 0xfffffff9
xor esi, esi
movzx ebx, byte [edx]
mov edx, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x100501ca
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005c879
add bl, 0xa9
mov bh, bl
mov edi, ecx
movzx ebx, bh
shl edi, 4
or ebx, edi
lea edi, [edx + 1]
test eax, eax
cmove edi, edx
je 0x100501e9
shld esi, ecx, 4
inc eax
test edx, edx
mov ecx, ebx
jne 0x100501a5
movdqa xmm0, xmmword [0x507d5d0]
xor ebx, 0x91
mov dword [esp + 0x60], 0
mov dword [esp + 0x70], 0xc76970a8
movd xmm1, ebx
punpckldq xmm0, xmm1
xor ebx, ebx
lea eax, [0x508155d]
lea edi, [0x508155e]
mov edx, 0xfffffff9
mov dword [esp + 0x20], 0
nop word [eax + eax]
movzx ecx, byte [eax]
mov eax, edi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10050255
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov edi, ebx
movzx esi, ch
shl edi, 4
or esi, edi
lea edi, [eax + 1]
test edx, edx
cmove edi, eax
je 0x10050276
shld dword [esp + 0x20], ebx, 4
inc edx
test eax, eax
mov ebx, esi
jne 0x10050230
mov eax, dword [esp + 0x70]
test eax, eax
je 0x10050efb
mov ecx, dword [esp + 0x60]
xor esi, 0x11e
mov dword [esp], eax
movq qword [esp + 4], xmm0
mov edx, esp
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x40]
push esi
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 0x40]
test eax, eax
je 0x10050efb
movd xmm0, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
mov edi, dword [ebp + 8]
pshufd xmm1, xmm0, 0x50
mov dword [esp + 0x100], ecx
mov esi, dword [esp + 0xc0]
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xa8]
movd xmm0, eax
movss xmm1, xmm0
movaps xmmword [esp + 0x20], xmm1
push esi
call fcn.100373a0
add esp, 4
dec dword [esi]
jne 0x10050339
mov eax, dword [esp + 0xc0]
inc dword [esi + 4]
lea ecx, [eax + 8]
call fcn.1002cfc0
mov ecx, dword [esp + 0xc0]
mov eax, dword [ecx + 4]
dec eax
mov dword [ecx + 4], eax
or eax, dword [ecx]
jne 0x10050339
mov eax, dword [0x5087000]
push 8
push 0x30
push ecx
push 0x5086800
call dword [eax + 0x10]
add esp, 0x10
mov ecx, dword [esp + 0x100]
movdqa xmm0, xmmword [esp + 0x20]
mov esi, ebx
movd eax, xmm0
test eax, eax
je 0x10050385
mov eax, dword [esp + 0x3c]
movq qword [esp + 0x190], xmm0
mov dword [esp + 0x198], ecx
mov dword [esp + 0x19c], esi
mov edx, 0x5084183
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 7
call fcn.1005cbb0
add esp, 8
mov ecx, dword [edi]
mov eax, dword [ecx + 0xcc]
cmp dword [ecx + 0x14c], eax
jbe 0x100505a5
mov esi, dword [ecx + 0xc]
add eax, dword [ecx + 8]
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x80]
adc esi, 0
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x190]
push 3
push 0x50815dc
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word [eax + eax]
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10050415
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x10050436
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x100503f0
cmp dword [esp + 0x190], 0
je 0x100504a9
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
mov dword [esp + 0x40], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x44], ebx
push 4
push 8
push 0x5086800
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp], 0
je 0x10050547
lea ecx, [esp + 0x40]
call fcn.10004080
xor eax, eax
movdqa xmm0, xmmword [esp + 0x20]
movd ecx, xmm0
test ecx, ecx
jne 0x1005055e
jmp 0x100505a5
mov eax, dword [esp + 0x198]
or eax, dword [esp + 0x19c]
je 0x100505a5
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x5081618
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0xebe78076
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c74
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x100505a5
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x100505a5
mov eax, dword [esp + 4]
mov dword [eax], esi
mov dword [eax + 4], ebx
movdqa xmm0, xmmword [esp + 0x20]
movd ecx, xmm0
test ecx, ecx
je 0x100505a5
xor edi, 0x143
pshufd xmm0, xmm0, 0x55
mov dword [esp + 0x190], ecx
mov edx, 0x508418a
mov dword [esp + 0x198], edi
movd dword [esp + 0x194], xmm0
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 7
call fcn.1005cbb0
add esp, 8
lea edx, [esp + 0x140]
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.10002580
add esp, 8
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop dword [eax]
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10050605
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x10050626
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x100505e0
cmp dword [esp + 0x190], 0
je 0x10050697
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x16c
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x100507eb
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x100507f4
movsd xmm0, qword [esp + 0x198]
movsd xmm1, qword [esp + 0x1a0]
mov edi, dword [ebp + 8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 3
jne 0x1005083b
cmp dword [esp + 8], 0x1ec
jne 0x1005083b
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0x98]
mov dword [esp + 0x98], ecx
lea ecx, [esp + 0x190]
push 0xa
push 0x50816b4
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10050755
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, ebx
movzx edi, ch
shl esi, 4
or edi, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x10050776
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10050730
cmp dword [esp + 0x190], 0
je 0x10050cda
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x173
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10050e8c
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x10050e95
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm0, xmmword [esp + 0x20]
movlps qword [esp], xmm0
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
movdqu xmm0, xmmword [esp]
mov edi, dword [ebp + 8]
movd eax, xmm0
test eax, eax
je 0x1005083b
mov eax, dword [esp + 0x3c]
movups xmmword [esp + 0x190], xmm0
mov edx, 0x5084191
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 7
call fcn.1005cbb0
add esp, 8
xorps xmm0, xmm0
lea edx, [esp + 0x140]
lea ecx, [esp + 0x190]
movaps xmmword [esp + 0x80], xmm0
push dword [ebp + 0xc]
push edi
call fcn.10002580
add esp, 8
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop dword [eax + eax]
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x100508a5
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x100508c6
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10050880
cmp dword [esp + 0x190], 0
je 0x10050937
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x198
lea ecx, [esp + 0x40]
mov dword [esp + 0x98], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x9c], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10050a8b
lea ecx, [esp + 0x98]
call fcn.10004080
xor eax, eax
jmp 0x10050a94
movq xmm0, qword [esp + 0x198]
movsd xmm1, qword [esp + 0x1a0]
pxor xmm2, xmm2
movsd qword [esp + 0xc], xmm1
movq qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x10050aac
cmp dword [esp + 8], 0x13418bf
jne 0x10050aac
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0xe0]
mov dword [esp + 0xe0], ecx
lea ecx, [esp + 0x190]
push 9
push 0x5081788
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x100509f5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, ebx
movzx edi, ch
shl esi, 4
or edi, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x10050a16
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x100509d0
cmp dword [esp + 0x190], 0
je 0x10050d82
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x1a0
lea ecx, [esp + 0x40]
mov dword [esp + 0x98], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x9c], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10050ecb
lea ecx, [esp + 0x98]
call fcn.10004080
xor eax, eax
jmp 0x10050ed4
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movdqa xmm0, xmmword [esp + 0x20]
movq qword [esp], xmm0
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
movdqu xmm2, xmmword [esp]
mov edi, dword [ebp + 8]
movd eax, xmm2
test eax, eax
je 0x10050ade
mov eax, dword [esp + 0x3c]
movdqu xmmword [esp + 0x190], xmm2
mov edx, 0x5084198
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 7
call fcn.1005cbb0
add esp, 8
mov eax, dword [edi]
mov ecx, dword [eax + 0x12c]
test ecx, ecx
je 0x10050fb0
mov edx, dword [eax + 0x128]
lea esi, [ecx + ecx*4]
mov ecx, dword [edx + esi*8 - 0x20]
lea edi, [ecx - 0x20000]
cmp edi, 0x1dffff
mov edi, dword [ebp + 8]
ja 0x10050fb0
lea edx, [edx + esi*8]
mov esi, 0x636f6c
movq xmm0, qword [edx - 0x28]
mov edx, 0x6c65722e
movq qword [esp + 0x80], xmm0
xor edx, dword [esp + 0x80]
xor esi, dword [esp + 0x83]
or esi, edx
je 0x10050b69
mov edx, 0x7273722e
movzx esi, word [esp + 0x84]
xor edx, dword [esp + 0x80]
xor esi, 0x63
or esi, edx
jne 0x10050fb0
lea edx, [eax + 0x28]
cmp dword [edx], 0
jne 0x10050b75
jmp 0x10050fb0
lea edx, [eax + 0x40]
cmp dword [edx], 0
je 0x10050fb0
cmp dword [edx + 4], ecx
jae 0x10050fb0
mov esi, dword [eax + 0xcc]
cmp dword [eax + 0x14c], esi
jbe 0x10050fb0
mov edi, dword [eax + 0xc]
add esi, dword [eax + 8]
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x98]
lea ecx, [esp + 0x190]
adc edi, 0
mov dword [esp + 0x98], eax
push 2
push 0x5081880
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
push esi
call fcn.10063630
add esp, 0x18
xor edi, edi
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ebx, byte [esi]
mov esi, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x10050c15
or bl, 0x20
mov edx, ebx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add bl, 0xa9
mov edx, ebx
mov ecx, edi
movzx ebx, dl
lea edx, [esi + 1]
shl ecx, 4
or ebx, ecx
test eax, eax
cmove edx, esi
je 0x10050c36
shld dword [esp + 0x20], edi, 4
inc eax
test esi, esi
mov edi, ebx
jne 0x10050bf0
cmp dword [esp + 0x190], 0
mov edi, dword [ebp + 8]
je 0x10050f3b
movq xmm0, qword [esp + 0x194]
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x1a0]
xor ebx, 0x1ee
lea edx, [esp + 0x40]
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 4]
push ebx
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 4]
test eax, eax
je 0x10050fb0
mov dword [esp + 0x190], eax
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x194], ecx
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
mov dword [esp + 0x198], edx
mov dword [esp + 0x19c], esi
mov edx, 0x508419f
push eax
push 7
call fcn.1005cbb0
add esp, 8
jmp 0x10050fb0
mov eax, dword [esp + 0x198]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x19c]
je 0x1005083b
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x508177c
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0x36c5fd6c
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c75
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1005083b
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x1005083b
mov eax, dword [esp + 0x198]
pxor xmm2, xmm2
or eax, dword [esp + 0x19c]
je 0x10050aac
lea ecx, [esp + 0x190]
lea edx, [esp + 0x140]
push dword [ebp + 8]
call fcn.10002f00
add esp, 4
xor ecx, ecx
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
xor edi, edi
nop dword [eax + eax]
movzx ebx, byte [edx]
mov edx, esi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x10050df5
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005c879
add bl, 0xa9
mov bh, bl
mov esi, ecx
movzx ebx, bh
shl esi, 4
or ebx, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x10050e14
shld edi, ecx, 4
inc eax
test edx, edx
mov ecx, ebx
jne 0x10050dd0
mov eax, dword [esp + 0x190]
test eax, eax
je 0x10050f24
movsd xmm0, qword [esp + 0x194]
mov esi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
lea ecx, [esp + 0x40]
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x98], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x9c], esi
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10052702
lea ecx, [esp + 0x98]
call fcn.10004080
xor edi, edi
jmp 0x10052715
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm2, xmmword [esp + 0x20]
movd xmm1, eax
movlps qword [esp], xmm2
mov dword [esp + 8], edi
movsd xmm0, qword [esp + 4]
shufps xmm1, xmm0, 0xd4
unpcklps xmm0, xmm2
shufps xmm0, xmm1, 0x21
mov edi, dword [ebp + 8]
movd eax, xmm0
test eax, eax
jne 0x10050815
jmp 0x1005083b
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm1, xmmword [esp + 0x20]
movd xmm0, eax
movlps qword [esp], xmm1
mov dword [esp + 8], edi
movsd xmm2, qword [esp + 4]
shufps xmm0, xmm2, 0xd4
unpcklps xmm2, xmm1
shufps xmm2, xmm0, 0x21
jmp 0x10050aac
mov edi, dword [ebp + 8]
mov eax, 0xfffffe00
test eax, eax
je 0x10052678
movzx ecx, byte [esp + eax + 0x390]
inc eax
and cl, 0xdf
add cl, 0xbf
cmp cl, 0x1a
jb 0x10050f03
jmp 0x100526d4
mov ebx, dword [esp + 0x198]
mov edi, dword [esp + 0x19c]
pxor xmm2, xmm2
jmp 0x10052745
mov eax, dword [esp + 0x198]
or eax, dword [esp + 0x19c]
je 0x10050fb0
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
lea edx, [esp + 0x190]
push 4
push 0x50818a8
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0x998609a6
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xe543
call fcn.1003b900
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.10028ce0
mov eax, dword [edi]
mov edx, dword [eax + 0x12c]
mov ecx, dword [eax + 0x128]
push 5
push 0x50818ac
call fcn.10032ad0
add esp, 8
cmp ax, 1
jne 0x10051113
mov eax, dword [edi]
mov ecx, edx
movzx ecx, cx
mov edx, dword [eax + 0x12c]
cmp edx, ecx
jbe 0x10058200
mov edx, dword [eax + 0x128]
lea ecx, [ecx + ecx*4]
mov ebx, dword [eax + 8]
mov esi, dword [edx + ecx*8 + 0xc]
add ebx, esi
mov dword [esp + 0xc0], ebx
mov ebx, dword [eax + 0xc]
adc ebx, 0
cmp dword [eax + 0x14c], esi
mov dword [esp + 0x100], ebx
jbe 0x10051030
mov eax, dword [edx + ecx*8 + 0x10]
cmp eax, 0x1000
mov dword [esp + 0x124], eax
jae 0x1005136a
mov al, 1
mov dword [esp + 0x110], eax
lea ecx, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
nop word [eax + eax]
movzx ebx, byte [ecx]
mov ecx, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x1005106e
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1005c879
lea edx, [ecx + 1]
test eax, eax
cmove edx, ecx
je 0x1005107d
inc eax
test ecx, ecx
jne 0x10051050
cmp byte [esp + 0x110], 0
jne 0x10051113
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x50818b1
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0xc39eb295
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c71
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x10051113
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
mov edx, edi
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
call fcn.10068470
add esp, 4
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10051175
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x10051196
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10051150
mov eax, dword [esp + 0x190]
test eax, eax
je 0x1005120f
movsd xmm0, qword [esp + 0x194]
mov esi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
xor edi, 0x24a
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x98], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x9c], esi
push 4
push 8
push 0x5086800
lea ecx, [esp + 0x8c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
je 0x1005121f
lea ecx, [esp + 0x98]
call fcn.10004080
xor eax, eax
jmp 0x10051235
mov eax, dword [esp + 0x194]
mov edi, dword [esp + 0x198]
jmp 0x10051259
movdqa xmm0, xmmword [esp + 0x20]
mov eax, dword [esp + 0x84]
movd ecx, xmm0
mov dword [eax], ecx
mov dword [eax + 4], esi
movq xmm0, qword [esp]
movd ecx, xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], edi
test ecx, ecx
jne 0x100518f3
pshufd xmm0, xmm0, 0x55
movd eax, xmm0
mov eax, dword [eax + 0x34]
dec dword [edi]
mov edi, dword [ebp + 8]
cmp eax, 1
jne 0x10051931
mov edx, edi
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
call fcn.10068470
add esp, 4
xor edi, edi
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop dword [eax]
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x100512c5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, edi
movzx ebx, ch
shl esi, 4
or ebx, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x100512e6
shld dword [esp + 0x20], edi, 4
inc eax
test edx, edx
mov edi, ebx
jne 0x100512a0
mov eax, dword [esp + 0x190]
test eax, eax
je 0x1005177e
movsd xmm0, qword [esp + 0x194]
mov esi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
xor ebx, 0x24e
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x98], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x9c], esi
push 4
push 8
push 0x5086800
lea ecx, [esp + 0x8c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
je 0x100518c2
lea ecx, [esp + 0x98]
call fcn.10004080
xor eax, eax
jmp 0x100518d8
mov al, 1
pxor xmm0, xmm0
xor ecx, ecx
xor esi, esi
mov dword [esp + 0xa8], 0
movdqa xmmword [esp], xmm0
mov dword [esp + 0x110], eax
nop dword [eax + eax]
cmp ecx, dword [esp + 0x124]
mov eax, esi
sbb eax, 0
jae 0x10051776
mov eax, ecx
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x70], edx
mov dword [esp + 0x60], esi
mov dword [esp + 0xb0], ecx
lea ecx, [esp + 0x190]
add eax, dword [esp + 0xc0]
mov edx, dword [edi]
adc esi, dword [esp + 0x100]
push 1
push 0x10
lea ebx, [esp + 8]
push ebx
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10032d70
add esp, 0x1c
mov ecx, dword [esp + 0x190]
test ecx, ecx
je 0x10051413
movq xmm0, qword [esp + 0x194]
mov eax, dword [esp + 0x19c]
movdqa xmmword [esp + 0x130], xmm0
mov dword [esp + 0x70], eax
jmp 0x100514b0
xor ecx, ecx
cmp dword [esp + 0x194], 0x10
je 0x100514b0
xor ecx, ecx
mov eax, 0xfffffff9
lea edi, [0x50848ee]
xor edx, edx
lea esi, [0x50848ed]
nop dword [eax + eax]
movzx ebx, byte [esi]
mov esi, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x10051465
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005c879
add bl, 0xa9
mov bh, bl
mov edi, ecx
movzx ebx, bh
shl edi, 4
or ebx, edi
lea edi, [esi + 1]
test eax, eax
cmove edi, esi
je 0x10051484
shld edx, ecx, 4
inc eax
test esi, esi
mov ecx, ebx
jne 0x10051440
movdqa xmm1, xmmword [0x507d5d0]
xor ebx, 0x91
mov dword [esp + 0x70], 0
mov ecx, 0xc76970a8
movd xmm0, ebx
punpckldq xmm1, xmm0
movdqa xmmword [esp + 0x130], xmm1
inc dword [esp + 0xa8]
mov dword [esp + 0xac], ecx
xor edi, edi
mov ecx, 0xfffffff9
lea eax, [0x508155e]
lea ebx, [0x508155d]
mov dword [esp + 0x20], 0
nop dword [eax]
movzx edx, byte [ebx]
mov ebx, eax
mov eax, edx
add al, 0xd0
cmp al, 0xa
jb 0x10051501
or dl, 0x20
mov eax, edx
add al, 0x9f
cmp al, 6
jae 0x1005c879
add dl, 0xa9
mov eax, edx
mov edx, edi
movzx esi, al
lea eax, [ebx + 1]
shl edx, 4
or esi, edx
test ecx, ecx
cmove eax, ebx
je 0x10051522
shld dword [esp + 0x20], edi, 4
inc ecx
test ebx, ebx
mov edi, esi
jne 0x100514e0
mov eax, dword [esp + 0xac]
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x70]
test eax, eax
je 0x100515d9
movdqa xmm0, xmmword [esp + 0x130]
mov dword [esp + 0x190], eax
mov eax, dword [0x5087000]
movq qword [esp + 0x194], xmm0
pshufd xmm0, xmm0, 0x55
movd dword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
lea ecx, [esp + 0x4c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x100515b1
lea ecx, [esp + 0x80]
call fcn.10004080
xor ecx, ecx
movq xmm0, qword [esp + 0x190]
movd eax, xmm0
test eax, eax
je 0x100515d9
jmp 0x10052654
movdqa xmm0, xmmword [esp + 0x20]
mov ecx, dword [esp + 0x44]
movd eax, xmm0
mov dword [ecx], eax
mov dword [ecx + 4], ebx
movq xmm0, qword [esp + 0x190]
movd eax, xmm0
test eax, eax
jne 0x10052654
movdqa xmm1, xmmword [esp]
movd xmm0, dword [esp + 4]
pxor xmm4, xmm4
movd xmm3, dword [esp + 8]
movd xmm2, dword [esp + 0xc]
movdqa xmm5, xmmword [0x507d5e0]
pcmpeqb xmm1, xmm4
pcmpeqb xmm3, xmm4
pcmpeqb xmm2, xmm4
punpcklbw xmm1, xmm1
punpcklwd xmm1, xmm1
pcmpeqb xmm0, xmm4
punpcklbw xmm0, xmm0
pand xmm1, xmm5
punpcklwd xmm0, xmm0
pand xmm0, xmm5
punpcklbw xmm3, xmm3
punpcklbw xmm2, xmm2
punpcklwd xmm3, xmm3
punpcklwd xmm2, xmm2
pand xmm3, xmm5
pand xmm2, xmm5
paddd xmm3, xmm1
paddd xmm2, xmm0
paddd xmm2, xmm3
pshufd xmm0, xmm2, 0xee
paddd xmm0, xmm2
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd eax, xmm1
cmp eax, 2
mov eax, dword [esp + 0xb0]
ja 0x10051776
mov esi, edi
add eax, dword [esp + 0xc0]
mov edi, dword [ebp + 0xc]
lea ecx, [esp + 0x190]
adc esi, dword [esp + 0x100]
mov edx, dword [edi]
add eax, 0x10
adc esi, 0
push 1
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10033e30
add esp, 0x14
xor edi, edi
mov eax, 0xfffffff9
lea ebx, [0x508155e]
xor edx, edx
lea ecx, [0x508155d]
nop word [eax + eax]
mov esi, ecx
movzx ecx, byte [ecx]
mov dword [esp + 0x20], ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x100516e9
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
movzx esi, ch
mov ecx, dword [esp + 0x20]
mov ebx, edi
shl ebx, 4
or esi, ebx
test eax, eax
lea ebx, [ecx + 1]
cmove ebx, ecx
je 0x1005170c
shld edx, edi, 4
inc eax
test ecx, ecx
mov edi, esi
jne 0x100516c0
mov eax, dword [esp + 0x190]
mov ecx, dword [esp + 0x194]
test eax, eax
jne 0x10052528
mov edx, dword [esp + 0xb0]
mov esi, dword [esp + 0x60]
lea eax, [ecx - 2]
cmp eax, 0xfd
jae 0x10051776
add edx, ecx
adc esi, 0
add edx, 0x14
mov eax, edx
adc esi, 0
xor ecx, ecx
and eax, 0xfffffff0
test dl, 0xf
setne cl
shl ecx, 4
add ecx, eax
adc esi, 0
jb 0x10051776
cmp dword [esp + 0xa8], 8
mov edx, dword [esp + 0x70]
jne 0x10051390
mov dword [esp + 0x110], 0
mov edi, dword [ebp + 8]
jmp 0x10051039
mov eax, dword [esp + 0x194]
mov ebx, dword [esp + 0x198]
cmp dword [eax + 0x34], 0
je 0x100522f3
mov eax, dword [eax + 0x30]
mov ecx, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov ecx, dword [ecx]
cmp dword [ecx + 0x14c], eax
jbe 0x100518bb
mov esi, dword [ecx + 0xc]
add eax, dword [ecx + 8]
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x98]
adc esi, 0
dec dword [ebx]
mov dword [esp + 0x98], ecx
lea ecx, [esp + 0x190]
push 3
push 0x5081a0c
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10051825
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, ebx
movzx edi, ch
shl esi, 4
or edi, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x10051846
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10051800
cmp dword [esp + 0x190], 0
je 0x100523ed
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x273
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x100524f6
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x100524ff
mov edi, dword [ebp + 8]
dec dword [ebx]
jmp 0x10051931
movdqa xmm0, xmmword [esp + 0x20]
mov eax, dword [esp + 0x84]
movd ecx, xmm0
mov dword [eax], ecx
mov dword [eax + 4], esi
movq xmm0, qword [esp]
movd ecx, xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], ebx
test ecx, ecx
je 0x100522e0
movq xmm0, qword [esp + 0x44]
mov edi, dword [ebp + 8]
mov dword [esp + 0x190], ecx
movq qword [esp + 0x194], xmm0
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x3c]
mov edx, 0x50841ad
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 8
call fcn.1005cbb0
add esp, 8
mov ecx, dword [edi]
mov eax, dword [ecx + 0xcc]
cmp dword [ecx + 0x14c], eax
jbe 0x10051b55
mov esi, dword [ecx + 0xc]
add eax, dword [ecx + 8]
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x80]
adc esi, 0
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x190]
push 4
push 0x5081ac8
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x100519c5
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x100519e6
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x100519a0
cmp dword [esp + 0x190], 0
je 0x10051a59
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
mov dword [esp + 0x40], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x44], ebx
push 4
push 8
push 0x5086800
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp], 0
je 0x10051af7
lea ecx, [esp + 0x40]
call fcn.10004080
xor eax, eax
movdqa xmm0, xmmword [esp + 0x20]
movd ecx, xmm0
test ecx, ecx
jne 0x10051b0e
jmp 0x10051b55
mov eax, dword [esp + 0x198]
or eax, dword [esp + 0x19c]
je 0x10051b55
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x5081b18
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0xe2773f3
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c78
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x10051b55
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x10051b55
mov eax, dword [esp + 4]
mov dword [eax], esi
mov dword [eax + 4], ebx
movdqa xmm0, xmmword [esp + 0x20]
movd ecx, xmm0
test ecx, ecx
je 0x10051b55
xor edi, 0x2a3
pshufd xmm0, xmm0, 0x55
mov dword [esp + 0x190], ecx
mov edx, 0x50841b5
mov dword [esp + 0x198], edi
movd dword [esp + 0x194], xmm0
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 8
call fcn.1005cbb0
add esp, 8
lea edx, [esp + 0x140]
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.10002580
add esp, 8
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop dword [eax]
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10051bb5
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x10051bd6
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10051b90
cmp dword [esp + 0x190], 0
je 0x10051c47
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x2b7
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10051d9b
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x10051da4
movsd xmm0, qword [esp + 0x198]
movsd xmm1, qword [esp + 0x1a0]
mov edi, dword [ebp + 8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x10051deb
cmp dword [esp + 8], 0x1337c68
jne 0x10051deb
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0x98]
mov dword [esp + 0x98], ecx
lea ecx, [esp + 0x190]
push 0xa
push 0x5081b80
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10051d05
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, ebx
movzx edi, ch
shl esi, 4
or edi, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x10051d26
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10051ce0
cmp dword [esp + 0x190], 0
je 0x10052306
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x2cb
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x100523ae
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x100523b7
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm0, xmmword [esp + 0x20]
movlps qword [esp], xmm0
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
movdqu xmm0, xmmword [esp]
mov edi, dword [ebp + 8]
movd eax, xmm0
test eax, eax
je 0x10051deb
mov eax, dword [esp + 0x3c]
movups xmmword [esp + 0x190], xmm0
mov edx, 0x50841bd
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 8
call fcn.1005cbb0
add esp, 8
mov eax, dword [edi]
mov edx, dword [eax + 0x12c]
mov ecx, dword [eax + 0x128]
push 5
push 0x50818ac
call fcn.10032ad0
add esp, 8
cmp ax, 1
jne 0x10052af8
mov eax, dword [edi]
mov esi, dword [eax + 8]
mov ebx, dword [eax + 0x14c]
mov edi, dword [eax + 0xc]
mov ecx, esi
add ecx, ebx
mov dword [esp + 0x110], ecx
mov ecx, edi
adc ecx, 0
mov dword [esp + 0x130], ecx
movzx ecx, dx
mov edx, dword [eax + 0x12c]
cmp edx, ecx
jbe 0x1005820f
mov eax, dword [eax + 0x128]
lea ecx, [ecx + ecx*4]
mov dword [esp + 0xac], esi
mov dword [esp + 0xa8], edi
mov edx, dword [eax + ecx*8 + 0xc]
add esi, edx
adc edi, 0
cmp ebx, edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x70], edi
jbe 0x10051e7e
cmp dword [eax + ecx*8 + 0x10], 0x1000
jae 0x10051ed6
mov edi, dword [ebp + 8]
lea ecx, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
nop word cs:[eax + eax]
nop dword [eax]
movzx ebx, byte [ecx]
mov ecx, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x10051ebe
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1005c879
lea edx, [ecx + 1]
test eax, eax
cmove edx, ecx
je 0x10052af8
inc eax
test ecx, ecx
jne 0x10051ea0
jmp 0x10052af8
mov edi, dword [ebp + 0xc]
xor eax, eax
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x124], ebx
inc ecx
mov dword [esp + 0x60], eax
add eax, dword [esp + 0x20]
mov dword [esp + 0xb0], esi
mov edx, dword [edi]
mov dword [esp + 0x100], ecx
lea ecx, [esp + 0x190]
adc esi, dword [esp + 0x70]
push 1
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10033e30
add esp, 0x14
mov eax, 0xfffffff9
lea edi, [0x508155e]
xor edx, edx
xor ecx, ecx
lea esi, [0x508155d]
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ebx, byte [esi]
mov esi, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x10051f65
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005c879
add bl, 0xa9
mov bh, bl
mov edi, edx
movzx ebx, bh
shl edi, 4
or ebx, edi
lea edi, [esi + 1]
test eax, eax
cmove edi, esi
je 0x10051f84
shld ecx, edx, 4
inc eax
test esi, esi
mov edx, ebx
jne 0x10051f40
mov eax, dword [esp + 0x190]
mov ecx, dword [esp + 0x194]
test eax, eax
mov dword [esp + 0xc0], ecx
jne 0x10052595
lea eax, [ecx - 0x10000000]
cmp eax, 0xefffffff
jae 0x10052495
mov eax, dword [esp + 0x60]
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0xb0]
lea ecx, [esp + 0x190]
or eax, 4
mov edx, dword [edi]
add eax, dword [esp + 0x20]
adc esi, dword [esp + 0x70]
push 1
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10033e30
add esp, 0x14
xor ecx, ecx
mov eax, 0xfffffff9
lea edi, [0x508155e]
xor edx, edx
lea esi, [0x508155d]
nop dword [eax + eax]
movzx ebx, byte [esi]
mov esi, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x10052025
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005c879
add bl, 0xa9
mov bh, bl
mov edi, ecx
movzx ebx, bh
shl edi, 4
or ebx, edi
lea edi, [esi + 1]
test eax, eax
cmove edi, esi
je 0x10052044
shld edx, ecx, 4
inc eax
test esi, esi
mov ecx, ebx
jne 0x10052000
mov eax, dword [esp + 0x190]
mov ecx, dword [esp + 0x194]
test eax, eax
jne 0x100525f1
lea eax, [ecx - 0x10000000]
cmp eax, 0xefffffff
mov eax, dword [esp + 0xc0]
jae 0x10052495
mov edi, dword [ebp + 0xc]
xor ecx, eax
cmp ecx, 0x68
jb 0x100524a9
cmp dword [esp + 0x124], ecx
jbe 0x100524a9
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0xb0]
mov edx, dword [edi]
mov dword [esp + 0xc0], ecx
lea ecx, [esp + 0x190]
add eax, dword [esp + 0x20]
adc esi, dword [esp + 0x70]
add eax, 0x60
adc esi, 0
push 1
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.100341e0
add esp, 0x14
xor ecx, ecx
mov eax, 0xfffffff9
lea esi, [0x508155e]
xor edx, edx
lea edi, [0x508155d]
nop dword [eax]
movzx ebx, byte [edi]
mov edi, esi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x10052105
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005c879
add bl, 0xa9
mov bh, bl
mov esi, ecx
movzx ebx, bh
shl esi, 4
or ebx, esi
lea esi, [edi + 1]
test eax, eax
cmove esi, edi
je 0x10052124
shld edx, ecx, 4
inc eax
test edi, edi
mov ecx, ebx
jne 0x100520e0
mov eax, dword [esp + 0x190]
test eax, eax
je 0x10052197
movsd xmm0, qword [esp + 0x194]
mov esi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x80], xmm0
movaps xmmword [esp + 0x11a0], xmm0
mov dword [esp + 0x84], esi
push 4
push 8
push 0x5086800
lea ecx, [esp + 0x4c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
mov edi, dword [ebp + 0xc]
je 0x100521b1
lea ecx, [esp + 0x80]
call fcn.10004080
xor edx, edx
jmp 0x100521c7
mov ebx, dword [esp + 0x198]
mov edx, dword [esp + 0x19c]
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 0xa8]
jmp 0x100521e5
movdqa xmm0, xmmword [esp + 0x11a0]
mov edx, dword [esp + 0x44]
movd eax, xmm0
mov dword [edx], eax
mov dword [edx + 4], esi
movq xmm0, qword [esp]
mov ecx, dword [esp + 0xa8]
xor ebx, 0x30d
movd eax, xmm0
test eax, eax
jne 0x10052809
add ebx, dword [esp + 0xc0]
mov eax, 0xffffffff
adc edx, 0
cmovb ebx, eax
cmovb edx, eax
cmp ebx, dword [esp + 0xac]
mov eax, edx
sbb eax, ecx
jb 0x100524a9
cmp ebx, dword [esp + 0x110]
sbb edx, dword [esp + 0x130]
jae 0x100524a9
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0xb0]
mov ecx, dword [esp + 0x100]
add eax, 0x68
adc esi, 0
cmp ecx, 3
jne 0x10051ee6
mov ecx, 0x508155c
mov edx, 0x323
call fcn.10007f70
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x5081c4c
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0xcaa27b2b
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c7a
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x10052af5
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x10052af5
pshufd xmm0, xmm0, 0x55
movd eax, xmm0
cmp dword [eax + 0x34], 0
jne 0x10051796
xor ecx, ecx
xor edx, edx
push 0x50818b8
call fcn.10004a00
add esp, 4
ud2
mov eax, dword [esp + 0x198]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x19c]
je 0x10051deb
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x5081c48
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0xd5bd7431
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c79
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x10051deb
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x10051deb
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm2, xmmword [esp + 0x20]
movd xmm1, eax
movlps qword [esp], xmm2
mov dword [esp + 8], edi
movsd xmm0, qword [esp + 4]
shufps xmm1, xmm0, 0xd4
unpcklps xmm0, xmm2
shufps xmm0, xmm1, 0x21
mov edi, dword [ebp + 8]
movd eax, xmm0
test eax, eax
jne 0x10051dc5
jmp 0x10051deb
mov eax, dword [esp + 0x198]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x19c]
je 0x10051931
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x5081a48
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0x46ad7733
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c77
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x10051931
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x10051931
mov ecx, 0x508155c
mov edx, 0x323
call fcn.10007f70
jmp 0x10052af5
mov edi, dword [ebp + 8]
lea ecx, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
nop dword [eax]
movzx ebx, byte [ecx]
mov ecx, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x100524de
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1005c879
lea edx, [ecx + 1]
test eax, eax
cmove edx, ecx
je 0x10052af8
inc eax
test ecx, ecx
jne 0x100524c0
jmp 0x10052af8
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movdqa xmm0, xmmword [esp + 0x20]
movq qword [esp], xmm0
mov dword [esp + 8], edi
mov edi, dword [ebp + 8]
movd ecx, xmm0
test ecx, ecx
je 0x10051931
movq xmm0, qword [esp + 4]
jmp 0x100518fc
mov edi, dword [esp + 0x198]
mov ebx, dword [esp + 0x19c]
mov dword [esp + 0x60], eax
mov eax, dword [0x5087000]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
lea ecx, [esp + 0x4c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10052827
lea ecx, [esp + 0x80]
call fcn.10004080
mov dword [esp + 0xc0], 0
xor esi, 0x21e
jmp 0x1005283d
mov esi, dword [esp + 0x198]
mov edi, dword [esp + 0x19c]
mov dword [esp + 0x60], eax
mov eax, dword [0x5087000]
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
push 4
push 8
push 0x5086800
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp], 0
je 0x1005298f
lea ecx, [esp + 0x40]
call fcn.10004080
mov dword [esp + 0xb0], 0
xor ebx, 0x2fb
jmp 0x100529b1
mov esi, dword [esp + 0x198]
mov edi, dword [esp + 0x19c]
mov dword [esp + 0x60], eax
mov eax, dword [0x5087000]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
push 4
push 8
push 0x5086800
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp], 0
je 0x1005299b
lea ecx, [esp + 0x40]
call fcn.10004080
mov dword [esp + 0xb0], 0
xor ebx, 0x301
jmp 0x100529b1
xor esi, 0x217
pshufd xmm0, xmm0, 0x55
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x60], eax
movd dword [esp + 0xb0], xmm0
jmp 0x1005283d
mov dword [esp], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
lea ecx, [esp + 0x40]
mov edx, esp
push 4
push 0x50815a7
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
mov edx, 0x7c82936c
mov ecx, dword [eax + 0x10]
push dword [esp + 0x44]
push edi
push 0xffff1c73
call fcn.1003b900
add esp, 0xc
mov edx, dword [esp + 0x48]
mov ecx, edi
mov edi, dword [ebp + 8]
call fcn.10028ce0
mov ecx, dword [esp + 0xac]
mov esi, dword [esp + 0xc0]
mov edx, dword [esp + 0xa8]
push esi
call fcn.100373a0
add esp, 4
mov ecx, esi
call fcn.1002d9a0
pxor xmm0, xmm0
jmp 0x1004fbd2
movdqa xmm0, xmmword [esp + 0x20]
mov edi, dword [esp + 0x44]
movd eax, xmm0
mov dword [edi], eax
mov dword [edi + 4], esi
movq xmm0, qword [esp]
xor ebx, 0x1a6
pxor xmm2, xmm2
movd eax, xmm0
test eax, eax
je 0x10052745
movd xmm1, ebx
movd xmm2, edi
punpckldq xmm1, xmm2
punpcklqdq xmm0, xmm1
movdqa xmm2, xmm0
jmp 0x10050aac
cmp ebx, 0x8000
mov eax, edi
sbb eax, 0
jb 0x10050aac
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [eax + 0x12c]
sub ecx, 1
jb 0x1005b85a
mov eax, dword [eax + 0x128]
lea ecx, [ecx + ecx*4]
mov esi, edi
mov edx, dword [eax + ecx*8 + 0x10]
add edx, dword [eax + ecx*8 + 0x14]
mov ecx, ebx
xor eax, eax
sub ecx, edx
sbb esi, 0
cmovb ecx, eax
cmovb esi, eax
cmp ecx, 0x8000
sbb esi, 0
jb 0x10050aac
mov eax, dword [esp + 0xe0]
lea ecx, [esp + 0x190]
mov esi, dword [eax + 8]
mov edx, dword [esi]
push dword [ebp + 0x10]
push dword [esi + 8]
call fcn.10031c90
add esp, 8
mov ecx, 0x508155c
mov edx, 0x1b0
call fcn.10007f70
mov ecx, esp
lea edx, [esp + 0x190]
push eax
call fcn.10032c20
add esp, 4
cmp dword [esp], 0
je 0x100579af
movsd xmm0, qword [esp + 8]
movss xmm2, dword [esp + 4]
movss xmm1, dword [esp + 0x10]
unpcklps xmm2, xmm0
shufps xmm1, xmm0, 0xd4
shufps xmm2, xmm1, 0x24
jmp 0x10050aac
pshufd xmm0, xmm0, 0x55
mov dword [esp + 0xb0], edx
mov dword [esp + 0x60], eax
movd dword [esp + 0xc0], xmm0
jmp 0x100529b1
mov eax, dword [esp + 0x44]
xor esi, 0x21e
mov dword [eax], edi
mov dword [esp + 0xc0], eax
mov dword [eax + 4], ebx
xor eax, eax
lea ecx, [0x508155d]
lea edx, [0x508155e]
mov edi, 0xfffffff9
mov dword [esp + 0x70], 0
nop dword [eax + eax]
movzx ebx, byte [ecx]
mov ecx, edx
mov dword [esp + 0x20], edi
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x10052889
or bl, 0x20
mov edx, ebx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add bl, 0xa9
mov edx, ebx
mov edi, eax
movzx ebx, dl
lea edx, [ecx + 1]
shl edi, 4
or ebx, edi
mov edi, dword [esp + 0x20]
test edi, edi
cmove edx, ecx
je 0x100528ae
shld dword [esp + 0x70], eax, 4
inc edi
test ecx, ecx
mov eax, ebx
jne 0x10052860
movss xmm0, dword [esp + 0xb0]
movss xmm1, dword [esp + 0x60]
mov edi, dword [esp + 0xc0]
mov eax, dword [0x5087000]
xor ebx, 0x237
mov dword [esp], esi
unpcklps xmm1, xmm0
mov dword [esp + 4], edi
movaps xmmword [esp + 0x20], xmm1
push 4
push 8
push 0x5086800
lea ecx, [esp + 0x19c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x190], 0
je 0x1005290a
mov ecx, esp
call fcn.10004080
xor eax, eax
jmp 0x10052916
mov eax, dword [esp + 0x194]
mov dword [eax], esi
mov dword [eax + 4], edi
movaps xmm0, xmmword [esp + 0x20]
mov edi, dword [ebp + 8]
mov edx, 0x50841a6
movlps qword [esp + 0x98], xmm0
movzx ecx, word [esp + 0x9d]
mov word [esp + 0x195], cx
movzx ecx, byte [esp + 0x9f]
mov byte [esp + 0x197], cl
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x190], ecx
mov ecx, dword [esp + 0xb0]
mov byte [esp + 0x194], cl
mov dword [esp + 0x198], ebx
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 7
call fcn.1005cbb0
add esp, 8
jmp 0x10051113
mov eax, dword [esp + 4]
xor ebx, 0x2fb
jmp 0x100529a5
mov eax, dword [esp + 4]
xor ebx, 0x301
mov dword [eax], esi
mov dword [esp + 0xb0], eax
mov dword [eax + 4], edi
xor esi, esi
lea ecx, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x70], 0
nop dword [eax]
movzx ecx, byte [ecx]
mov dword [esp + 0x20], edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x100529f7
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, esi
movzx edi, dl
shl ecx, 4
or edi, ecx
mov ecx, dword [esp + 0x20]
test eax, eax
lea edx, [ecx + 1]
cmove edx, ecx
je 0x10052a1c
shld dword [esp + 0x70], esi, 4
inc eax
test ecx, ecx
mov esi, edi
jne 0x100529d0
movss xmm0, dword [esp + 0xc0]
movss xmm1, dword [esp + 0x60]
mov esi, dword [esp + 0xb0]
mov eax, dword [0x5087000]
xor edi, 0x323
mov dword [esp], ebx
unpcklps xmm1, xmm0
mov dword [esp + 4], esi
movaps xmmword [esp + 0x20], xmm1
push 4
push 8
push 0x5086800
lea ecx, [esp + 0x19c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x190], 0
je 0x10052a78
mov ecx, esp
call fcn.10004080
xor eax, eax
jmp 0x10052a84
mov eax, dword [esp + 0x194]
mov dword [eax], ebx
mov dword [eax + 4], esi
movaps xmm0, xmmword [esp + 0x20]
mov edx, 0x50841c5
movlps qword [esp + 0x98], xmm0
movzx ecx, word [esp + 0x9d]
mov word [esp + 0x195], cx
movzx ecx, byte [esp + 0x9f]
mov byte [esp + 0x197], cl
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x190], ecx
mov ecx, dword [esp + 0xc0]
mov byte [esp + 0x194], cl
mov dword [esp + 0x198], edi
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 8
call fcn.1005cbb0
add esp, 8
mov edi, dword [ebp + 8]
lea edx, [esp + 0x140]
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
push edi
call fcn.10002580
add esp, 8
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop dword [eax]
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10052b55
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x10052b76
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10052b30
cmp dword [esp + 0x190], 0
je 0x10052be7
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x335
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10052d3b
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x10052d44
movsd xmm0, qword [esp + 0x198]
movsd xmm1, qword [esp + 0x1a0]
mov edi, dword [ebp + 8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x10052d8b
cmp dword [esp + 8], 0x7e3
jne 0x10052d8b
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0x98]
mov dword [esp + 0x98], ecx
lea ecx, [esp + 0x190]
push 6
push 0x5081cc0
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10052ca5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, ebx
movzx edi, ch
shl esi, 4
or edi, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x10052cc6
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10052c80
cmp dword [esp + 0x190], 0
je 0x10053427
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x34d
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x100534cf
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x100534d8
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm0, xmmword [esp + 0x20]
movlps qword [esp], xmm0
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
movdqu xmm0, xmmword [esp]
mov edi, dword [ebp + 8]
movd eax, xmm0
test eax, eax
je 0x10052d8b
mov eax, dword [esp + 0x3c]
movups xmmword [esp + 0x190], xmm0
mov edx, 0x50841cd
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 8
call fcn.1005cbb0
add esp, 8
cmp dword [esp + 0x170], 0x63
ja 0x1005302b
lea edx, [esp + 0x140]
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
push edi
call fcn.10002580
add esp, 8
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10052df5
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x10052e16
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10052dd0
cmp dword [esp + 0x190], 0
je 0x10052e87
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x365
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10052fdb
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x10052fe4
movsd xmm0, qword [esp + 0x198]
movsd xmm1, qword [esp + 0x1a0]
mov edi, dword [ebp + 8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x1005302b
cmp dword [esp + 8], 0x7e3
jne 0x1005302b
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0x98]
mov dword [esp + 0x98], ecx
lea ecx, [esp + 0x190]
push 8
push 0x5081da0
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10052f45
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, ebx
movzx edi, ch
shl esi, 4
or edi, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x10052f66
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10052f20
cmp dword [esp + 0x190], 0
je 0x100535e2
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x37f
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x100562f2
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x100562fb
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm0, xmmword [esp + 0x20]
movlps qword [esp], xmm0
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
movdqu xmm0, xmmword [esp]
mov edi, dword [ebp + 8]
movd eax, xmm0
test eax, eax
je 0x1005302b
mov eax, dword [esp + 0x3c]
movups xmmword [esp + 0x190], xmm0
mov edx, 0x50841d5
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 8
call fcn.1005cbb0
add esp, 8
mov eax, dword [edi]
mov ecx, 0xfffffe00
add ecx, dword [eax + 0x2c]
cmp ecx, 0x7fdff
ja 0x1005373b
mov edx, edi
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
call fcn.1006b1e0
add esp, 4
xor esi, esi
lea edx, [0x508155d]
lea ebx, [0x508155e]
mov eax, 0xfffffff9
xor edi, edi
nop word [eax + eax]
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10053095
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov ebx, esi
movzx ecx, ch
shl ebx, 4
or ecx, ebx
lea ebx, [edx + 1]
test eax, eax
cmove ebx, edx
je 0x100530b4
shld edi, esi, 4
inc eax
test edx, edx
mov esi, ecx
jne 0x10053070
mov eax, dword [esp + 0x190]
test eax, eax
je 0x10053131
movsd xmm0, qword [esp + 0x194]
mov edi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
xor ecx, 0x395
mov dword [esp + 0x70], ecx
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x98], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x9c], edi
push 4
push 8
push 0x5086800
lea ecx, [esp + 0x8c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
je 0x10053145
lea ecx, [esp + 0x98]
call fcn.10004080
xor ebx, ebx
jmp 0x1005315b
mov eax, dword [esp + 0x198]
mov edi, dword [esp + 0x194]
mov dword [esp + 0x70], eax
jmp 0x1005318d
movdqa xmm0, xmmword [esp + 0x20]
mov ebx, dword [esp + 0x84]
movd eax, xmm0
mov dword [ebx], eax
mov dword [ebx + 4], edi
movq xmm0, qword [esp]
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x70]
movd ecx, xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], eax
test ecx, ecx
je 0x10053184
movsd xmm0, qword [esp + 0x44]
jmp 0x10053707
pshufd xmm0, xmm0, 0x55
movd edi, xmm0
mov ecx, 0x5081e44
mov edx, 0x1c
call 0x1006d230
mov ecx, dword [edi + 0x20]
mov ebx, dword [edi + 0x1c]
mov dword [esp + 0x190], 4
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov dword [esp + 0xb0], 0
test ecx, ecx
je 0x100532b0
imul edi, ecx, 0x2c
xor edx, edx
mov dword [esp + 0x60], 4
mov dword [esp + 0x20], 0
add edi, ebx
add ebx, 0x2c
jmp 0x1005320b
cmp ebx, edi
lea ebx, [ebx + 0x2c]
je 0x100532c2
cmp dword [ebx - 0x1c], 0
jne 0x10053200
cmp eax, dword [ebx - 0x18]
jne 0x10053200
mov ecx, dword [ebx - 8]
mov esi, 0xfffffe00
add ecx, esi
cmp ecx, 0x7fe00
jae 0x10053200
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xc0], eax
inc ecx
je 0x1005ca96
cmp ecx, dword [esp + 0x198]
jbe 0x10053278
mov esi, ecx
call fcn.100032d0
mov edx, esi
lea ecx, [esp + 0x190]
cmp eax, esi
jbe 0x1005326b
mov edx, eax
call fcn.10027770
mov edx, esi
lea ecx, [esp + 0x190]
cmp al, 8
je 0x10053278
call fcn.10027770
cmp al, 8
jne 0x1005caae
mov ecx, dword [esp + 0x190]
mov edx, dword [esp + 0x194]
lea eax, [ebx - 0x2c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0xc0]
inc edx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x194], edx
mov dword [esp + 0x20], edx
shr edx, 8
cmp ebx, edi
jne 0x100531ed
jmp 0x100532c2
mov dword [esp + 0x60], 4
xor edx, edx
mov dword [esp + 0x20], 0
movzx eax, byte [esp + 0x20]
mov ecx, dword [esp + 0x198]
shl edx, 8
or eax, edx
mov dword [esp + 0xc0], ecx
je 0x10053416
mov esi, dword [esp + 0x60]
mov edi, dword [ebp + 8]
mov eax, dword [esi]
mov ecx, dword [edi]
mov eax, dword [eax + 0x20]
cmp dword [ecx + 0x14c], eax
jbe 0x10053422
mov esi, dword [ecx + 0xc]
add eax, dword [ecx + 8]
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x98]
adc esi, 0
mov dword [esp + 0x98], ecx
lea ecx, [esp + 0x190]
push 2
push 0x5081e74
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop dword [eax + eax]
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10053375
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x10053396
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10053350
cmp dword [esp + 0x190], 0
je 0x1005350e
mov ebx, dword [esp + 0x19c]
mov eax, dword [esp + 0x1a0]
movsd xmm0, qword [esp + 0x194]
xor edi, 0x3ac
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], ebx
mov dword [esp + 0xb0], eax
mov dword [esp + 0x84], eax
mov eax, dword [0x5087000]
movaps xmmword [esp + 0x20], xmm0
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
mov esi, dword [esp + 0x60]
je 0x1005368a
lea ecx, [esp + 0x80]
call fcn.10004080
xor ebx, ebx
jmp 0x1005369c
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x60]
jmp 0x100536c0
jmp 0x100536c0
mov eax, dword [esp + 0x198]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x19c]
je 0x10052d8b
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x5081d38
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0x41f68039
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c7b
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x10052d8b
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x10052d8b
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm2, xmmword [esp + 0x20]
movd xmm1, eax
movlps qword [esp], xmm2
mov dword [esp + 8], edi
movsd xmm0, qword [esp + 4]
shufps xmm1, xmm0, 0xd4
unpcklps xmm0, xmm2
shufps xmm0, xmm1, 0x21
mov edi, dword [ebp + 8]
movd eax, xmm0
test eax, eax
jne 0x10052d65
jmp 0x10052d8b
mov eax, dword [esp + 0x198]
mov esi, dword [esp + 0x60]
or eax, dword [esp + 0x19c]
je 0x100535ae
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x5081e9c
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov edi, dword [esp]
mov edx, 0x6871a1e5
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push edi
push 0xffff1c7d
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x100535ae
mov ecx, dword [0x5087000]
push edx
push eax
push edi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
mov edx, 4
mov ecx, 4
push dword [esp + 0xc0]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1005650f
mov edi, dword [ebp + 8]
mov dword [esp + 0xb0], 0
jmp 0x100536dd
mov eax, dword [esp + 0x198]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x19c]
je 0x1005302b
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x5081e40
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0x162d86a9
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c7c
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1005302b
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x1005302b
mov eax, ebx
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0xb0]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
movaps xmm0, xmmword [esp + 0x20]
movlps qword [esp], xmm0
mov dword [esp + 8], edi
movss dword [esp + 0xb0], xmm0
mov edi, dword [ebp + 8]
movsd xmm0, qword [esp + 4]
movaps xmmword [esp + 0x20], xmm0
mov edx, 4
mov ecx, 4
push dword [esp + 0xc0]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x100536f1
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0xb0]
movaps xmm0, xmmword [esp + 0x20]
dec dword [eax]
test ecx, ecx
je 0x1005373b
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x190], ecx
movlps qword [esp + 0x194], xmm0
mov dword [esp + 0x19c], ebx
mov edx, 0x50841dd
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 8
call fcn.1005cbb0
add esp, 8
mov eax, dword [edi]
cmp word [eax + 0x122], 3
jne 0x10053983
mov edx, dword [eax + 0x12c]
cmp edx, 2
jb 0x1005821e
mov ecx, dword [eax + 0x128]
mov edx, 0xfffff800
add edx, dword [ecx + 0x38]
cmp edx, 0x480
jae 0x10053983
mov esi, dword [ecx + 0x34]
cmp dword [eax + 0x14c], esi
jbe 0x10053983
mov edi, dword [eax + 0xc]
add esi, dword [eax + 8]
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x80]
lea ecx, [esp + 0x190]
adc edi, 0
mov dword [esp + 0x80], eax
push 8
push 0x5081f24
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
push esi
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10053805
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x10053826
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x100537e0
cmp dword [esp + 0x190], 0
je 0x10053887
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
mov dword [esp + 0x40], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x44], ebx
push 4
push 8
push 0x5086800
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp], 0
je 0x10053925
lea ecx, [esp + 0x40]
call fcn.10004080
xor eax, eax
jmp 0x1005392e
mov eax, dword [esp + 0x198]
or eax, dword [esp + 0x19c]
je 0x10053983
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x5081fc4
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0x6155e719
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c7e
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x10053983
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x10053983
mov eax, dword [esp + 4]
mov dword [eax], esi
mov dword [eax + 4], ebx
movdqa xmm0, xmmword [esp + 0x20]
movd ecx, xmm0
test ecx, ecx
je 0x10053983
xor edi, 0x3de
pshufd xmm0, xmm0, 0x55
mov dword [esp + 0x190], ecx
mov edx, 0x50841e5
mov dword [esp + 0x198], edi
movd dword [esp + 0x194], xmm0
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 8
call fcn.1005cbb0
add esp, 8
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edi, dword [ecx + 0xcc]
test edi, edi
je 0x10053ac1
mov eax, dword [ecx + 0xc]
add edi, dword [ecx + 8]
adc eax, 0
test byte [ecx + 0x127], 0x20
je 0x10053ac1
mov ebx, dword [ebp + 0xc]
mov ecx, dword [0x507d5f0]
mov word [esp + 0x84], 0xc300
mov word [esp + 0x44], 0
mov dword [esp + 0x40], 0
lea esi, [esp + 0x40]
mov edx, dword [ebx]
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x190]
push 5
push 6
push esi
push eax
push edi
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.10032d70
add esp, 0x1c
mov eax, dword [esp + 0x190]
test eax, eax
je 0x10053a53
mov ecx, dword [esp + 0x194]
mov esi, dword [esp + 0x198]
mov edx, dword [esp + 0x19c]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x194], ecx
mov dword [esp + 0x19c], edx
mov dword [esp + 0x198], esi
mov edx, 0x50841ed
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 3
call fcn.1005cbb0
add esp, 8
jmp 0x10053ac1
mov ecx, dword [esp + 0x194]
cmp ecx, 7
jae 0x1005ca82
cmp ecx, 6
jne 0x10053ac1
movzx ecx, word [esp + 0x44]
mov eax, dword [esp + 0x40]
xor cx, word [esp + 0x84]
xor eax, dword [esp + 0x80]
movzx ecx, cx
or ecx, eax
jne 0x10053ac1
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
movq xmm0, qword [ecx + 0x30]
movd eax, xmm0
test eax, eax
mov dword [esp + 0xb0], eax
je 0x10053ac1
pshufd xmm0, xmm0, 0x55
movd eax, xmm0
cmp eax, 0xc
jae 0x100568ca
mov ecx, 0x50811e4
mov edx, 0x58
call fcn.10007f70
lea edx, [esp + 0x140]
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.10002580
add esp, 8
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop dword [eax + eax]
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10053b25
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x10053b46
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10053b00
cmp dword [esp + 0x190], 0
je 0x10053bb7
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x3f2
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10053cfb
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x10053d04
movsd xmm0, qword [esp + 0x198]
movsd xmm1, qword [esp + 0x1a0]
mov edi, dword [ebp + 8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 3
jne 0x10053d4c
cmp dword [esp + 8], 0xc
jne 0x10053d4c
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0x98]
mov dword [esp + 0x98], ecx
lea ecx, [esp + 0x190]
push 4
push 0x5081fe4
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10053c65
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, ebx
movzx edi, ch
shl esi, 4
or edi, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x10053c86
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10053c40
cmp dword [esp + 0x190], 0
je 0x1005433c
xor edi, 0x426
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1005440f
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x10054418
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm0, xmmword [esp + 0x20]
movlps qword [esp], xmm0
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov edi, dword [ebp + 8]
movdqu xmm2, xmmword [esp]
movd eax, xmm2
test eax, eax
je 0x10053d4c
mov eax, dword [esp + 0x3c]
movdqu xmmword [esp + 0x190], xmm2
mov edx, 0x50841f0
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 8
call fcn.1005cbb0
add esp, 8
mov ecx, dword [edi]
mov eax, dword [ecx + 0xcc]
cmp dword [ecx + 0x14c], eax
jbe 0x10053f75
mov esi, dword [ecx + 0xc]
add eax, dword [ecx + 8]
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x80]
adc esi, 0
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x190]
push 8
push 0x5082218
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10053de5
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x10053e06
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10053dc0
cmp dword [esp + 0x190], 0
je 0x10053e79
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
mov dword [esp + 0x40], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x44], ebx
push 4
push 8
push 0x5086800
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp], 0
je 0x10053f17
lea ecx, [esp + 0x40]
call fcn.10004080
xor eax, eax
movdqa xmm0, xmmword [esp + 0x20]
movd ecx, xmm0
test ecx, ecx
jne 0x10053f2e
jmp 0x10053f75
mov eax, dword [esp + 0x198]
or eax, dword [esp + 0x19c]
je 0x10053f75
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x50822b8
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0x777a59a6
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c85
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x10053f75
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x10053f75
mov eax, dword [esp + 4]
mov dword [eax], esi
mov dword [eax + 4], ebx
movdqa xmm0, xmmword [esp + 0x20]
movd ecx, xmm0
test ecx, ecx
je 0x10053f75
xor edi, 0x45a
pshufd xmm0, xmm0, 0x55
mov dword [esp + 0x190], ecx
mov edx, 0x50841f8
mov dword [esp + 0x198], edi
movd dword [esp + 0x194], xmm0
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 8
call fcn.1005cbb0
add esp, 8
mov esi, dword [ebp + 8]
mov ecx, 0xfffff000
mov edi, dword [ebp + 0xc]
mov eax, dword [esi]
and ecx, dword [eax + 0x2c]
cmp ecx, 0x12000
jne 0x100545c5
mov edx, esi
lea ecx, [esp + 0x190]
push edi
call fcn.1006b1e0
add esp, 4
xor esi, esi
lea edx, [0x508155d]
lea ebx, [0x508155e]
mov eax, 0xfffffff9
xor edi, edi
nop dword [eax + eax]
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10053fe5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov ebx, esi
movzx ecx, ch
shl ebx, 4
or ecx, ebx
lea ebx, [edx + 1]
test eax, eax
cmove ebx, edx
je 0x10054004
shld edi, esi, 4
inc eax
test edx, edx
mov esi, ecx
jne 0x10053fc0
mov eax, dword [esp + 0x190]
test eax, eax
je 0x10054081
movsd xmm0, qword [esp + 0x194]
mov edi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
xor ecx, 0x470
mov dword [esp + 0x70], ecx
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x98], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x9c], edi
push 4
push 8
push 0x5086800
lea ecx, [esp + 0x8c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
je 0x10054095
lea ecx, [esp + 0x98]
call fcn.10004080
xor ebx, ebx
jmp 0x100540ab
mov eax, dword [esp + 0x198]
mov ebx, dword [esp + 0x194]
mov dword [esp + 0x70], eax
jmp 0x100540e0
movdqa xmm0, xmmword [esp + 0x20]
mov ebx, dword [esp + 0x84]
movd eax, xmm0
mov dword [ebx], eax
mov dword [ebx + 4], edi
movq xmm0, qword [esp]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 0x70]
movd ecx, xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], eax
test ecx, ecx
je 0x100540d7
movsd xmm0, qword [esp + 0x44]
jmp 0x10054591
pshufd xmm0, xmm0, 0x55
movd ebx, xmm0
mov ecx, 0x50822bc
mov edx, 0x16
call 0x1006d230
mov ecx, dword [ebx + 0x20]
mov edi, dword [ebx + 0x1c]
mov dword [esp + 0x190], 4
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov dword [esp + 0x20], 0
test ecx, ecx
je 0x100541d9
imul ebx, ecx, 0x2c
mov edx, 4
xor esi, esi
xor ecx, ecx
add ebx, edi
jmp 0x1005414b
add edi, 0x2c
cmp edi, ebx
je 0x100541e2
cmp dword [edi], 0
je 0x10054140
cmp dword [edi + 4], 0xa
jne 0x10054140
cmp dword [edi + 0x10], 0
jne 0x10054140
cmp eax, dword [edi + 0x14]
jne 0x10054140
inc ecx
mov dword [esp + 0x60], eax
je 0x1005ca9e
cmp ecx, dword [esp + 0x198]
jbe 0x100541aa
mov esi, ecx
call fcn.100032d0
mov edx, esi
cmp eax, esi
jbe 0x10054196
lea ecx, [esp + 0x190]
mov edx, eax
call fcn.10027770
mov edx, esi
cmp al, 8
je 0x100541aa
lea ecx, [esp + 0x190]
call fcn.10027770
cmp al, 8
jne 0x1005cb13
mov edx, dword [esp + 0x190]
mov ecx, dword [esp + 0x194]
mov eax, dword [esp + 0x60]
mov dword [edx + ecx*4], edi
inc ecx
add edi, 0x2c
mov esi, ecx
mov dword [esp + 0x194], ecx
shr esi, 8
cmp edi, ebx
jne 0x1005414b
jmp 0x100541e2
mov edx, 4
xor esi, esi
xor ecx, ecx
mov ebx, dword [esp + 0x198]
mov eax, ecx
shl esi, 8
mov dword [esp + 0xb0], edx
movzx edi, al
or edi, esi
mov dword [esp + 0x60], ebx
je 0x1005432b
mov eax, dword [edx]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov eax, dword [eax + 0x20]
mov ecx, dword [esi]
cmp dword [ecx + 0x14c], eax
jbe 0x10054333
mov esi, dword [ecx + 0xc]
add eax, dword [ecx + 8]
lea edx, [esp + 0x98]
mov dword [esp + 0x98], edi
lea ecx, [esp + 0x190]
adc esi, 0
push 2
push 0x50822f4
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop dword [eax + eax]
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10054295
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x100542b6
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10054270
cmp dword [esp + 0x190], 0
je 0x10054442
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x48b
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10054514
lea ecx, [esp + 0x80]
call fcn.10004080
xor ebx, ebx
jmp 0x1005451f
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
jmp 0x10054333
mov eax, dword [esp + 0x60]
jmp 0x1005454a
mov eax, dword [esp + 0x198]
pxor xmm2, xmm2
or eax, dword [esp + 0x19c]
je 0x1005450c
mov esi, dword [esp + 0x1a4]
mov eax, dword [esp + 0x1a0]
lea edx, [esp + 0x98]
lea ecx, [esp + 0x190]
push 1
push 0x5082134
push 0xffffffffffffffff
push 0xffffffffffffffff
mov dword [esp + 0x70], esi
push esi
mov dword [esp + 0x84], eax
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop dword [eax + eax]
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x100543d5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, ebx
movzx edi, ch
shl esi, 4
or edi, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x100543f6
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x100543b0
cmp dword [esp + 0x190], 0
je 0x10056331
xor edi, 0x42c
jmp 0x10053c9a
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm1, xmmword [esp + 0x20]
movd xmm0, eax
movlps qword [esp], xmm1
mov dword [esp + 8], edi
mov edi, dword [ebp + 8]
movsd xmm2, qword [esp + 4]
shufps xmm0, xmm2, 0xd4
unpcklps xmm2, xmm1
shufps xmm2, xmm0, 0x21
jmp 0x10053d1d
mov eax, dword [esp + 0x198]
or eax, dword [esp + 0x19c]
je 0x100544de
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x508231c
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov edi, dword [esp]
mov edx, 0x998609a6
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push edi
push 0xe543
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x100544de
mov ecx, dword [0x5087000]
push edx
push eax
push edi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
mov edx, 4
mov ecx, 4
push dword [esp + 0x60]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1005652d
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x20], 0
jmp 0x10054561
mov edi, dword [ebp + 8]
jmp 0x10053d1d
mov eax, ebx
mov ebx, dword [esp + 0x44]
mov dword [ebx], esi
mov dword [ebx + 4], eax
movaps xmm0, xmmword [esp + 0x20]
mov eax, dword [esp + 0x60]
mov esi, dword [ebp + 8]
movlps qword [esp], xmm0
mov dword [esp + 8], edi
movss dword [esp + 0x20], xmm0
mov edi, dword [ebp + 0xc]
movsd xmm0, qword [esp + 4]
movaps xmmword [esp + 0xc0], xmm0
mov edx, 4
mov ecx, 4
push eax
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1005457b
mov ecx, dword [0x5087000]
push edx
push eax
push dword [esp + 0xb8]
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x20]
movaps xmm0, xmmword [esp + 0xc0]
dec dword [eax]
test ecx, ecx
je 0x100545c5
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x190], ecx
movlps qword [esp + 0x194], xmm0
mov dword [esp + 0x19c], ebx
mov edx, 0x5084200
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 8
call fcn.1005cbb0
add esp, 8
lea edx, [esp + 0x140]
lea ecx, [esp + 0x190]
push edi
push esi
call fcn.10002580
add esp, 8
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop dword [eax + eax]
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10054625
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x10054646
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10054600
cmp dword [esp + 0x190], 0
je 0x100546b7
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x49f
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1005480b
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x10054814
movq xmm0, qword [esp + 0x198]
movq xmm1, qword [esp + 0x1a0]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
movq qword [esp + 0xc], xmm1
movq qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x10054861
cmp dword [esp + 8], 0x7e3
jne 0x10054861
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0x98]
mov dword [esp + 0x98], edi
lea ecx, [esp + 0x190]
push 5
push 0x5082344
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10054775
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, ebx
movzx edi, ch
shl esi, 4
or edi, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x10054796
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10054750
cmp dword [esp + 0x190], 0
je 0x10055a72
xor edi, 0x4b2
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10055ffd
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x10056006
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movdqa xmm0, xmmword [esp + 0x20]
movq qword [esp], xmm0
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
movdqu xmm2, xmmword [esp]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
movd eax, xmm2
test eax, eax
je 0x10054861
mov eax, dword [esp + 0x3c]
movdqu xmmword [esp + 0x190], xmm2
mov edx, 0x5084208
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 8
call fcn.1005cbb0
add esp, 8
lea edx, [esp + 0x140]
lea ecx, [esp + 0x190]
push edi
push esi
call fcn.10002580
add esp, 8
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x100548c5
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x100548e6
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x100548a0
cmp dword [esp + 0x190], 0
je 0x10054957
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x4db
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10054aab
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x10054ab4
movsd xmm0, qword [esp + 0x198]
movsd xmm1, qword [esp + 0x1a0]
mov edi, dword [ebp + 8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x10054afb
cmp dword [esp + 8], 0x13418bf
jne 0x10054afb
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0x98]
mov dword [esp + 0x98], ecx
lea ecx, [esp + 0x190]
push 0xd
push 0x5082494
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10054a15
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, ebx
movzx edi, ch
shl esi, 4
or edi, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x10054a36
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x100549f0
cmp dword [esp + 0x190], 0
je 0x10055b4f
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x50e
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10056060
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x10056069
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm0, xmmword [esp + 0x20]
movlps qword [esp], xmm0
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
movdqu xmm0, xmmword [esp]
mov edi, dword [ebp + 8]
movd eax, xmm0
test eax, eax
je 0x10054afb
mov eax, dword [esp + 0x3c]
movups xmmword [esp + 0x190], xmm0
mov edx, 0x5084210
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 8
call fcn.1005cbb0
add esp, 8
lea edx, [esp + 0x140]
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
push edi
call fcn.10002580
add esp, 8
xor edi, edi
lea edx, [0x508155d]
lea ebx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10054b55
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov ebx, edi
movzx esi, ch
shl ebx, 4
or esi, ebx
lea ebx, [edx + 1]
test eax, eax
cmove ebx, edx
je 0x10054b76
shld dword [esp + 0x20], edi, 4
inc eax
test edx, edx
mov edi, esi
jne 0x10054b30
cmp dword [esp + 0x190], 0
je 0x10054be7
mov edi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor esi, 0x53a
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], edi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10054d21
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x10054d2a
movsd xmm0, qword [esp + 0x198]
movq xmm1, qword [esp + 0x1a0]
mov edi, dword [ebp + 8]
movq qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 3
jne 0x10054d6f
cmp dword [esp + 8], 0x7a
jne 0x10054d6f
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0xe0]
mov dword [esp + 0xe0], ecx
lea ecx, [esp + 0x190]
push 8
push 0x50825bc
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor edi, edi
lea edx, [0x508155d]
lea ebx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10054c95
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov ebx, edi
movzx esi, ch
shl ebx, 4
or esi, ebx
lea ebx, [edx + 1]
test eax, eax
cmove ebx, edx
je 0x10054cb6
shld dword [esp + 0x20], edi, 4
inc eax
test edx, edx
mov edi, esi
jne 0x10054c70
cmp dword [esp + 0x190], 0
je 0x10055bf7
mov edi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor esi, 0x54d
mov dword [esp + 0x40], edi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x44], ebx
push 4
push 8
push 0x5086800
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp], 0
je 0x1005609f
lea ecx, [esp + 0x40]
call fcn.10004080
xor eax, eax
jmp 0x100560a8
mov eax, dword [esp + 0x44]
mov dword [eax], edi
mov dword [eax + 4], ebx
movaps xmm0, xmmword [esp + 0x20]
movlps qword [esp], xmm0
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov ecx, dword [esp]
mov edi, dword [ebp + 8]
test ecx, ecx
je 0x10054d6f
mov eax, dword [esp + 0x3c]
movaps xmm0, xmmword [esp]
mov edx, 0x5084218
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
movups xmmword [esp + 0x190], xmm0
push eax
push 8
call fcn.1005cbb0
add esp, 8
lea edx, [esp + 0x140]
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
push edi
call fcn.10002580
add esp, 8
xor ebx, ebx
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10054dd5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, ebx
movzx edi, ch
shl esi, 4
or edi, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x10054df6
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10054db0
cmp dword [esp + 0x190], 0
je 0x10054e67
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x570
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10054fb1
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x10054fba
movsd xmm0, qword [esp + 0x198]
movq xmm1, qword [esp + 0x1a0]
mov edi, dword [ebp + 8]
movq qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x10054fff
cmp dword [esp + 8], 0x7e3
jne 0x10054fff
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0xe0]
mov dword [esp + 0xe0], ecx
lea ecx, [esp + 0x190]
push 4
push 0x5082678
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10054f25
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, ebx
movzx edi, ch
shl esi, 4
or edi, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x10054f46
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10054f00
cmp dword [esp + 0x190], 0
je 0x10055d37
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x57f
mov dword [esp + 0x40], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x44], ebx
push 4
push 8
push 0x5086800
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp], 0
je 0x100560c7
lea ecx, [esp + 0x40]
call fcn.10004080
xor eax, eax
jmp 0x100560d0
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm0, xmmword [esp + 0x20]
movlps qword [esp], xmm0
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov ebx, dword [esp]
mov edi, dword [ebp + 8]
test ebx, ebx
je 0x10054fff
mov eax, dword [esp + 0x3c]
movaps xmm0, xmmword [esp]
mov edx, 0x5084220
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
movups xmmword [esp + 0x190], xmm0
push eax
push 8
call fcn.1005cbb0
add esp, 8
lea edx, [esp + 0x140]
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
push edi
call fcn.10002580
add esp, 8
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10055065
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x10055086
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10055040
cmp dword [esp + 0x190], 0
je 0x100550f7
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x595
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1005524b
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x10055254
movsd xmm0, qword [esp + 0x198]
movq xmm1, qword [esp + 0x1a0]
mov edi, dword [ebp + 8]
movq qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x1005529c
cmp dword [esp + 8], 0x13418bf
jne 0x1005529c
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0x98]
mov dword [esp + 0x98], ecx
lea ecx, [esp + 0x190]
push 3
push 0x50826e0
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x100551b5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, ebx
movzx edi, ch
shl esi, 4
or edi, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x100551d6
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10055190
cmp dword [esp + 0x190], 0
je 0x10055e61
xor edi, 0x5bb
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1005602d
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x10056036
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm0, xmmword [esp + 0x20]
movlps qword [esp], xmm0
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov edi, dword [ebp + 8]
movdqu xmm2, xmmword [esp]
movd eax, xmm2
test eax, eax
je 0x1005529c
mov eax, dword [esp + 0x3c]
movdqu xmmword [esp + 0x190], xmm2
mov edx, 0x5084228
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 8
call fcn.1005cbb0
add esp, 8
lea edx, [esp + 0x140]
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
push edi
call fcn.10002580
add esp, 8
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10055305
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x10055326
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x100552e0
cmp dword [esp + 0x190], 0
je 0x10055397
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x5dd
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x100554eb
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x100554f4
movsd xmm0, qword [esp + 0x198]
movsd xmm1, qword [esp + 0x1a0]
mov edi, dword [ebp + 8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x1005553b
cmp dword [esp + 8], 0x134890d
jne 0x1005553b
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0x98]
mov dword [esp + 0x98], ecx
lea ecx, [esp + 0x190]
push 6
push 0x5082854
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10055455
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, ebx
movzx edi, ch
shl esi, 4
or edi, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x10055476
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10055430
cmp dword [esp + 0x190], 0
je 0x10055f2f
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x5f6
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x100560f7
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x10056100
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm0, xmmword [esp + 0x20]
movlps qword [esp], xmm0
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
movdqu xmm0, xmmword [esp]
mov edi, dword [ebp + 8]
movd eax, xmm0
test eax, eax
je 0x1005553b
mov eax, dword [esp + 0x3c]
movups xmmword [esp + 0x190], xmm0
mov edx, 0x5084230
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 8
call fcn.1005cbb0
add esp, 8
lea edx, [esp + 0x140]
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
push edi
call fcn.10002580
add esp, 8
xor edi, edi
lea edx, [0x508155d]
lea ebx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10055595
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov ebx, edi
movzx esi, ch
shl ebx, 4
or esi, ebx
lea ebx, [edx + 1]
test eax, eax
cmove ebx, edx
je 0x100555b6
shld dword [esp + 0x20], edi, 4
inc eax
test edx, edx
mov edi, esi
jne 0x10055570
cmp dword [esp + 0x190], 0
je 0x10055627
mov edi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor esi, 0x60a
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], edi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1005578c
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x10055795
movq xmm0, qword [esp + 0x198]
movq xmm1, qword [esp + 0x1a0]
mov edi, dword [ebp + 8]
movq qword [esp + 0xc], xmm1
movq qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x100557e8
cmp dword [esp + 8], 0x7e3
jne 0x100557e8
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 0xb0], eax
add eax, 0x1000
mov edx, ecx
mov dword [esp + 0xc0], ecx
lea ecx, [esp + 0x190]
adc edx, 0
mov dword [esp + 0x100], eax
mov dword [esp + 0xa8], edx
mov edx, edi
push dword [ebp + 0xc]
call fcn.100693f0
add esp, 4
xor edi, edi
lea edx, [0x508155d]
lea ebx, [0x508155e]
mov eax, 0xfffffff9
xor esi, esi
nop dword [eax + eax]
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x100556e5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov ebx, edi
movzx ecx, ch
shl ebx, 4
or ecx, ebx
lea ebx, [edx + 1]
test eax, eax
cmove ebx, edx
je 0x10055704
shld esi, edi, 4
inc eax
test edx, edx
mov edi, ecx
jne 0x100556c0
mov eax, dword [esp + 0x190]
test eax, eax
je 0x10055fd7
movsd xmm0, qword [esp + 0x194]
mov esi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
xor ecx, 0x611
mov dword [esp + 0x70], ecx
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x98], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x9c], esi
push 4
push 8
push 0x5086800
lea ecx, [esp + 0x8c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
je 0x10056136
lea ecx, [esp + 0x98]
call fcn.10004080
xor eax, eax
jmp 0x1005614c
mov eax, dword [esp + 0x44]
mov dword [eax], edi
mov dword [eax + 4], ebx
movaps xmm0, xmmword [esp + 0x20]
movlps qword [esp], xmm0
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
movdqu xmm0, xmmword [esp]
mov esi, dword [esp]
movdqa xmmword [esp + 0x40], xmm0
mov edi, dword [ebp + 8]
test esi, esi
je 0x100557e8
mov eax, dword [esp + 0x3c]
movdqa xmm0, xmmword [esp + 0x40]
mov edx, 0x5084238
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
movdqu xmmword [esp + 0x190], xmm0
push eax
push 8
call fcn.1005cbb0
add esp, 8
lea ecx, [esp + 0x190]
mov edx, edi
push dword [ebp + 0xc]
call fcn.100693f0
add esp, 4
xor ecx, ecx
lea edx, [0x508155d]
lea edi, [0x508155e]
mov eax, 0xfffffff9
xor esi, esi
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ebx, byte [edx]
mov edx, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x10055845
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005c879
add bl, 0xa9
mov bh, bl
mov edi, ecx
movzx ebx, bh
shl edi, 4
or ebx, edi
lea edi, [edx + 1]
test eax, eax
cmove edi, edx
je 0x10055864
shld esi, ecx, 4
inc eax
test edx, edx
mov ecx, ebx
jne 0x10055820
mov eax, dword [esp + 0x190]
test eax, eax
je 0x100558dd
movsd xmm0, qword [esp + 0x194]
mov esi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
xor ebx, 0x674
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x98], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x9c], esi
push 4
push 8
push 0x5086800
lea ecx, [esp + 0x8c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
je 0x100558ff
lea ecx, [esp + 0x98]
call fcn.10004080
xor eax, eax
jmp 0x10055915
mov eax, dword [esp + 0x194]
mov ebx, dword [esp + 0x198]
mov ecx, dword [eax + 0x10]
test ecx, ecx
mov dword [esp + 0x60], ecx
jne 0x10055984
jmp 0x100570f6
movdqa xmm0, xmmword [esp + 0x20]
mov eax, dword [esp + 0x84]
movd ecx, xmm0
mov dword [eax], ecx
mov dword [eax + 4], esi
movq xmm0, qword [esp]
movd edi, xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], ebx
test edi, edi
je 0x1005596c
movq xmm0, qword [esp + 0x44]
mov dword [esp + 0x190], edi
movq qword [esp + 0x194], xmm0
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x3c]
mov edx, 0x5084240
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
push eax
push 8
call fcn.1005cbb0
add esp, 8
jmp 0x100570f8
pshufd xmm0, xmm0, 0x55
movd eax, xmm0
mov ecx, dword [eax + 0x10]
test ecx, ecx
mov dword [esp + 0x60], ecx
je 0x100570f6
mov edx, dword [esp + 0x60]
mov eax, dword [eax + 0xc]
xor ecx, ecx
mov esi, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x70], edx
jmp 0x100559ac
mov dword [esp + 0x70], esi
sub esi, ecx
jbe 0x100570f6
shr esi, 1
mov edi, dword [esp + 0x20]
xor edx, edx
add esi, ecx
mov eax, esi
shl eax, 4
cmp dword [edi + eax + 0xc], 0x9a89af34
mov edi, 0xff
setne dl
cmovb edx, edi
cmp dl, 1
je 0x100559a0
movzx ecx, dl
cmp ecx, 0xff
jne 0x100559ee
inc esi
mov ecx, esi
mov esi, dword [esp + 0x70]
sub esi, ecx
ja 0x100559ac
jmp 0x100570f6
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + eax + 4]
test edx, edx
je 0x100570f6
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xb0], edx
mov eax, dword [ecx + eax]
xor ecx, ecx
mov dword [esp + 0x70], eax
mov edi, dword [esp + 0x70]
jmp 0x10055a2f
mov dword [esp + 0xb0], edx
sub edx, ecx
jbe 0x100570f6
shr edx, 1
xor eax, eax
add edx, ecx
mov esi, edx
shl esi, 4
cmp dword [edi + esi + 0xc], 0x4c31fa8c
mov esi, 0xff
setne al
cmovb eax, esi
cmp al, 1
je 0x10055a20
movzx eax, al
cmp eax, 0xff
jne 0x100561fc
inc edx
mov ecx, edx
mov edx, dword [esp + 0xb0]
sub edx, ecx
ja 0x10055a2f
jmp 0x100570f6
mov eax, dword [esp + 0x198]
pxor xmm2, xmm2
or eax, dword [esp + 0x19c]
je 0x1005482c
mov eax, dword [esp + 0x1a0]
mov esi, dword [esp + 0x1a4]
lea edx, [esp + 0x98]
lea ecx, [esp + 0x190]
mov dword [esp + 0x70], eax
add eax, 8
mov dword [esp + 0x60], esi
adc esi, 0
push 1
push 0x50823a8
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10055b15
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, ebx
movzx edi, ch
shl esi, 4
or edi, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x10055b36
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10055af0
cmp dword [esp + 0x190], 0
je 0x100563c2
xor edi, 0x4ba
jmp 0x100547aa
mov eax, dword [esp + 0x198]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x19c]
je 0x10054afb
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x5082598
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0x2488d7d2
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c88
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x10054afb
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x10054afb
mov eax, dword [esp + 0x198]
or eax, dword [esp + 0x19c]
je 0x1005625c
mov eax, dword [esp + 0xe0]
mov byte [esp + 0xd6], 0
mov word [esp + 0xd4], 0
mov edi, dword [esp + 0x1a4]
mov esi, dword [esp + 0x1a0]
lea ecx, [esp + 0x190]
mov edx, dword [eax]
push 1
mov dword [esp + 0x64], edi
push edi
mov dword [esp + 0x28], esi
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10034550
add esp, 0x14
xor edi, edi
lea edx, [0x508155d]
lea ebx, [0x508155e]
mov eax, 0xfffffff9
xor esi, esi
nop word [eax + eax]
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10055c95
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov ebx, edi
movzx ecx, ch
shl ebx, 4
or ecx, ebx
lea ebx, [edx + 1]
test eax, eax
cmove ebx, edx
je 0x10055cb4
shld esi, edi, 4
inc eax
test edx, edx
mov edi, ecx
jne 0x10055c70
mov eax, dword [esp + 0x190]
test eax, eax
je 0x1005645d
movsd xmm0, qword [esp + 0x194]
mov esi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
mov edi, ecx
lea ecx, [esp + 0x40]
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x80], xmm0
movaps xmmword [esp + 0x70], xmm0
mov dword [esp + 0x84], esi
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1005653e
lea ecx, [esp + 0x80]
call fcn.10004080
mov dword [esp + 0xb0], 0
jmp 0x10056558
mov eax, dword [esp + 0x198]
or eax, dword [esp + 0x19c]
je 0x1005626a
mov eax, dword [esp + 0xe0]
mov edi, dword [esp + 0x1a4]
mov esi, dword [esp + 0x1a0]
lea ecx, [esp + 0x190]
mov edx, dword [eax]
push 1
mov dword [esp + 0x74], edi
push edi
mov dword [esp + 0x28], esi
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10034550
add esp, 0x14
xor edi, edi
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
xor ebx, ebx
nop dword [eax + eax]
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10055dc5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, edi
movzx ecx, ch
shl esi, 4
or ecx, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x10055de4
shld ebx, edi, 4
inc eax
test edx, edx
mov edi, ecx
jne 0x10055da0
mov eax, dword [esp + 0x190]
test eax, eax
je 0x1005646e
movsd xmm0, qword [esp + 0x194]
mov esi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
mov ebx, ecx
lea ecx, [esp + 0x40]
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x80], xmm0
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x84], esi
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
mov edi, dword [ebp + 8]
je 0x100565f0
lea ecx, [esp + 0x80]
call fcn.10004080
xor edx, edx
jmp 0x10056603
mov eax, dword [esp + 0x198]
pxor xmm2, xmm2
or eax, dword [esp + 0x19c]
je 0x10056283
mov esi, dword [esp + 0x1a4]
mov eax, dword [esp + 0x1a0]
lea edx, [esp + 0x98]
lea ecx, [esp + 0x190]
push 5
push 0x5082754
push 0xffffffffffffffff
push 0xffffffffffffffff
mov dword [esp + 0x70], esi
push esi
mov dword [esp + 0x84], eax
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10055ef5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, ebx
movzx edi, ch
shl esi, 4
or edi, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x10055f16
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10055ed0
cmp dword [esp + 0x190], 0
je 0x1005647e
xor edi, 0x5c1
jmp 0x100551ea
mov eax, dword [esp + 0x198]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x19c]
je 0x1005553b
lea edx, [esp + 0x190]
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
push 4
push 0x50828cc
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0xb20f336b
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c93
call fcn.1003b900
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1005553b
mov ecx, dword [0x5087000]
push edx
push eax
push esi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x1005553b
mov ecx, dword [esp + 0x198]
mov eax, dword [esp + 0x194]
mov dword [esp + 0x70], ecx
mov ecx, dword [eax + 0x10]
test ecx, ecx
mov dword [esp + 0x60], ecx
jne 0x1005619b
jmp 0x1005c859
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm1, xmmword [esp + 0x20]
movd xmm0, eax
movlps qword [esp], xmm1
mov dword [esp + 8], edi
movsd xmm2, qword [esp + 4]
shufps xmm0, xmm2, 0xd4
unpcklps xmm2, xmm1
shufps xmm2, xmm0, 0x21
jmp 0x1005482c
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm1, xmmword [esp + 0x20]
movd xmm0, eax
movlps qword [esp], xmm1
mov dword [esp + 8], edi
mov edi, dword [ebp + 8]
movsd xmm2, qword [esp + 4]
shufps xmm0, xmm2, 0xd4
unpcklps xmm2, xmm1
shufps xmm2, xmm0, 0x21
jmp 0x1005526d
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm2, xmmword [esp + 0x20]
movd xmm1, eax
movlps qword [esp], xmm2
mov dword [esp + 8], edi
movsd xmm0, qword [esp + 4]
shufps xmm1, xmm0, 0xd4
unpcklps xmm0, xmm2
shufps xmm0, xmm1, 0x21
mov edi, dword [ebp + 8]
movd eax, xmm0
test eax, eax
jne 0x10054ad5
jmp 0x10054afb
mov eax, dword [esp + 4]
mov dword [eax], edi
mov dword [eax + 4], ebx
movdqa xmm0, xmmword [esp + 0x20]
mov edi, dword [ebp + 8]
movq qword [esp], xmm0
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
movd ecx, xmm0
jmp 0x10054d41
mov eax, dword [esp + 4]
mov dword [eax], esi
mov dword [eax + 4], ebx
movdqa xmm0, xmmword [esp + 0x20]
movq qword [esp], xmm0
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
movd ebx, xmm0
mov edi, dword [ebp + 8]
test ebx, ebx
jne 0x10054fd5
jmp 0x10054fff
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm2, xmmword [esp + 0x20]
movd xmm1, eax
movlps qword [esp], xmm2
mov dword [esp + 8], edi
movsd xmm0, qword [esp + 4]
shufps xmm1, xmm0, 0xd4
unpcklps xmm0, xmm2
shufps xmm0, xmm1, 0x21
mov edi, dword [ebp + 8]
movd eax, xmm0
test eax, eax
jne 0x10055515
jmp 0x1005553b
movdqa xmm0, xmmword [esp + 0x20]
mov eax, dword [esp + 0x84]
movd ecx, xmm0
mov dword [eax], ecx
mov dword [eax + 4], esi
movq xmm0, qword [esp]
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x70]
movd ecx, xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], edx
test ecx, ecx
je 0x10056183
movq xmm0, qword [esp + 0x44]
mov dword [esp + 0x40], ecx
movq qword [esp + 0x44], xmm0
mov dword [esp + 0x4c], eax
jmp 0x100557bb
pshufd xmm0, xmm0, 0x55
movd eax, xmm0
mov ecx, dword [eax + 0x10]
test ecx, ecx
mov dword [esp + 0x60], ecx
je 0x1005c859
mov edx, dword [esp + 0x60]
mov eax, dword [eax + 0xc]
xor esi, esi
mov ecx, edx
mov dword [esp + 0x20], eax
jmp 0x100561ba
mov edx, ecx
sub ecx, esi
jbe 0x1005c859
shr ecx, 1
mov edi, dword [esp + 0x20]
xor eax, eax
add ecx, esi
mov ebx, ecx
shl ebx, 4
cmp dword [edi + ebx + 0xc], 0x2dd2b3ce
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x100561b0
movzx eax, al
cmp eax, 0xff
jne 0x1005628b
inc ecx
mov esi, ecx
mov ecx, edx
sub ecx, esi
ja 0x100561ba
jmp 0x1005c859
mov eax, dword [esp + 0x60]
xor ecx, ecx
mov esi, eax
mov dword [esp + 0x70], eax
jmp 0x10056216
mov dword [esp + 0x70], esi
sub esi, ecx
jbe 0x100567f0
shr esi, 1
mov edi, dword [esp + 0x20]
xor edx, edx
add esi, ecx
mov eax, esi
shl eax, 4
cmp dword [edi + eax + 0xc], 0x9a89af34
mov edi, 0xff
setne dl
cmovb edx, edi
cmp dl, 1
je 0x1005620a
movzx ecx, dl
cmp ecx, 0xff
jne 0x10056781
inc esi
mov ecx, esi
mov esi, dword [esp + 0x70]
sub esi, ecx
ja 0x10056216
jmp 0x100567f0
xor ecx, ecx
mov dword [esp], 0
jmp 0x10054d3e
xor ebx, ebx
mov dword [esp], 0
mov edi, dword [ebp + 8]
test ebx, ebx
jne 0x10054fd5
jmp 0x10054fff
mov edi, dword [ebp + 8]
jmp 0x1005526d
mov eax, dword [esp + 0x20]
mov eax, dword [eax + ebx + 4]
test eax, eax
je 0x1005c859
mov ecx, dword [esp + 0x20]
xor edx, edx
mov esi, eax
mov ecx, dword [ecx + ebx]
jmp 0x100562b2
mov esi, eax
sub eax, edx
jbe 0x1005c859
shr eax, 1
xor ebx, ebx
add eax, edx
mov edi, eax
shl edi, 4
cmp dword [ecx + edi + 0xc], 0x7ca4fdf
mov edi, 0xff
setne bl
cmovb ebx, edi
cmp bl, 1
je 0x100562a8
movzx edx, bl
cmp edx, 0xff
jne 0x100569ac
inc eax
mov edx, eax
mov eax, esi
sub eax, edx
ja 0x100562b2
jmp 0x1005c859
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm2, xmmword [esp + 0x20]
movd xmm1, eax
movlps qword [esp], xmm2
mov dword [esp + 8], edi
movsd xmm0, qword [esp + 4]
shufps xmm1, xmm0, 0xd4
unpcklps xmm0, xmm2
shufps xmm0, xmm1, 0x21
mov edi, dword [ebp + 8]
movd eax, xmm0
test eax, eax
jne 0x10053005
jmp 0x1005302b
mov eax, dword [esp + 0x198]
mov edi, dword [ebp + 8]
pxor xmm2, xmm2
or eax, dword [esp + 0x19c]
je 0x10053d1d
lea esi, [esp + 0x190]
lea edx, [esp + 0x98]
mov ecx, esi
push 3
push 0x5082188
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [esp + 0x70]
push dword [esp + 0x84]
call fcn.10063630
add esp, 0x18
mov ecx, 0x508155c
mov edx, 0x434
call fcn.10007f70
mov ecx, esp
mov edx, esi
push eax
call fcn.1002ba60
add esp, 4
cmp dword [esp], 0
je 0x10056d9b
movsd xmm0, qword [esp + 8]
movss xmm2, dword [esp + 4]
movss xmm1, dword [esp + 0x10]
unpcklps xmm2, xmm0
shufps xmm1, xmm0, 0xd4
shufps xmm2, xmm1, 0x24
jmp 0x10053d1d
mov eax, dword [esp + 0x198]
or eax, dword [esp + 0x19c]
je 0x1005699d
mov eax, dword [esp + 0x1a0]
mov esi, dword [esp + 0x1a4]
lea edi, [esp + 0x190]
lea edx, [esp + 0x98]
mov ecx, edi
add eax, 8
adc esi, 0
push 1
push 0x50823a8
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
mov ecx, 0x508155c
mov edx, 0x4c1
call fcn.10007f70
mov ecx, esp
mov edx, edi
push eax
call fcn.1002ba60
add esp, 4
cmp dword [esp], 0
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
je 0x10056e13
movsd xmm0, qword [esp + 8]
movss xmm2, dword [esp + 4]
movss xmm1, dword [esp + 0x10]
unpcklps xmm2, xmm0
shufps xmm1, xmm0, 0xd4
shufps xmm2, xmm1, 0x24
jmp 0x10054832
movzx eax, byte [esp + 0x194]
mov dword [esp + 0x70], eax
jmp 0x10056587
movzx ecx, byte [esp + 0x194]
mov edi, dword [ebp + 8]
jmp 0x1005663e
mov eax, dword [esp + 0x198]
mov edi, dword [ebp + 8]
pxor xmm2, xmm2
or eax, dword [esp + 0x19c]
je 0x1005526d
lea esi, [esp + 0x190]
lea edx, [esp + 0x98]
mov ecx, esi
push 2
push 0x50827fc
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [esp + 0x70]
push dword [esp + 0x84]
call fcn.10063630
add esp, 0x18
mov ecx, 0x508155c
mov edx, 0x5c9
call fcn.10007f70
mov ecx, esp
mov edx, esi
push eax
call fcn.1002ba60
add esp, 4
cmp dword [esp], 0
je 0x10056e9d
movsd xmm0, qword [esp + 8]
movss xmm2, dword [esp + 4]
movss xmm1, dword [esp + 0x10]
unpcklps xmm2, xmm0
shufps xmm1, xmm0, 0xd4
shufps xmm2, xmm1, 0x24
jmp 0x1005526d
mov eax, dword [esp + 0x70]
mov edi, dword [ebp + 8]
dec dword [eax]
mov eax, dword [edi]
cmp word [eax + 0x122], 3
je 0x1005374b
jmp 0x10053983
mov eax, dword [esp + 0x70]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
dec dword [eax]
jmp 0x100545c5
movdqa xmm0, xmmword [esp + 0x70]
mov ecx, dword [esp + 0x44]
movd eax, xmm0
mov dword [esp + 0xb0], ecx
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov ecx, dword [esp]
mov eax, dword [esp + 4]
test ecx, ecx
mov dword [esp + 0x70], eax
je 0x10056587
xor edi, 0x51f
shr eax, 8
mov dword [esp + 0x60], ecx
mov dword [esp + 0xc0], edi
mov dword [esp + 0x100], eax
jmp 0x10056b5f
mov eax, dword [esp + 0xe0]
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x60]
lea esi, [esp + 0xd4]
lea ecx, [esp + 0x190]
mov edx, dword [eax]
add edi, 1
adc ebx, 0
push 1
push 3
push esi
push ebx
push edi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10032d70
add esp, 0x1c
mov eax, dword [esp + 0x190]
test eax, eax
je 0x100566d3
movq xmm0, qword [esp + 0x194]
mov ecx, dword [esp + 0x19c]
mov dword [esp + 0x60], eax
mov dword [esp + 0xb0], ecx
jmp 0x10056a84
movdqa xmm0, xmmword [esp + 0x60]
mov edx, dword [esp + 0x44]
movd eax, xmm0
mov dword [edx], eax
mov dword [edx + 4], esi
mov eax, ebx
mov ebx, dword [esp]
mov ecx, dword [esp + 4]
test ebx, ebx
je 0x1005663e
mov esi, ecx
mov dword [esp + 0x60], edx
xor eax, 0x55f
mov dword [esp + 0x20], ecx
mov ecx, 0x508155c
mov edx, 0x583
mov dword [esp + 0x70], eax
shr esi, 8
call fcn.10007f70
mov ecx, dword [esp + 0x20]
jmp 0x10057511
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x70]
test cl, cl
js 0x100566f9
xor esi, esi
mov ecx, 0x508155c
mov edx, 0x583
call fcn.10007f70
mov eax, esi
test al, al
je 0x10054fff
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
lea edx, [esp + 0x190]
push 4
push 0x50826c8
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0x6915bb2a
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c8a
call fcn.1003b900
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.10028ce0
jmp 0x10054fff
cmp dword [esp + 0x194], 3
jne 0x10056a02
mov dword [esp + 0x60], 0
mov dword [esp + 0xb0], 0
jmp 0x10056a84
mov eax, dword [esp + 0xe0]
lea ecx, [esp + 0x190]
mov edx, dword [eax]
push ebx
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10033580
add esp, 0x10
mov ecx, 0x508155c
mov edx, 0x563
call fcn.10007f70
cmp dword [esp + 0x190], 0
je 0x10057439
movsd xmm0, qword [esp + 0x194]
mov ecx, dword [esp + 0x19c]
mov edx, dword [esp + 0x1a0]
movsd qword [esp + 0x40], xmm0
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
lea ecx, [esp + 4]
lea edx, [esp + 0x40]
push eax
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
mov esi, dword [esp + 8]
jmp 0x100574ed
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + eax + 4]
test edx, edx
je 0x100567f0
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xb0], edx
mov eax, dword [ecx + eax]
xor ecx, ecx
mov dword [esp + 0x70], eax
mov edi, dword [esp + 0x70]
jmp 0x100567b2
mov dword [esp + 0xb0], edx
sub edx, ecx
jbe 0x100567f0
shr edx, 1
xor eax, eax
add edx, ecx
mov esi, edx
shl esi, 4
cmp dword [edi + esi + 0xc], 0xd5255547
mov esi, 0xff
setne al
cmovb eax, esi
cmp al, 1
je 0x100567a7
movzx eax, al
cmp eax, 0xff
jne 0x10056f15
inc edx
mov ecx, edx
mov edx, dword [esp + 0xb0]
sub edx, ecx
ja 0x100567b2
mov eax, dword [esp + 0x60]
xor ecx, ecx
mov dword [esp + 0x70], eax
jmp 0x1005680c
mov dword [esp + 0x70], eax
sub eax, ecx
mov dword [esp + 0x60], eax
jbe 0x100570f6
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x20]
xor edx, edx
shr eax, 1
add eax, ecx
mov esi, eax
shl esi, 4
cmp dword [edi + esi + 0xc], 0x9a89af34
mov edi, 0xff
setne dl
cmovb edx, edi
cmp dl, 1
je 0x100567fc
movzx ecx, dl
cmp ecx, 0xff
jne 0x10056856
inc eax
mov ecx, eax
mov eax, dword [esp + 0x70]
sub eax, ecx
mov dword [esp + 0x60], eax
ja 0x1005680c
jmp 0x100570f6
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + esi + 4]
test ecx, ecx
je 0x100570f6
mov edx, dword [esp + 0x20]
xor edi, edi
mov dword [esp + 0x70], ecx
mov eax, dword [edx + esi]
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0x20]
jmp 0x10056889
mov dword [esp + 0x70], ecx
sub ecx, edi
jbe 0x100570f6
shr ecx, 1
xor edx, edx
add ecx, edi
mov eax, ecx
shl eax, 4
cmp dword [esi + eax + 0xc], 0x8f980a9b
mov eax, 0xff
setne dl
cmovb edx, eax
cmp dl, 1
je 0x1005687d
movzx eax, dl
cmp eax, 0xff
jne 0x10056f15
inc ecx
mov edi, ecx
mov ecx, dword [esp + 0x70]
sub ecx, edi
ja 0x10056889
jmp 0x100570f6
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
xor esi, esi
mov dword [esp + 0xc0], edx
sub edi, edx
mov edx, 0xaaaaaaab
mov dword [esp + 0x100], ecx
mul edx
shr edx, 3
dec edx
jmp 0x100568fc
mov edx, dword [esp + 0x70]
inc esi
cmp esi, edx
jg 0x10053ab2
lea eax, [edx + esi]
mov dword [esp + 0x60], esi
mov ecx, dword [esp + 0xb0]
mov ebx, dword [esp + 0x100]
mov dword [esp + 0x70], edx
mov esi, eax
shr esi, 0x1f
add esi, eax
sar esi, 1
lea eax, [esi + esi*2]
lea eax, [ecx + eax*4]
mov ecx, esp
add eax, dword [esp + 0xc0]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0xc]
adc ebx, 0
mov edx, dword [eax]
push 1
mov dword [esp + 0xac], ebx
push ebx
push dword [esp + 0x28]
push dword [eax + 8]
push dword [eax + 4]
call fcn.10033e30
add esp, 0x14
mov ebx, dword [esp]
mov ecx, dword [esp + 4]
test ebx, ebx
jne 0x10057ff4
xor eax, eax
cmp ecx, edi
mov ecx, 0xff
setne al
cmova eax, ecx
cmp al, 1
je 0x100568ef
movzx eax, al
cmp eax, 0xff
jne 0x10057ed7
dec esi
mov edx, esi
mov esi, dword [esp + 0x60]
cmp esi, edx
jle 0x100568fc
jmp 0x10053ab2
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
pxor xmm2, xmm2
jmp 0x10054832
mov edx, dword [esp + 0x60]
xor esi, esi
mov ecx, edx
jmp 0x100569c0
mov edx, ecx
sub ecx, esi
jbe 0x1005c859
shr ecx, 1
mov edi, dword [esp + 0x20]
xor eax, eax
add ecx, esi
mov ebx, ecx
shl ebx, 4
cmp dword [edi + ebx + 0xc], 0x2dd2b3ce
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x100569b6
movzx eax, al
cmp eax, 0xff
jne 0x10057c78
inc ecx
mov esi, ecx
mov ecx, edx
sub ecx, esi
ja 0x100569c0
jmp 0x1005c859
xor ecx, ecx
lea edx, [0x50848ed]
lea edi, [0x50848ee]
mov eax, 0xfffffff9
xor esi, esi
movzx ebx, byte [edx]
mov edx, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x10056a3c
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005c879
add bl, 0xa9
mov bh, bl
mov edi, ecx
movzx ebx, bh
shl edi, 4
or ebx, edi
lea edi, [edx + 1]
test eax, eax
cmove edi, edx
je 0x10056a5b
shld esi, ecx, 4
inc eax
test edx, edx
mov ecx, ebx
jne 0x10056a17
movdqa xmm0, xmmword [0x507d5d0]
xor ebx, 0x91
mov dword [esp + 0xb0], 0
mov dword [esp + 0x60], 0xc76970a8
movd xmm1, ebx
punpckldq xmm0, xmm1
xor ebx, ebx
lea eax, [0x508155d]
lea edi, [0x508155e]
mov edx, 0xfffffff9
mov dword [esp + 0x20], 0
nop
movzx ecx, byte [eax]
mov eax, edi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10056ac5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov edi, ebx
movzx esi, ch
shl edi, 4
or esi, edi
lea edi, [eax + 1]
test edx, edx
cmove edi, eax
je 0x10056ae6
shld dword [esp + 0x20], ebx, 4
inc edx
test eax, eax
mov ebx, esi
jne 0x10056aa0
mov eax, dword [esp + 0x60]
test eax, eax
je 0x10056c3a
mov ecx, dword [esp + 0xb0]
xor esi, 0x523
mov dword [esp + 0x190], eax
movq qword [esp + 0x194], xmm0
lea edx, [esp + 0x190]
mov dword [esp + 0x19c], ecx
mov ecx, esp
push esi
call fcn.100031f0
add esp, 4
mov eax, dword [esp]
test eax, eax
je 0x10056c3a
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov dword [esp + 0x60], eax
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x70], edx
shr edx, 8
mov dword [esp + 0x100], edx
mov dword [esp + 0xb0], ecx
xor esi, esi
lea edx, [0x508155d]
lea eax, [0x508155e]
mov ecx, 0xfffffff9
mov dword [esp + 0x20], 0
nop word [eax + eax]
movzx ebx, byte [edx]
mov edx, eax
mov eax, ebx
add al, 0xd0
cmp al, 0xa
jb 0x10056ba1
or bl, 0x20
mov eax, ebx
add al, 0x9f
cmp al, 6
jae 0x1005c879
add bl, 0xa9
mov eax, ebx
mov edi, esi
movzx ebx, al
lea eax, [edx + 1]
shl edi, 4
or ebx, edi
test ecx, ecx
cmove eax, edx
je 0x10056bc2
shld dword [esp + 0x20], esi, 4
inc ecx
test edx, edx
mov esi, ebx
jne 0x10056b80
mov ecx, dword [esp + 0x100]
movzx eax, byte [esp + 0x70]
movd xmm1, dword [esp + 0x60]
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0xb0]
xor ebx, 0x551
shl ecx, 8
mov dword [esp], esi
mov dword [esp + 4], edi
or eax, ecx
movd xmm0, eax
mov eax, dword [0x5087000]
punpckldq xmm1, xmm0
movdqa xmmword [esp + 0x20], xmm1
push 4
push 8
push 0x5086800
lea ecx, [esp + 0x19c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x190], 0
je 0x10056d48
mov ecx, esp
call fcn.10004080
xor eax, eax
jmp 0x10056d54
mov edx, dword [esp + 0x70]
mov edi, dword [ebp + 8]
add dl, dl
xor dl, 0xd0
movzx eax, dl
add dl, 0xd1
lea ecx, [eax*4]
lea eax, [eax + eax*2]
lea ebx, [ecx + ecx*2]
add al, 0x44
add bl, 0xe1
nop
mov ecx, edx
add al, 0x8d
add bl, 0x34
add dl, 0x2f
add cl, 0xb0
cmp cl, 0xa0
ja 0x10056c60
xor dl, byte [esp + 0xd4]
cmp dl, 0x74
jne 0x10056d34
mov ecx, eax
add bl, 0xbc
add al, 0x2f
add cl, 0xb0
cmp cl, 0xa0
ja 0x10056c82
xor al, byte [esp + 0xd5]
cmp al, 0x74
jne 0x10056d34
mov eax, ebx
add bl, 0x2f
add al, 0xb0
cmp al, 0xa1
jae 0x10056ca0
xor bl, byte [esp + 0xd6]
mov ecx, 0x508155c
mov edx, 0x551
call fcn.10007f70
cmp bl, 0x70
jne 0x10054d6f
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
lea edx, [esp + 0x190]
push 4
push 0x508265c
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0xf565af26
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c89
call fcn.1003b900
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.10028ce0
jmp 0x10054d6f
mov ecx, 0x508155c
mov edx, 0x551
call fcn.10007f70
jmp 0x10054d6f
mov eax, dword [esp + 0x194]
mov dword [eax], esi
mov dword [eax + 4], edi
movdqa xmm0, xmmword [esp + 0x20]
mov edi, dword [ebp + 8]
movq qword [esp + 0x98], xmm0
movzx ecx, word [esp + 0x9d]
mov word [esp + 5], cx
movzx ecx, byte [esp + 0x9f]
mov byte [esp + 7], cl
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x70]
mov dword [esp], ecx
mov byte [esp + 4], al
jmp 0x10054d41
mov eax, dword [esp + 8]
or eax, dword [esp + 0xc]
je 0x10053d4c
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
lea edx, [esp + 0x190]
push 4
push 0x50821c4
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0xa424d249
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c84
call fcn.1003b900
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.10028ce0
jmp 0x10053d4c
mov eax, dword [esp + 8]
pxor xmm2, xmm2
or eax, dword [esp + 0xc]
je 0x10054832
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
lea edi, [esp + 0x190]
mov ecx, edi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x98]
mov edx, dword [eax]
push 1
push dword [esp + 0x64]
push dword [esp + 0x78]
push dword [eax + 8]
push dword [eax + 4]
call fcn.100341e0
add esp, 0x14
mov ecx, 0x508155c
mov edx, 0x4c7
call fcn.10007f70
mov ecx, esp
mov edx, edi
push eax
call fcn.10032cc0
add esp, 4
movq xmm2, qword [esp]
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 8]
movd eax, xmm2
test eax, eax
je 0x10057f38
movd xmm0, ebx
movd xmm1, edi
jmp 0x10057f9f
mov eax, dword [esp + 8]
or eax, dword [esp + 0xc]
je 0x1005529c
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
lea edx, [esp + 0x190]
push 4
push 0x5082824
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0x2488d7d2
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c88
call fcn.1003b900
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.10028ce0
jmp 0x1005529c
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov edx, dword [eax + 0x12c]
mov ecx, dword [eax + 0x128]
push 5
push 0x50818ac
call fcn.10032ad0
add esp, 8
test ax, ax
je 0x100570f6
mov eax, dword [ebp + 8]
mov ecx, edx
movzx ecx, cx
mov eax, dword [eax]
mov edx, dword [eax + 0x12c]
cmp edx, ecx
jbe 0x1005c944
dec dword [ebx]
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x190]
push edi
call fcn.100693f0
add esp, 4
xor edi, edi
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
xor ebx, ebx
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10057155
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, edi
movzx ecx, ch
shl esi, 4
or ecx, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x10057174
shld ebx, edi, 4
inc eax
test edx, edx
mov edi, ecx
jne 0x10057130
mov eax, dword [esp + 0x190]
test eax, eax
je 0x100571f1
movsd xmm0, qword [esp + 0x194]
mov esi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
xor ecx, 0x6a0
mov dword [esp + 0x70], ecx
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x98], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x9c], esi
push 4
push 8
push 0x5086800
lea ecx, [esp + 0x8c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
je 0x10057217
lea ecx, [esp + 0x98]
call fcn.10004080
xor eax, eax
jmp 0x1005722d
mov ecx, dword [esp + 0x198]
mov eax, dword [esp + 0x194]
mov dword [esp + 0x70], ecx
mov ecx, dword [eax + 0x10]
test ecx, ecx
mov dword [esp + 0x60], ecx
jne 0x100572ad
jmp 0x100582a7
movdqa xmm0, xmmword [esp + 0x20]
mov eax, dword [esp + 0x84]
movd ecx, xmm0
mov dword [eax], ecx
mov dword [eax + 4], esi
movq xmm0, qword [esp]
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x70]
movd ecx, xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], edx
test ecx, ecx
je 0x10057295
mov edx, dword [esp + 0x3c]
movq xmm0, qword [esp + 0x44]
add edx, 0x10
mov dword [esp + 0x70], edx
mov dword [esp + 0x190], ecx
movq qword [esp + 0x194], xmm0
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x70]
mov edx, 0x5084248
mov ecx, dword [eax]
lea eax, [esp + 0x190]
push eax
push 8
call fcn.1003b250
add esp, 8
jmp 0x100582bb
pshufd xmm0, xmm0, 0x55
movd eax, xmm0
mov ecx, dword [eax + 0x10]
test ecx, ecx
mov dword [esp + 0x60], ecx
je 0x100582a7
mov eax, dword [eax + 0xc]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x20], eax
xor eax, eax
mov esi, ebx
jmp 0x100572ca
mov ebx, esi
sub esi, eax
jbe 0x100582a7
shr esi, 1
mov edi, dword [esp + 0x20]
xor edx, edx
add esi, eax
mov ecx, esi
shl ecx, 4
cmp dword [edi + ecx + 0xc], 0xf17c9523
mov edi, 0xff
setne dl
cmovb edx, edi
cmp dl, 1
je 0x100572c0
movzx eax, dl
cmp eax, 0xff
jne 0x10057309
inc esi
mov eax, esi
mov esi, ebx
sub esi, eax
ja 0x100572ca
jmp 0x100582a7
mov eax, dword [esp + 0x20]
mov edx, dword [eax + ecx + 4]
test edx, edx
je 0x100582a7
mov eax, dword [esp + 0x20]
mov esi, edx
mov ebx, dword [eax + ecx]
xor eax, eax
jmp 0x1005733a
mov esi, edx
sub edx, eax
jbe 0x100582a7
shr edx, 1
xor ecx, ecx
add edx, eax
mov edi, edx
shl edi, 4
cmp dword [ebx + edi + 0xc], 0xf8a3eca5
mov edi, 0xff
setne cl
cmovb ecx, edi
cmp cl, 1
je 0x10057330
movzx eax, cl
cmp eax, 0xff
jne 0x10057375
inc edx
mov eax, edx
mov edx, esi
sub edx, eax
ja 0x1005733a
jmp 0x100582a7
mov esi, dword [esp + 0x60]
xor eax, eax
jmp 0x1005738b
mov esi, ebx
sub ebx, eax
mov dword [esp + 0x60], ebx
jbe 0x100582a7
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x20]
xor ecx, ecx
shr ebx, 1
add ebx, eax
mov edx, ebx
shl edx, 4
cmp dword [edi + edx + 0xc], 0x9a89af34
mov edi, 0xff
setne cl
cmovb ecx, edi
cmp cl, 1
je 0x1005737d
movzx eax, cl
cmp eax, 0xff
jne 0x100573d2
inc ebx
mov eax, ebx
mov ebx, esi
sub ebx, eax
mov dword [esp + 0x60], ebx
ja 0x1005738b
jmp 0x100582a7
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + edx + 4]
test ecx, ecx
je 0x100582a7
mov eax, dword [esp + 0x20]
xor ebx, ebx
mov esi, ecx
mov eax, dword [eax + edx]
jmp 0x100573f9
mov eax, dword [esp + 0x1a4]
mov edi, dword [esp + 0x1a0]
add esi, 0x10
lea ecx, [esp + 0x190]
adc ebx, 0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x19c]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xe0]
mov edx, dword [eax]
push ebx
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10033580
add esp, 0x10
mov ecx, 0x508155c
mov edx, 0x564
call fcn.10007f70
cmp dword [esp + 0x190], 0
je 0x10057e7f
movsd xmm0, qword [esp + 0x194]
mov ecx, dword [esp + 0x19c]
mov edx, dword [esp + 0x1a0]
movsd qword [esp + 0x40], xmm0
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
lea ecx, [esp + 4]
lea edx, [esp + 0x40]
push eax
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
mov esi, dword [esp + 8]
mov edi, dword [ebp + 8]
mov dword [esp + 0x70], eax
mov dword [esp + 0x60], ecx
mov ecx, 0x508155c
mov edx, 0x583
call fcn.10007f70
test ebx, ebx
je 0x1005665f
mov ecx, esi
shr esi, 8
mov dword [esp + 0xb0], eax
shl esi, 8
movzx eax, cl
movd xmm1, ebx
mov dword [esp + 0x20], ecx
or eax, esi
mov esi, dword [esp + 0x60]
movd xmm0, eax
mov eax, dword [esp + 0x70]
punpckldq xmm1, xmm0
movdqa xmmword [esp + 0xc0], xmm1
mov dword [esp], eax
mov eax, dword [0x5087000]
mov dword [esp + 4], esi
push 4
push 8
push 0x5086800
lea ecx, [esp + 0x19c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x190], 0
je 0x10057579
mov ecx, esp
call fcn.10004080
xor eax, eax
jmp 0x10057589
mov eax, dword [esp + 0x194]
mov ecx, dword [esp + 0x70]
mov dword [eax], ecx
mov dword [eax + 4], esi
movaps xmm0, xmmword [esp + 0xc0]
mov edx, dword [esp + 0xb0]
movlps qword [esp + 0x98], xmm0
movzx ecx, word [esp + 0x9d]
mov word [esp + 5], cx
movzx ecx, byte [esp + 0x9f]
mov byte [esp + 7], cl
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp], ebx
mov byte [esp + 4], al
test ebx, ebx
jne 0x10054fd5
jmp 0x10054fff
mov dword [esp + 0x40], 0
xor eax, eax
jmp 0x1004e2f8
mov ecx, dword [esp + 0x19c]
mov edx, dword [esp + 0x1a0]
mov eax, dword [esp + 0x1a4]
mov ebx, dword [esp + 0xb0]
add ecx, 0xffffffff
adc edx, 0xffffffff
adc eax, 0xffffffff
cmp ecx, 0xffffffff
sbb edx, 0
sbb eax, 0
mov eax, dword [esp + 0x60]
jae 0x1004f775
mov edi, dword [ebp + 0xc]
add eax, 0x50
mov esi, ebx
lea ecx, [esp + 0x190]
adc esi, 0
mov edx, dword [edi]
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10033580
add esp, 0x10
mov ecx, 0x508155c
mov edx, 0xa7
call fcn.10007f70
cmp dword [esp + 0x190], 0
jne 0x1004f645
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x1a0]
mov edx, dword [esp + 0x1a4]
mov esi, 0xffffffff
add eax, esi
adc ecx, esi
adc edx, esi
mov esi, ebx
mov ebx, 0xfffffffe
xor edi, edi
cmp ebx, eax
mov eax, 0
mov ebx, dword [esp + 0x60]
sbb eax, ecx
sbb edi, edx
mov edi, dword [ebp + 8]
jb 0x1004f775
mov eax, ebx
mov ebx, dword [ebp + 0xc]
lea ecx, [esp + 0x190]
add eax, 0x90
adc esi, 0
mov edx, dword [ebx]
push esi
push eax
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.10033580
add esp, 0x10
mov ecx, 0x508155c
mov edx, 0xa7
call fcn.10007f70
cmp dword [esp + 0x190], 0
jne 0x1004f645
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x1a0]
mov edx, dword [esp + 0x1a4]
mov esi, 0xffffffff
mov ebx, 0xfffffffe
add eax, esi
adc ecx, esi
adc edx, esi
xor edi, edi
cmp ebx, eax
mov eax, 0
sbb eax, ecx
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xb0]
sbb edi, edx
mov edi, dword [ebp + 8]
jb 0x1004f775
mov ebx, dword [ebp + 0xc]
mov edi, ecx
add eax, 0xd0
lea ecx, [esp + 0x190]
adc edi, 0
mov edx, dword [ebx]
push edi
push eax
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.10033580
add esp, 0x10
mov ecx, 0x508155c
mov edx, 0xa7
call fcn.10007f70
cmp dword [esp + 0x190], 0
jne 0x1004f645
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x1a0]
mov edx, dword [esp + 0x1a4]
mov ebx, 0xfffffffe
add eax, esi
adc ecx, esi
adc edx, esi
xor edi, edi
cmp ebx, eax
mov eax, 0
sbb eax, ecx
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xb0]
sbb edi, edx
mov edi, dword [ebp + 8]
jb 0x1004f775
mov ebx, dword [ebp + 0xc]
mov edi, ecx
add eax, 0x110
lea ecx, [esp + 0x190]
adc edi, 0
mov edx, dword [ebx]
push edi
push eax
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.10033580
add esp, 0x10
mov ecx, 0x508155c
mov edx, 0xa7
call fcn.10007f70
cmp dword [esp + 0x190], 0
jne 0x1004f645
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x1a0]
mov edx, dword [esp + 0x1a4]
mov ebx, 0xfffffffe
add eax, esi
adc ecx, esi
adc edx, esi
xor edi, edi
cmp ebx, eax
mov eax, 0
sbb eax, ecx
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xb0]
sbb edi, edx
mov edi, dword [ebp + 8]
jb 0x1004f775
mov ebx, dword [ebp + 0xc]
mov edi, ecx
add eax, 0x150
lea ecx, [esp + 0x190]
adc edi, 0
mov edx, dword [ebx]
push edi
push eax
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.10033580
add esp, 0x10
mov ecx, 0x508155c
mov edx, 0xa7
call fcn.10007f70
cmp dword [esp + 0x190], 0
jne 0x1004f645
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x1a0]
mov edx, dword [esp + 0x1a4]
mov ebx, 0xfffffffe
add eax, esi
adc ecx, esi
adc edx, esi
xor edi, edi
cmp ebx, eax
mov eax, 0
sbb eax, ecx
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xb0]
sbb edi, edx
mov edi, dword [ebp + 8]
jb 0x1004f775
mov ebx, dword [ebp + 0xc]
mov edi, ecx
add eax, 0x190
lea ecx, [esp + 0x190]
adc edi, 0
mov edx, dword [ebx]
push edi
push eax
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.10033580
add esp, 0x10
mov ecx, 0x508155c
mov edx, 0xa7
call fcn.10007f70
cmp dword [esp + 0x190], 0
jne 0x1004f645
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x1a0]
mov edx, dword [esp + 0x1a4]
mov ebx, 0xfffffffe
add eax, esi
adc ecx, esi
adc edx, esi
xor edi, edi
cmp ebx, eax
mov esi, 0
mov ebx, dword [esp + 0xb0]
sbb esi, ecx
mov esi, dword [esp + 0x60]
sbb edi, edx
mov edi, dword [ebp + 8]
jb 0x1004f775
mov eax, dword [ebp + 0xc]
add esi, 0x1d0
lea ecx, [esp + 0x190]
adc ebx, 0
mov edx, dword [eax]
push ebx
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10033580
add esp, 0x10
mov ecx, 0x508155c
mov edx, 0xa7
call fcn.10007f70
cmp dword [esp + 0x190], 0
jne 0x1004f645
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x1a0]
mov edx, 0xffffffff
add eax, edx
adc ecx, edx
adc edx, dword [esp + 0x1a4]
cmp eax, 0xffffffff
sbb ecx, 0
sbb edx, 0
jb 0x1004f710
jmp 0x1004f775
mov ecx, esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
mov eax, dword [esi + 0x2c]
cmp eax, dword [ecx + 8]
jne 0x1005ca5a
mov eax, dword [esp + 8]
mov edx, dword [esi + 0x18]
add ebx, 0xfffffff0
mov ecx, esp
adc edi, 0xffffffff
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x70], eax
push 0x10
lea eax, [esp + 0x84]
push eax
push edi
push ebx
push dword [esp + 0x30]
mov edi, esi
push dword [esi + 0x1c]
call fcn.100347b0
add esp, 0x18
mov ecx, 0x508155c
mov edx, 0x1b4
call fcn.10007f70
mov ecx, dword [esp]
test ecx, ecx
je 0x10057cdf
mov edx, dword [esp + 0xc]
movq xmm0, qword [esp + 4]
mov dword [esp + 0x190], ecx
lea ecx, [esp + 0x40]
movq qword [esp + 0x194], xmm0
mov dword [esp + 0x19c], edx
lea edx, [esp + 0x190]
push eax
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 0x40]
test eax, eax
je 0x10057cdf
movd xmm1, dword [esp + 0x44]
movq xmm0, qword [esp + 0x48]
movd xmm2, eax
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x70]
mov esi, edi
punpckldq xmm2, xmm1
punpcklqdq xmm2, xmm0
movdqa xmmword [esp + 0x20], xmm2
push edi
call fcn.100373a0
add esp, 4
mov ecx, edi
call fcn.1002d9a0
movdqa xmm2, xmmword [esp + 0x20]
jmp 0x10050aac
cmp byte [esp + 4], 0
mov edi, dword [ebp + 8]
je 0x1004e32c
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
lea edx, [esp + 0x190]
push 4
push 0x5080cd0
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0x25f65687
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xe543
call fcn.1003b900
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.10028ce0
jmp 0x1004e32c
mov eax, dword [esp + 0x20]
mov eax, dword [eax + ebx + 4]
test eax, eax
je 0x1005c859
mov ecx, dword [esp + 0x20]
xor edx, edx
mov esi, eax
mov ecx, dword [ecx + ebx]
jmp 0x10057c9f
mov esi, eax
sub eax, edx
jbe 0x1005c859
shr eax, 1
xor ebx, ebx
add eax, edx
mov edi, eax
shl edi, 4
cmp dword [ecx + edi + 0xc], 0xe9b7ea0f
mov edi, 0xff
setne bl
cmovb ebx, edi
cmp bl, 1
je 0x10057c95
movzx edx, bl
cmp edx, 0xff
jne 0x10058083
inc eax
mov edx, eax
mov eax, esi
sub eax, edx
ja 0x10057c9f
jmp 0x1005c859
movzx eax, byte [esp + 0x80]
add al, 0xbf
cmp al, 0x19
ja 0x10057e5c
movzx eax, byte [esp + 0x81]
add al, 0xbf
cmp al, 0x19
ja 0x10057e5c
movzx eax, byte [esp + 0x82]
add al, 0xbf
cmp al, 0x19
ja 0x10057e5c
movzx eax, byte [esp + 0x83]
add al, 0xbf
cmp al, 0x19
ja 0x10057e5c
movzx eax, byte [esp + 0x84]
add al, 0xbf
cmp al, 0x19
ja 0x10057e5c
movzx eax, byte [esp + 0x85]
add al, 0xbf
cmp al, 0x19
ja 0x10057e5c
movzx eax, byte [esp + 0x86]
add al, 0xbf
cmp al, 0x19
ja 0x10057e5c
movzx eax, byte [esp + 0x87]
add al, 0xbf
cmp al, 0x19
ja 0x10057e5c
movzx eax, byte [esp + 0x88]
add al, 0xbf
cmp al, 0x19
ja 0x10057e5c
movzx eax, byte [esp + 0x89]
add al, 0xbf
cmp al, 0x19
ja 0x10057e5c
movzx eax, byte [esp + 0x8a]
add al, 0xbf
cmp al, 0x19
ja 0x10057e5c
movzx eax, byte [esp + 0x8b]
add al, 0xbf
cmp al, 0x19
ja 0x10057e5c
movzx eax, byte [esp + 0x8c]
add al, 0xbf
cmp al, 0x19
ja 0x10057e5c
movzx eax, byte [esp + 0x8d]
add al, 0xbf
cmp al, 0x19
ja 0x10057e5c
movzx eax, byte [esp + 0x8e]
add al, 0xbf
cmp al, 0x19
ja 0x10057e5c
movzx eax, byte [esp + 0x8f]
add al, 0xbf
cmp al, 0x1a
jae 0x10057e5c
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
lea edx, [esp + 0x190]
push 4
push 0x508183c
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp]
mov edx, 0x38d5dc59
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push ebx
push 0xffff1c76
call fcn.1003b900
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, ebx
call fcn.10028ce0
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x70]
mov esi, edi
push edi
call fcn.100373a0
add esp, 4
mov ecx, edi
call fcn.1002d9a0
pxor xmm2, xmm2
jmp 0x10050aac
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x20]
xor edi, dword [esp + 0x1a0]
xor ecx, dword [esp + 0x19c]
xor eax, dword [esp + 0x1a4]
or eax, ecx
mov ecx, dword [esp + 0x70]
xor ecx, dword [esp + 0x198]
or edi, ecx
or edi, eax
setne al
test edi, 0xc0c0c0c0
mov edi, dword [ebp + 8]
sete cl
and cl, al
mov esi, ecx
jmp 0x10056650
mov dword [esp + 0x20], eax
mov eax, ecx
xor edi, 0x1c
mov dword [esp + 0x60], edx
jmp 0x1005816c
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0xa8]
mov edx, dword [ecx]
mov ecx, esp
add eax, 4
mov esi, ebx
adc esi, 0
push 1
push esi
push eax
mov eax, dword [ebp + 0xc]
push dword [eax + 8]
push dword [eax + 4]
call fcn.10033e30
add esp, 0x14
mov ecx, dword [esp]
test ecx, ecx
je 0x10057fba
mov eax, ecx
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov edi, dword [esp + 0xc]
mov ebx, eax
jmp 0x10057ffc
mov dword [esp + 0x20], eax
mov eax, ecx
mov dword [esp + 0x60], edx
xor edi, 0x1e
jmp 0x1005816c
mov eax, dword [esp + 0x98]
lea ecx, [esp + 0x190]
mov edx, dword [eax]
push 1
push dword [esp + 0x24]
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.100341e0
add esp, 0x14
mov ecx, 0x508155c
mov edx, 0x4c7
call fcn.10007f70
mov ecx, esp
lea edx, [esp + 0x190]
push eax
call fcn.10032cc0
add esp, 4
movq xmm2, qword [esp]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
movd edx, xmm2
test edx, edx
je 0x100580d9
movd xmm0, ecx
movd xmm1, eax
punpckldq xmm0, xmm1
punpcklqdq xmm2, xmm0
jmp 0x1005482c
mov dword [esp + 0x20], eax
mov eax, ecx
xor edi, 0x21
jmp 0x1005816c
mov eax, dword [esp + 4]
mov esi, dword [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x70], eax
mov eax, dword [ebp + 0xc]
add esi, 8
adc ebx, 0
mov edx, dword [eax]
push 1
push ebx
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10033e30
add esp, 0x14
mov ebx, dword [esp]
test ebx, ebx
je 0x1005b8c0
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov edi, dword [esp + 0xc]
cmp ebx, 0xc76970a8
jne 0x10058020
cmp ecx, 0x76d4030
jne 0x10058020
test edi, edi
je 0x10053ab2
mov ecx, edi
call fcn.10004840
jmp 0x10053ab2
mov esi, ecx
mov dword [esp + 0x20], edx
mov ecx, 0x50811e4
mov edx, 0x58
call fcn.10007f70
mov ecx, dword [esp + 0x20]
mov dword [esp], ebx
mov dword [esp + 4], esi
mov edx, esp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
lea ecx, [esp + 0x194]
push eax
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 0x194]
test eax, eax
je 0x10053ac1
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x1a0]
mov esi, dword [esp + 0x19c]
jmp 0x10053a17
mov edx, dword [esp + 0x60]
xor esi, esi
mov ecx, edx
jmp 0x10058097
mov edx, ecx
sub ecx, esi
jbe 0x1005c859
shr ecx, 1
mov edi, dword [esp + 0x20]
xor eax, eax
add ecx, esi
mov ebx, ecx
shl ebx, 4
cmp dword [edi + ebx + 0xc], 0x2dd2b3ce
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x1005808d
movzx eax, al
cmp eax, 0xff
jne 0x1005bf32
inc ecx
mov esi, ecx
mov ecx, edx
sub ecx, esi
ja 0x10058097
xor eax, edi
xor ecx, ebx
xor ecx, 0x61656843
xor eax, 0x74
or eax, ecx
jne 0x1005814f
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
lea edx, [esp + 0x190]
push 4
push 0x50823bc
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0x45dea372
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c87
call fcn.1003b900
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.10028ce0
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
jmp 0x10054861
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x60], eax
mov eax, ecx
shr eax, 8
movzx esi, cl
shl eax, 8
mov ecx, 0x508125c
mov edx, 0x4d
or esi, eax
call fcn.10007f70
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x190]
mov dword [esp + 0x190], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x194], esi
mov dword [esp + 0x198], edi
mov dword [esp + 0x19c], ecx
lea ecx, [esp + 0x80]
push eax
call fcn.100031f0
add esp, 4
mov ecx, dword [esp + 0x80]
test ecx, ecx
je 0x100581e6
mov eax, dword [esp + 0x8c]
movq xmm0, qword [esp + 0x84]
dec dword [ebx]
mov edi, dword [ebp + 8]
jmp 0x1004e583
mov eax, dword [esp + 0x84]
mov edi, dword [ebp + 8]
dec dword [ebx]
cmp eax, 3
je 0x1004ed0f
jmp 0x1004ed97
push 0x508302c
call fcn.10004a00
add esp, 4
ud2
push 0x5083058
call fcn.10004a00
add esp, 4
ud2
mov ecx, 1
push 0x5081ea0
call fcn.10004a00
add esp, 4
ud2
mov eax, dword [esp + 0x70]
mov edi, dword [ebp + 8]
dec dword [eax]
mov eax, dword [esp + 0x3c]
add eax, 0x10
mov dword [esp + 0x70], eax
lea edx, [esp + 0x140]
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
push edi
call fcn.10002580
add esp, 8
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10058315
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x10058336
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x100582f0
cmp dword [esp + 0x190], 0
je 0x100583a7
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x6c8
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x100584fb
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x10058504
movq xmm0, qword [esp + 0x198]
movq xmm1, qword [esp + 0x1a0]
mov edi, dword [ebp + 8]
movq qword [esp + 0xc], xmm1
movq qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x1005854b
cmp dword [esp + 8], 0x7e3
jne 0x1005854b
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0xe0]
mov dword [esp + 0xe0], ecx
lea ecx, [esp + 0x190]
push 4
push 0x5082a68
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10063630
add esp, 0x18
xor ebx, ebx
lea edx, [0x508155d]
lea esi, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10058465
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov esi, ebx
movzx edi, ch
shl esi, 4
or edi, esi
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x10058486
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10058440
cmp dword [esp + 0x190], 0
je 0x1005983b
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x6d5
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1005a31d
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm0, xmmword [esp + 0x20]
movlps qword [esp], xmm0
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov edi, dword [ebp + 8]
movdqu xmm0, xmmword [esp]
movd eax, xmm0
test eax, eax
je 0x1005854b
mov eax, dword [esp + 0x70]
movdqu xmmword [esp + 0x190], xmm0
mov edx, 0x5084250
mov ecx, dword [eax]
lea eax, [esp + 0x190]
push eax
push 8
call fcn.1003b250
add esp, 8
lea edx, [esp + 0x140]
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
push edi
call fcn.10002580
add esp, 8
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x100585a5
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x100585c6
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10058580
cmp dword [esp + 0x190], 0
je 0x10058637
mov esi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor edi, 0x6f7
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1005878b
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
jmp 0x10058794
movsd xmm0, qword [esp + 0x198]
movsd xmm1, qword [esp + 0x1a0]
mov edi, dword [ebp + 8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x100587da
cmp dword [esp + 8], 0x13418bf
jne 0x100587da
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [eax + 4], ebx
movaps xmm0, xmmword [esp + 0x20]
movlps qword [esp], xmm0
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
movdqu xmm0, xmmword [esp]
mov edi, dword [ebp + 8]
movd eax, xmm0
test eax, eax
je 0x100587da
lea edx, [esp + 0x140]
lea ecx, [esp + 0x190]
push dword [ebp + 0xc]
push edi
call fcn.10002580
add esp, 8
xor ebx, ebx
lea esi, [0x508155d]
lea edx, [0x508155e]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10058835
mov eax, dword [esp + 0x198]
or eax, dword [esp + 0x19c]
je 0x1005a516
cmp byte [edx + 0x15], 0
je 0x1005acff
mov ecx, 0x507f7ad
mov edx, 8
call fcn.100091f0
test eax, eax
mov esi, 1
mov ecx, 0x507f7b5
mov edx, 6
cmove eax, esi
mov dword [esp + 0x20], eax
call fcn.100091f0
test eax, eax
lea edi, [0x507f7bd]
mov ecx, 0xfffffff9
cmove eax, esi
lea esi, [0x507f7bc]
xor ebx, ebx
mov dword [esp + 0x70], eax
xor eax, eax
nop
movzx edx, byte [esi]
mov esi, edi
mov dh, dl
add dh, 0xd0
cmp dh, 0xa
jb 0x10059ef5
or dl, 0x20
mov dh, dl
add dh, 0x9f
cmp dh, 6
jae 0x1005c879
add dl, 0xa9
mov dh, dl
mov edi, eax
movzx edx, dh
shl edi, 4
or edx, edi
lea edi, [esi + 1]
test ecx, ecx
cmove edi, esi
je 0x10059f14
shld ebx, eax, 4
inc ecx
test esi, esi
mov eax, edx
jne 0x10059ed0
mov eax, dword [esp + 0x20]
mov esi, 0x4433
xor edx, 4
mov ebx, 0x22110000
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x198], edx
mov dword [esp + 0x19c], 0
mov edx, 0x508428d
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x190]
mov dword [esp + 0x20], ecx
push eax
push 5
call fcn.1005cbb0
add esp, 8
mov edi, dword [ebp + 8]
mov eax, dword [edi]
mov ecx, dword [eax + 0x9c]
mov edx, dword [eax + 0x98]
xor ecx, esi
xor edx, ebx
or edx, ecx
jne 0x1005ac07
cmp dword [eax + 0xec], 0x6d736b63
jne 0x1005ac07
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x190]
mov eax, dword [eax + 8]
mov edx, dword [eax]
push dword [ebp + 0x10]
mov dword [esp + 0x74], eax
push dword [eax + 8]
call fcn.10031c90
add esp, 8
xor esi, esi
lea edi, [0x50843d5]
lea edx, [0x50843d6]
mov eax, 0xfffffff9
xor ebx, ebx
nop
movzx ecx, byte [edi]
mov edi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10059ff5
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005c879
add cl, 0xa9
mov edx, ecx
mov ecx, esi
movzx edx, dl
shl ecx, 4
or edx, ecx
test eax, eax
mov ecx, edx
lea edx, [edi + 1]
cmove edx, edi
je 0x1005a016
shld ebx, esi, 4
inc eax
test edi, edi
mov esi, ecx
jne 0x10059fd0
cmp dword [esp + 0x190], 0
je 0x1005a08d
mov edi, dword [esp + 0x19c]
movsd xmm0, qword [esp + 0x194]
mov ebx, dword [esp + 0x1a0]
mov eax, dword [0x5087000]
xor ecx, 0x1e
mov dword [esp + 0x70], ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], edi
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
mov esi, 0x4433
je 0x1005a224
lea ecx, [esp + 0x80]
call fcn.10004080
xor edx, edx
jmp 0x1005a22d
mov ebx, dword [esp + 0x1a0]
mov ecx, dword [esp + 0x70]
mov esi, 0x4433
mov eax, dword [ebx + 0x2c]
cmp eax, dword [ecx + 8]
jne 0x1005ca5a
mov edi, dword [ebp + 8]
mov eax, dword [edi]
mov ecx, dword [eax + 0x12c]
sub ecx, 1
jb 0x1005b85a
mov edx, dword [esp + 0x198]
mov eax, dword [eax + 0x128]
lea ecx, [ecx + ecx*4]
mov dword [esp + 0x100], edx
mov edx, dword [esp + 0x19c]
mov dword [esp + 0xc0], edx
mov edx, dword [eax + ecx*8 + 0x10]
add edx, dword [eax + ecx*8 + 0x14]
cmp edx, 0x400
jne 0x1005a260
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x1c]
xorps xmm0, xmm0
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x1a0], 0
mov ecx, esp
movaps xmmword [esp + 0x190], xmm0
push 0
push 0x14
lea esi, [esp + 0x198]
push esi
push 0
push 0x400
push dword [esp + 0x84]
push eax
call fcn.10032d70
add esp, 0x1c
xor esi, esi
lea edx, [0x50843d5]
lea edi, [0x50843d6]
mov eax, 0xfffffff9
xor ebx, ebx
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [edx]
mov edx, edi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x1005a185
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov edi, esi
movzx ecx, ch
shl edi, 4
or ecx, edi
lea edi, [edx + 1]
test eax, eax
cmove edi, edx
je 0x1005a1a4
shld ebx, esi, 4
inc eax
test edx, edx
mov esi, ecx
jne 0x1005a160
mov eax, dword [esp]
test eax, eax
je 0x1005a530
movsd xmm0, qword [esp + 4]
mov edi, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, dword [0x5087000]
mov dword [esp + 0x70], ecx
lea ecx, [esp + 0x80]
movsd qword [esp + 0x44], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x98], xmm0
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x9c], edi
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
mov ebx, dword [esp + 0xa8]
je 0x1005a637
lea ecx, [esp + 0x98]
call fcn.10004080
xor edx, edx
jmp 0x1005a64d
mov edx, dword [esp + 0x44]
mov dword [edx], edi
mov dword [edx + 4], ebx
movdqa xmm0, xmmword [esp + 0x60]
mov edi, dword [ebp + 8]
movq qword [esp], xmm0
movd eax, xmm0
mov ebx, dword [esp + 4]
mov ecx, ebx
shr ecx, 8
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x70]
test eax, eax
jne 0x1005abb9
jmp 0x1005ac07
mov dword [esp + 0xac], eax
mov dword [esp + 0xa8], 0
jmp 0x1005ab59
mov eax, dword [esp + 4]
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x70], eax
jmp 0x1005a69e
movdqa xmm0, xmmword [esp + 0x60]
mov edx, dword [esp + 0x84]
movd eax, xmm0
mov dword [edx], eax
mov dword [edx + 4], edi
movq xmm0, qword [esp + 0x40]
mov eax, dword [esp + 0x70]
mov edi, dword [ebp + 8]
mov esi, 0x4433
movd ecx, xmm0
test ecx, ecx
je 0x1005a693
pshufd xmm0, xmm0, 0x55
mov dword [esp + 0x60], edx
xor eax, 0x2b
movd edx, xmm0
mov dword [esp + 0x70], eax
mov eax, edx
mov dword [esp + 0xac], edx
shr edx, 8
mov dword [esp + 0xb0], edx
jmp 0x1005ab52
pshufd xmm0, xmm0, 0x55
movd dword [esp + 0x70], xmm0
mov eax, dword [edi]
mov ecx, esp
mov esi, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
push 0
push edi
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10034550
add esp, 0x14
mov ecx, dword [esp]
test ecx, ecx
je 0x1005a6fd
movzx edi, byte [esp + 7]
movzx edx, word [esp + 5]
movzx eax, byte [esp + 4]
mov esi, dword [esp + 8]
shl edi, 0x10
mov dword [esp + 0xac], eax
mov dword [esp + 0x70], esi
or edx, edi
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x60], edx
jmp 0x1005ab4a
xor ecx, ecx
cmp byte [esp + 4], 0x4d
jne 0x1005ab43
mov eax, dword [ebp + 0xc]
add esi, 1
mov ecx, esp
adc edi, 0
mov edx, dword [eax]
push 0
push edi
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10034550
add esp, 0x14
mov eax, dword [esp]
test eax, eax
je 0x1005b409
movzx ecx, byte [esp + 4]
movzx edx, word [esp + 5]
mov dword [esp + 0xac], ecx
movzx ecx, byte [esp + 7]
shl ecx, 0x10
or edx, ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0xb0], edx
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x60], ecx
mov ecx, eax
jmp 0x1005ab4a
mov dword [esp + 0xac], eax
mov edi, dword [ebp + 8]
mov esi, 0x4433
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0xc0]
push ebx
call fcn.100373a0
add esp, 4
dec dword [ebx]
jne 0x1005ab9f
inc dword [ebx + 4]
lea ecx, [ebx + 8]
call fcn.1002cfc0
mov eax, dword [ebx + 4]
dec eax
mov dword [ebx + 4], eax
or eax, dword [ebx]
jne 0x1005ab9f
mov eax, dword [0x5087000]
push 8
push 0x30
push ebx
push 0x5086800
call dword [eax + 0x10]
add esp, 0x10
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0xac]
test eax, eax
je 0x1005ac07
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x190], eax
movzx eax, bl
mov dword [esp + 0x198], ecx
mov ecx, dword [esp + 0x20]
shl edx, 8
or eax, edx
mov edx, 0x5084292
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x19c], eax
lea eax, [esp + 0x190]
push eax
push 0xc
call fcn.1005cbb0
add esp, 8
mov eax, dword [edi]
mov ecx, 0x22110000
xor esi, dword [eax + 0x9c]
xor ecx, dword [eax + 0x98]
or ecx, esi
jne 0x1005acfb
cmp dword [eax + 0xec], 0x73747373
jne 0x1005acfb
cmp dword [eax + 0xcc], 0x2000
jne 0x1005acfb
cmp dword [eax + 0xe4], 0x3000
jne 0x1005acfb
mov ecx, dword [eax + 0x20]
or ecx, dword [eax + 0x24]
jne 0x1005acfb
mov ecx, dword [eax + 0x18]
or ecx, dword [eax + 0x1c]
jne 0x1005acfb
mov edi, 0x2000
mov esi, dword [eax + 0xc]
lea ecx, [esp + 0x190]
add edi, dword [eax + 8]
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
adc esi, 0
push esi
push edi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10034e10
add esp, 0x10
mov eax, dword [esp + 0x190]
test eax, eax
je 0x1005ae64
mov ecx, dword [esp + 0x19c]
movq xmm0, qword [esp + 0x194]
mov dword [esp], eax
movq qword [esp + 4], xmm0
mov dword [esp + 0xc], ecx
mov edi, dword [ebp + 8]
movsd xmm0, qword [esp]
movsd xmm1, qword [esp + 8]
mov ecx, dword [esp + 0x20]
mov edx, 0x508429e
lea eax, [esp + 0x190]
movsd qword [esp + 0x198], xmm1
movsd qword [esp + 0x190], xmm0
push eax
push 6
call fcn.1005cbb0
add esp, 8
mov edx, dword [esp + 0x3c]
cmp byte [edx + 0x14], 0
je 0x1005ae4b
mov esi, edx
lea eax, [esp + 0x140]
mov edx, edi
lea ecx, [esp + 0x190]
push dword [esi + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.100377b0
add esp, 0xc
xor edi, edi
lea edx, [0x50842a5]
lea ebx, [0x50842a6]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x1005ad75
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005c879
add cl, 0xa9
mov ch, cl
mov ebx, edi
movzx esi, ch
shl ebx, 4
or esi, ebx
lea ebx, [edx + 1]
test eax, eax
cmove ebx, edx
je 0x1005ad96
shld dword [esp + 0x20], edi, 4
inc eax
test edx, edx
mov edi, esi
jne 0x1005ad50
mov eax, dword [esp + 0x190]
test eax, eax
je 0x1005ae4b
movsd xmm0, qword [esp + 0x194]
mov edi, dword [esp + 0x19c]
mov dword [esp], eax
mov eax, dword [0x5087000]
lea ecx, [esp + 0x40]
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x80], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], edi
push 4
push 8
push 0x5086800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1005ae2b
lea ecx, [esp + 0x80]
call fcn.10004080
xor eax, eax
movq xmm0, qword [esp]
movd ecx, xmm0
test ecx, ecx
je 0x1005ae4b
mov ecx, dword [esp + 0x128]
xor esi, 0x11d
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], eax
movq qword [ecx], xmm0
jmp 0x1005ae5c
movdqa xmm0, xmmword [esp + 0x20]
mov eax, dword [esp + 0x44]
movd ecx, xmm0
mov dword [eax], ecx
mov dword [eax + 4], edi
movq xmm0, qword [esp]
movd ecx, xmm0
test ecx, ecx
jne 0x1005ae12
mov eax, dword [esp + 0x128]
mov byte [eax + 4], 0
mov dword [eax], 0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [esp + 0x194], 0
mov edi, dword [ebp + 8]
je 0x1005acfb
cmp dword [esp + 0x198], 0x33c0c300
jne 0x1005acfb
mov eax, dword [edi]
mov ebx, dword [ebp + 0xc]
mov edi, 0x2004
lea ecx, [esp + 0x190]
mov esi, dword [eax + 0xc]
add edi, dword [eax + 8]
mov edx, dword [ebx]
adc esi, 0
push 1
push esi
push edi
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.10033e30
add esp, 0x14
mov eax, dword [esp + 0x190]
test eax, eax
jne 0x1005aca3
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x194]
mov eax, dword [eax]
mov dword [esp + 0x110], ecx
mov edx, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov dword [esp + 0x190], ecx
mov eax, edx
mov esi, edi
mov dword [esp + 0xac], edi
mov dword [esp + 0xa8], edx
add eax, 0x2008
mov dword [esp + 0x70], eax
mov eax, edx
adc esi, 0
add eax, ecx
lea ecx, [esp + 0x190]
adc edi, 0
mov dword [esp + 0x60], eax
mov dword [esp + 0xb0], edi
call fcn.10008f60
mov dword [esp + 0x100], edx
mov edx, dword [ebx]
lea ecx, [esp + 0x190]
mov dword [esp + 0xc0], eax
push 1
push esi
push dword [esp + 0x78]
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.100341e0
add esp, 0x14
movq xmm0, qword [esp + 0x190]
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x198]
movd edx, xmm0
test edx, edx
je 0x1005b699
mov edi, dword [ebp + 8]
movq qword [esp], xmm0
mov dword [esp + 0xc], eax
movd eax, xmm0
mov dword [esp + 8], ecx
test eax, eax
jne 0x1005acc3
jmp 0x1005acfb
cmp byte [esp + 4], 0x5a
mov edi, dword [ebp + 8]
mov esi, 0x4433
jne 0x1005b590
mov ecx, dword [esp + 0x70]
cmp ecx, 0x15
jae 0x1005cb7f
cmp ecx, 0x14
jne 0x1005b4bf
movdqa xmm0, xmmword [esp + 0x190]
movd xmm1, dword [esp + 0x1a0]
pcmpeqb xmm1, xmmword [0x507d610]
pcmpeqb xmm0, xmmword [0x507d620]
pand xmm0, xmm1
pmovmskb eax, xmm0
cmp eax, 0xffff
jne 0x1005b4bf
mov dword [esp], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
lea ecx, [esp + 0x40]
mov edx, esp
push 4
push 0x5084404
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
mov edx, 0x549a2aa6
mov dword [esp + 0x70], eax
push dword [esp + 0x44]
push eax
push 0xddf2
call fcn.1003b900
add esp, 0xc
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x70]
call fcn.10028ce0
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0xc0]
push ebx
call fcn.100373a0
add esp, 4
mov ecx, ebx
call fcn.1002d9a0
jmp 0x1005ac07
mov dword [esp + 0xac], eax
xor ecx, ecx
jmp 0x1005ab52
xor eax, dword [esp + 0x100]
xor ecx, dword [esp + 0xc0]
mov edx, dword [ebx]
mov edi, ebx
mov dword [esp + 4], eax
mov eax, esp
mov dword [esp], ecx
lea ecx, [esp + 0x190]
push 1
push 0
push 8
push eax
push dword [esp + 0xc0]
push dword [esp + 0x74]
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.100346a0
add esp, 0x20
mov eax, dword [esp + 0x190]
test eax, eax
je 0x1005b94d
mov ecx, dword [esp + 0x19c]
movq xmm0, qword [esp + 0x194]
mov dword [esp + 0xc], ecx
movq qword [esp + 4], xmm0
mov dword [esp], eax
jmp 0x1005acc0
xor edx, edx
push 0x508144c
call fcn.10004a00
add esp, 4
ud2
mov ecx, 0x50811e4
mov edx, 0x58
call fcn.10007f70
mov ecx, dword [esp + 0x70]
xor eax, eax
sub ecx, edi
cmovb ecx, eax
cmp ecx, 6
jbe 0x10053ac1
mov dword [esp + 0x190], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov ecx, esp
lea edx, [esp + 0x190]
push 4
push 0x5081200
call fcn.10018480
add esp, 8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp]
mov edx, 0xd7df84ac
mov ecx, dword [eax + 0x10]
push dword [esp + 4]
push esi
push 0xffff1c82
call fcn.1003b900
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.10028ce0
jmp 0x10053ac1
mov eax, dword [esp + 0x110]
lea ecx, [esp + 0x190]
dec eax
mov dword [esp + 0x190], eax
call fcn.10008f60
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0xac]
mov ebx, edx
mov edx, dword [edi]
lea ecx, [esp + 0x190]
add eax, 0x2010
adc esi, 0
push 1
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.100341e0
add esp, 0x14
movq xmm0, qword [esp + 0x190]
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x198]
movd edx, xmm0
test edx, edx
jne 0x1005af6e
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0xb0]
add esi, 8
adc edi, 0
xor eax, ebx
xor ecx, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], ecx
lea ecx, [esp + 0x190]
mov edx, dword [eax]
push 1
push 0
push 8
lea ebx, [esp + 0xc]
push ebx
push edi
mov edi, eax
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.100346a0
add esp, 0x20
mov eax, dword [esp + 0x190]
test eax, eax
jne 0x1005b6ea
mov eax, dword [esp + 0x110]
lea ecx, [esp + 0x190]
add eax, 0xfffffffe
mov dword [esp + 0x190], eax
call fcn.10008f60
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0xac]
mov ebx, edx
mov edx, dword [edi]
lea ecx, [esp + 0x190]
add eax, 0x2018
adc esi, 0
push 1
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.100341e0
add esp, 0x14
movq xmm0, qword [esp + 0x190]
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x198]
movd edx, xmm0
test edx, edx
jne 0x1005af6e
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0xb0]
add esi, 0x10
adc edi, 0
xor eax, ebx
xor ecx, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], ecx
lea ecx, [esp + 0x190]
mov edx, dword [eax]
push 1
push 0
push 8
lea ebx, [esp + 0xc]
push ebx
push edi
mov edi, eax
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.100346a0
add esp, 0x20
mov eax, dword [esp + 0x190]
test eax, eax
jne 0x1005b6ea
mov eax, dword [esp + 0x110]
lea ecx, [esp + 0x190]
add eax, 0xfffffffd
mov dword [esp + 0x190], eax
call fcn.10008f60
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0xac]
mov ebx, edx
mov edx, dword [edi]
lea ecx, [esp + 0x190]
add eax, 0x2020
adc esi, 0
push 1
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.100341e0
add esp, 0x14
movq xmm0, qword [esp + 0x190]
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x198]
movd edx, xmm0
test edx, edx
jne 0x1005af6e
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0xb0]
add esi, 0x18
adc edi, 0
xor eax, ebx
xor ecx, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], ecx
lea ecx, [esp + 0x190]
mov edx, dword [eax]
push 1
push 0
push 8
lea ebx, [esp + 0xc]
push ebx
push edi
mov edi, eax
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.100346a0
add esp, 0x20
mov eax, dword [esp + 0x190]
test eax, eax
jne 0x1005b6ea
mov eax, dword [esp + 0x110]
lea ecx, [esp + 0x190]
add eax, 0xfffffffc
mov dword [esp + 0x190], eax
call fcn.10008f60
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0xac]
mov ebx, edx
mov edx, dword [edi]
lea ecx, [esp + 0x190]
add eax, 0x2028
adc esi, 0
push 1
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.100341e0
add esp, 0x14
movq xmm0, qword [esp + 0x190]
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x198]
movd edx, xmm0
test edx, edx
jne 0x1005af6e
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0xb0]
add esi, 0x20
adc edi, 0
xor eax, ebx
xor ecx, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], ecx
lea ecx, [esp + 0x190]
mov edx, dword [eax]
push 1
push 0
push 8
lea ebx, [esp + 0xc]
push ebx
push edi
mov edi, eax
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.100346a0
add esp, 0x20
mov eax, dword [esp + 0x190]
test eax, eax
jne 0x1005b6ea
mov eax, dword [esp + 0x110]
lea ecx, [esp + 0x190]
add eax, 0xfffffffb
mov dword [esp + 0x190], eax
call fcn.10008f60
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0xac]
mov ebx, edx
mov edx, dword [edi]
lea ecx, [esp + 0x190]
add eax, 0x2030
adc esi, 0
push 1
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.100341e0
add esp, 0x14
movq xmm0, qword [esp + 0x190]
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x198]
movd edx, xmm0
test edx, edx
jne 0x1005af6e
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0xb0]
add esi, 0x28
adc edi, 0
xor eax, ebx
xor ecx, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], ecx
lea ecx, [esp + 0x190]
mov edx, dword [eax]
push 1
push 0
push 8
lea ebx, [esp + 0xc]
push ebx
push edi
mov edi, eax
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.100346a0
add esp, 0x20
mov eax, dword [esp + 0x190]
test eax, eax
jne 0x1005b6ea
mov eax, dword [esp + 0x110]
lea ecx, [esp + 0x190]
add eax, 0xfffffffa
mov dword [esp + 0x190], eax
call fcn.10008f60
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0xac]
mov ebx, edx
mov edx, dword [edi]
lea ecx, [esp + 0x190]
add eax, 0x2038
adc esi, 0
push 1
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.100341e0
add esp, 0x14
movq xmm0, qword [esp + 0x190]
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x198]
movd edx, xmm0
test edx, edx
jne 0x1005af6e
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0xb0]
add esi, 0x30
adc edi, 0
xor eax, ebx
xor ecx, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], ecx
lea ecx, [esp + 0x190]
mov edx, dword [eax]
push 1
push 0
push 8
lea ebx, [esp + 0xc]
push ebx
push edi
mov edi, eax
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.100346a0
add esp, 0x20
mov eax, dword [esp + 0x190]
test eax, eax
jne 0x1005b6ea
mov eax, dword [esp + 0x110]
lea ecx, [esp + 0x190]
add eax, 0xfffffff9
mov dword [esp + 0x190], eax
call fcn.10008f60
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xa8]
mov esi, edi
mov edi, dword [esp + 0xac]
mov ebx, edx
lea ecx, [esp + 0x190]
mov edx, dword [esi]
add eax, 0x2040
adc edi, 0
push 1
push edi
push eax
push dword [esi + 8]
push dword [esi + 4]
call fcn.100341e0
add esp, 0x14
movq xmm0, qword [esp + 0x190]
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x198]
movd edx, xmm0
test edx, edx
jne 0x1005af6e
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0xb0]
add esi, 0x38
adc edi, 0
xor eax, ebx
xor ecx, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], ecx
lea ecx, [esp + 0x190]
mov edx, dword [eax]
push 1
push 0
push 8
lea ebx, [esp + 0xc]
push ebx
push edi
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.100346a0
add esp, 0x20
mov eax, dword [esp + 0x190]
test eax, eax
jne 0x1005b6ea
mov edi, dword [ebp + 8]
jmp 0x1005acfb
mov eax, dword [esp + 0x20]
mov eax, dword [eax + ebx + 4]
test eax, eax
je 0x1005c859
push 0x508156c
call fcn.10004a00
add esp, 4
ud2
mov dword [esp + 0x40], 0
xor esi, esi
mov eax, dword [esp + 0x70]
dec dword [eax]
mov edi, dword [ebp + 8]
test esi, esi
jne 0x100557bb
jmp 0x100557e8
mov ecx, 0x50851ac
mov edx, 0xe
push 0x507ed4c
call fcn.100053c0
add esp, 4
ud2
mov ecx, 0x508100c
mov edx, 0x41
push 0x5081050
call fcn.100053c0
add esp, 4
ud2
mov edx, 6
push 0x50811f0
call fcn.10004ed0
add esp, 4
ud2
mov edi, dword [esp + 0x60]
mov bl, 7
jmp 0x1005cab7
lea ebx, [esp + 0x190]
mov edi, edx
mov byte [esp + 0x20], 7
jmp 0x1005cb25
mov edi, dword [esp + 0x190]
mov ebx, eax
mov esi, dword [esp + 0x198]
call fcn.100032c0
mov ecx, eax
push esi
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1005cae6
mov ecx, dword [0x5087000]
push edx
push eax
push edi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
mov ecx, 0x50867d4
mov edx, 0x2b
mov byte [esp + 0x190], bl
push 0x5080860
push 0x5080a90
lea eax, [esp + 0x198]
push eax
call fcn.10005c10
add esp, 0xc
ud2
mov edi, dword [esp + 0x190]
lea ebx, [esp + 0x190]
mov byte [esp + 0x20], al
mov esi, dword [esp + 0x198]
call fcn.100032c0
mov ecx, eax
push esi
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1005cb54
mov ecx, dword [0x5087000]
push edx
push eax
push edi
push 0x5086800
call dword [ecx + 0x10]
add esp, 0x10
movzx eax, byte [esp + 0x20]
mov ecx, 0x50867d4
mov edx, 0x2b
mov byte [esp + 0x190], al
push 0x5080860
push 0x5080a90
push ebx
call fcn.10005c10
add esp, 0xc
ud2
mov edx, 0x14
push 0x50843e0
call fcn.10004ed0
add esp, 4
ud2
mov ecx, 1
xor edx, edx
push 0x5080b70
call fcn.10004e70
add esp, 4
ud2