Function at 0x1004a110
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, 0x1180
call 0x1006dd6f
mov eax, dword [edx]
mov edi, dword [ebp + 8]
mov dword [esp + 0x130], 6
mov dword [esp + 0x144], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x148], eax
mov dword [esp + 0x11c], 0
mov dword [esp + 0x118], 0
mov ebx, dword [edi]
movzx eax, word [ebx + 0x120]
cmp eax, 0x8664
jne 0x10058c9c
movzx eax, word [ebx + 0x106]
and eax, 0xfffffffe
cmp ax, 2
jne 0x1004a2c2
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 0x1004a1e8
mov edx, dword [ebx + 0x12c]
cmp edx, 2
jb 0x1004b105
mov edi, dword [ebx + 0x128]
cmp byte [edi + 0x2f], 0
jne 0x1004a1e8
cmp byte [edi + 0x2e], 0
jne 0x1004a1e8
cmp byte [edi + 0x2d], 0
jne 0x1004a1e8
cmp byte [edi + 0x2c], 0
je 0x1004a939
mov ecx, dword [ebx + 0x12c]
test ecx, ecx
je 0x1004a2c2
mov eax, dword [ebx + 0x128]
mov edi, dword [ebp + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add eax, 8
jmp 0x1004a21c
add eax, 0x28
add ecx, 0xffffffd8
je 0x1004a2c2
mov edx, dword [eax + 0x18]
not edx
test edx, 0xa0000000
jne 0x1004a210
mov edx, dword [ebx + 0xcc]
sub edx, dword [eax + 4]
jb 0x1004a210
cmp edx, dword [eax]
jae 0x1004a210
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3fa46fa
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x1004a2c0
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
mov ebx, dword [edi]
movzx eax, word [ebx + 0x122]
add eax, 0xfffffffe
cmp ax, 2
ja 0x1004a2fd
movzx eax, word [ebx + 0x106]
and eax, 0xfffffffe
cmp ax, 2
jne 0x1004a2fd
movzx eax, word [ebx + 0x126]
cmp eax, 0x2022
jne 0x1004a2fd
cmp dword [ebx + 0xcc], 0
je 0x1004a6a5
mov edi, dword [ebp + 8]
mov eax, dword [edi]
movzx ecx, word [eax + 0x126]
cmp ecx, 0x2022
jne 0x1004a33c
cmp dword [eax + 0x18], 0
je 0x1004a33c
cmp dword [eax + 0x12c], 3
jb 0x1004a33c
mov edx, dword [eax + 0x128]
cmp byte [edx + 0x2f], 0
jne 0x1004a33c
cmp byte [edx + 0x2e], 0
jne 0x1004a33c
cmp byte [edx + 0x2d], 0
je 0x1004a786
mov eax, dword [edi]
cmp dword [eax + 0x18], 0
je 0x1004abf6
mov edx, edi
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
call fcn.10067300
add esp, 4
xor edi, edi
lea esi, [0x3fa50ed]
lea edx, [0x3fa50ee]
mov eax, 0xfffffff9
xor ebx, ebx
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 0x1004a3a5
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x1004a3c6
shld ebx, edi, 4
inc eax
test esi, esi
mov edi, ecx
jne 0x1004a380
mov eax, dword [esp + 0x150]
test eax, eax
je 0x1004a443
movsd xmm0, qword [esp + 0x154]
mov esi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
xor ecx, 0x50
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x80]
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0xa4], esi
push 4
push 8
push 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
mov edi, dword [ebp + 8]
je 0x1004a461
lea ecx, [esp + 0xa0]
call fcn.10005440
xor eax, eax
jmp 0x1004a477
mov ecx, dword [esp + 0x158]
mov eax, dword [esp + 0x154]
mov edi, dword [ebp + 8]
lea esi, [esp + 0x150]
mov dword [esp + 0x20], ecx
jmp 0x1004a4db
movdqa xmm0, xmmword [esp + 0x60]
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 + 0x150]
movd ecx, xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], edx
test ecx, ecx
je 0x1004a4d2
mov dword [esp + 0x150], ecx
mov ecx, dword [esp + 0x3c]
movq xmm0, qword [esp + 0x44]
mov edx, 0x3fa547d
mov ecx, dword [ecx + 0x10]
movq qword [esp + 0x154], xmm0
mov dword [esp + 0x15c], eax
push esi
push 7
call fcn.1005b7c0
add esp, 8
jmp 0x1004abf6
pshufd xmm0, xmm0, 0x55
movd eax, xmm0
lea ecx, [esp + 0xdc]
mov dword [esp + 0x80], 4
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x1150], 0
mov dword [esp + 0xdc], esi
xor ebx, ebx
mov dword [esp + 0x84], ecx
mov edx, dword [eax + 0x34]
mov ecx, dword [eax + 0x30]
lea eax, [edx + edx*8]
add edx, ecx
lea eax, [eax + eax*2]
add edx, eax
nop
add ecx, 0x1c
lea eax, [ecx - 0x1c]
cmp eax, edx
je 0x1004a9c2
mov eax, dword [eax + 0x10]
test eax, eax
je 0x1004a530
mov esi, dword [ecx - 8]
cmp esi, 3
jbe 0x1004a530
mov dword [esp + 0x38], ecx
movzx ecx, byte [eax]
mov dword [esp + 0xc0], edx
mov dword [esp + 0x70], esi
mov dword [esp + 0x60], ebx
xor esi, esi
mov ebx, 0
mov edx, ecx
add dl, 0x81
cmp dl, 0xa1
jb 0x1004a5a2
mov bl, 2
cmp cl, 0x5f
je 0x1004a5a2
mov edx, ecx
mov bl, 3
add dl, 0xd0
cmp dl, 0xa
jb 0x1004a5a2
mov edx, ecx
mov bl, 4
add dl, 0xbf
cmp dl, 0x1a
jb 0x1004a5a2
add cl, 0x9f
cmp cl, 0x1a
setb bl
shl bl, 2
or bl, 1
mov ecx, dword [esp + 0x70]
inc eax
lea edi, [ecx - 1]
jmp 0x1004a5c1
xor ecx, ecx
xor edx, edx
cmp bl, cl
mov ebx, ecx
setne dl
inc eax
add esi, edx
dec edi
je 0x1004a5fe
movzx edx, byte [eax]
mov dh, dl
add dh, 0x81
cmp dh, 0xa1
jb 0x1004a5b0
mov cl, 2
cmp dl, 0x5f
je 0x1004a5b2
mov dh, dl
mov cl, 3
add dh, 0xd0
cmp dh, 0xa
jb 0x1004a5b2
mov dh, dl
mov cl, 4
add dh, 0xbf
cmp dh, 0x1a
jb 0x1004a5b2
add dl, 0x9f
cmp dl, 0x1a
setb cl
shl cl, 2
or cl, 1
jmp 0x1004a5b2
push 0
push dword [esp + 0x74]
push esi
push 0
call 0x1006dd94
add esp, 0x10
test edx, edx
jne 0x1004b656
mov ebx, dword [esp + 0x60]
mov edi, dword [ebp + 8]
lea esi, [esp + 0x80]
mov ecx, ebx
inc ecx
je 0x1004a8b1
cmp ecx, dword [esp + 0x8c]
mov dword [esp + 0x60], eax
jbe 0x1004a66a
mov ebx, ecx
call fcn.10004f20
mov edx, ebx
test eax, eax
je 0x1004a65b
cmp eax, edx
jbe 0x1004a65b
mov ecx, esi
mov edx, eax
call fcn.1002b5c0
mov edx, ebx
cmp al, 8
je 0x1004a66a
mov ecx, esi
call fcn.1002b5c0
cmp al, 8
jne 0x1004a9bb
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x88]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0xc0]
mov dword [eax + ebx*4], ecx
mov ecx, dword [esp + 0x38]
inc ebx
mov dword [esp + 0x88], ebx
add ecx, 0x1c
lea eax, [ecx - 0x1c]
cmp eax, edx
jne 0x1004a53e
jmp 0x1004a9c2
cmp dword [ebx + 0x18], 0
je 0x1004a2fd
mov eax, dword [ebx + 0x20]
or eax, dword [ebx + 0x24]
jne 0x1004a2fd
lea ecx, [ebx + 8]
call fcn.100057c0
mov edi, edx
mov edx, dword [ebx + 0x12c]
cmp edx, 2
jb 0x1004b45f
mov ecx, dword [ebx + 0x128]
add eax, dword [ecx + 0x30]
lea ecx, [esp + 0x150]
adc edi, 0
mov esi, eax
mov dword [esp + 0x60], 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.10037ac0
add esp, 0x14
mov ecx, 0x3fa4c9c
mov edx, 0x23
call fcn.10009f30
mov ecx, esp
mov edx, edi
push eax
call fcn.1002d430
add esp, 4
movq xmm0, qword [esp]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
movd edx, xmm0
test edx, edx
je 0x1004a8bd
movd edx, xmm0
test edx, edx
je 0x1004a2fd
movq qword [esp + 0x150], xmm0
mov dword [esp + 0x158], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x15c], eax
mov edx, 0x3fa5474
mov ecx, dword [ecx + 0x10]
push edi
push 3
call fcn.1005b7c0
add esp, 8
jmp 0x1004a2fd
cmp byte [edx + 0x2c], 0
je 0x1004a33c
movzx eax, byte [edx + 0x2c]
mov ecx, 0x7865742e
xor ecx, dword [edx + 0x28]
xor eax, 0x74
or eax, ecx
jne 0x1004a33c
mov dword [esp + 0x60], edx
mov edx, edi
mov ecx, esp
push dword [ebp + 0xc]
call fcn.10067300
add esp, 4
xor esi, esi
lea ebx, [0x3fa76c9]
lea edx, [0x3fa76ca]
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 0x1004a7fa
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x1004a81b
shld dword [esp + 0x20], esi, 4
inc eax
test ebx, ebx
mov esi, edi
jne 0x1004a7d5
mov eax, dword [esp]
test eax, eax
je 0x1004aff6
mov ecx, dword [esp + 0xc]
movq xmm0, qword [esp + 4]
xor edi, 0x23
mov dword [esp + 0x150], eax
lea edx, [esp + 0x150]
movq qword [esp + 0x154], xmm0
mov dword [esp + 0x15c], ecx
lea ecx, [esp + 0x40]
push edi
call fcn.1002cd30
add esp, 4
mov eax, dword [esp + 0x40]
test eax, eax
je 0x1004b000
mov ecx, dword [esp + 0x4c]
movq xmm0, qword [esp + 0x44]
mov edi, dword [ebp + 8]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x3c]
movq qword [esp + 0x154], xmm0
mov dword [esp + 0x15c], ecx
mov edx, 0x3fa5477
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 6
call fcn.1005b7c0
add esp, 8
jmp 0x1004a33c
mov dword [esp + 0xd4], ebx
jmp 0x1004a9da
mov esi, dword [esp + 0x20]
or ecx, eax
je 0x1004a2fd
mov edi, dword [ebp + 0xc]
mov ebx, dword [esp + 0x60]
mov eax, esi
lea ecx, [esp + 0x150]
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.10037ac0
add esp, 0x14
mov ecx, 0x3fa4c9c
mov edx, 0x26
call fcn.10009f30
mov ecx, esp
lea edx, [esp + 0x150]
push eax
call fcn.1002d430
add esp, 4
movq xmm0, qword [esp]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
movd edx, xmm0
test edx, edx
je 0x1004aecb
lea edi, [esp + 0x150]
jmp 0x1004a747
cmp byte [edi + 0x2b], 0
je 0x1004a1e8
cmp dword [edi + 0x28], 0x30585055
jne 0x1004a1e8
test dword [edi + 0x30], esi
jne 0x1004a1e8
cmp dword [edi + 0x38], 0
jne 0x1004a1e8
cmp dword [edi + 0x48], 0xe0000080
jne 0x1004a1e8
cmp edx, 3
jb 0x1004b703
lea ecx, [edi + 0x50]
call 0x1006d9b0
cmp edx, 4
jne 0x1004a1e8
cmp dword [eax], 0x31585055
jne 0x1004a1e8
test dword [edi + 0x58], esi
jne 0x1004a1e8
cmp dword [edi + 0x60], 0
je 0x1004a1e8
cmp dword [edi + 0x70], 0xe0000040
jne 0x1004a1e8
jmp 0x1004a2c2
mov ebx, dword [esp + 0x88]
cmp ebx, 2
mov dword [esp + 0xd4], ebx
jae 0x1004a9da
mov eax, dword [esp + 0x8c]
jmp 0x1004ab66
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x80]
mov eax, 0x20
mov ecx, 0x20
cmp ebx, edx
mov dword [esp + 0x70], edx
cmovb edx, ebx
test edx, edx
je 0x1004aa05
bsr ecx, edx
xor ecx, 0x1f
sub eax, ecx
mov edi, esp
mov ecx, esi
push eax
push 0
push edi
call fcn.100612d0
add esp, 0xc
mov eax, dword [esi]
mov dword [esp + 0x60], ebx
mov dword [esp + 0xb8], eax
mov eax, ebx
and eax, 0xfffffffe
cmp ebx, 4
mov eax, dword [esi + eax*2]
mov dword [esp + 0xa0], eax
mov eax, dword [esi + ebx*4 - 4]
mov dword [esp + 0x40], eax
jae 0x1004aa4b
mov edi, dword [ebp + 8]
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x1004aab2
mov eax, ebx
lea ecx, [esi + 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 0x1004aa70
paddq xmm0, xmm2
mov edi, dword [ebp + 8]
cmp ebx, eax
pshufd xmm1, xmm0, 0xee
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0x55
movd ecx, xmm1
movd edx, xmm0
je 0x1004aacb
mov ebx, dword [esp + 0x60]
sub ebx, eax
lea eax, [esi + eax*4]
nop dword [eax + eax]
add ecx, dword [eax]
adc edx, 0
add eax, 4
dec ebx
jne 0x1004aac0
push 0
push dword [esp + 0x64]
push edx
push ecx
call 0x1006dd94
add esp, 0x10
test edx, edx
jne 0x1004b67b
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov edx, 0x3fa50f5
mov esi, dword [eax + 0x10]
lea eax, [esp + 0xd4]
mov ecx, esi
push eax
push 0xa
call fcn.1005ba90
add esp, 8
lea eax, [esp + 0xb8]
mov ecx, esi
mov edx, 0x3fa50ff
push eax
push 8
call fcn.1005ba90
add esp, 8
lea eax, [esp + 0xa0]
mov ecx, esi
mov edx, 0x3fa5107
push eax
push 0xb
call fcn.1005ba90
add esp, 8
mov eax, esp
mov ecx, esi
mov edx, 0x3fa5112
push eax
push 0xc
call fcn.1005ba90
add esp, 8
lea eax, [esp + 0x40]
mov ecx, esi
mov edx, 0x3fa511e
push eax
push 8
call fcn.1005ba90
add esp, 8
mov eax, dword [esp + 0x70]
mov edx, 4
mov ecx, 4
push eax
call fcn.10009680
add esp, 4
test eax, eax
je 0x1004abf0
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 0x1000]
mov edi, dword [ecx + 0x1004]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], edx
test ebx, ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], edi
je 0x1004b5a0
cmp ebx, eax
jne 0x1004b5a0
cmp edi, edx
jne 0x1004b5a0
cmp ecx, esi
mov dword [esp + 0xb8], esi
mov dword [esp + 0xa0], ecx
jne 0x1004b5fb
mov edi, dword [ebp + 8]
mov dword [ecx + 0x1000], 0
mov eax, dword [esp + 0x20]
dec dword [eax]
mov edx, edi
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
call fcn.10068280
add esp, 4
xor ebx, ebx
lea edx, [0x3fa1d55]
lea esi, [0x3fa1d56]
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 0x1004ac55
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x1004ac76
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x1004ac30
mov ebx, dword [esp + 0x150]
test ebx, ebx
je 0x1004acda
mov eax, dword [esp + 0x154]
mov esi, dword [esp + 0x158]
xor edi, 0xd
mov ecx, esp
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x40], esi
mov dword [esp + 0x60], eax
mov dword [esp + 0x44], eax
mov eax, dword [0x3fa8000]
push 4
push 8
push 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp], 0
je 0x1004ad58
lea ecx, [esp + 0x40]
call fcn.10005440
xor eax, eax
jmp 0x1004ad65
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x158]
mov edx, dword [eax + 0x10]
mov dword [esp + 0x60], ecx
test edx, edx
mov dword [esp + 0x70], edx
je 0x1004b841
mov ebx, dword [esp + 0x70]
mov eax, dword [eax + 0xc]
xor edi, edi
mov esi, ebx
mov dword [esp + 0x20], eax
jmp 0x1004ad1a
mov ebx, esi
sub esi, edi
jbe 0x1004b841
shr esi, 1
mov edx, dword [esp + 0x20]
xor eax, eax
add esi, edi
mov ecx, esi
shl ecx, 4
cmp dword [edx + ecx + 0xc], 0x2dd2b3ce
mov edx, 0xff
setne al
cmovb eax, edx
cmp al, 1
je 0x1004ad10
movzx eax, al
cmp eax, 0xff
jne 0x1004ada8
inc esi
mov edi, esi
mov esi, ebx
sub esi, edi
ja 0x1004ad1a
jmp 0x1004b841
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x60]
mov dword [eax], esi
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x150], ebx
mov edx, 0x3fa5484
mov dword [esp + 0x154], ecx
mov dword [esp + 0x158], edi
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 6
call fcn.1005b7c0
add esp, 8
jmp 0x1004b847
mov eax, dword [esp + 0x20]
mov edx, dword [eax + ecx + 4]
test edx, edx
je 0x1004b841
mov eax, dword [esp + 0x20]
mov edi, edx
mov esi, dword [eax + ecx]
xor ecx, ecx
jmp 0x1004adda
mov edi, edx
sub edx, ecx
jbe 0x1004b841
shr edx, 1
xor eax, eax
add edx, ecx
mov ebx, edx
shl ebx, 4
cmp dword [esi + ebx + 0xc], 0x2b937060
mov ebx, 0xff
setne al
cmovb eax, ebx
cmp al, 1
je 0x1004add0
movzx eax, al
cmp eax, 0xff
jne 0x1004ae14
inc edx
mov ecx, edx
mov edx, edi
sub edx, ecx
ja 0x1004adda
jmp 0x1004b841
mov edi, dword [esp + 0x70]
xor ecx, ecx
mov esi, edi
jmp 0x1004ae28
mov edi, esi
sub esi, ecx
jbe 0x1004b841
shr esi, 1
mov edx, dword [esp + 0x20]
xor eax, eax
add esi, ecx
mov ebx, esi
shl ebx, 4
cmp dword [edx + ebx + 0xc], 0x2dd2b3ce
mov edx, 0xff
setne al
cmovb eax, edx
cmp al, 1
je 0x1004ae1e
movzx eax, al
cmp eax, 0xff
jne 0x1004ae66
inc esi
mov ecx, esi
mov esi, edi
sub esi, ecx
ja 0x1004ae28
jmp 0x1004b841
mov eax, dword [esp + 0x20]
mov edx, dword [eax + ebx + 4]
test edx, edx
je 0x1004b841
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov edi, edx
mov esi, dword [eax + ebx]
jmp 0x1004ae8d
mov edi, edx
sub edx, ecx
jbe 0x1004b841
shr edx, 1
xor eax, eax
add edx, ecx
mov ebx, edx
shl ebx, 4
cmp dword [esi + ebx + 0xc], 0xc709d571
mov ebx, 0xff
setne al
cmovb eax, ebx
cmp al, 1
je 0x1004ae83
movzx eax, al
cmp eax, 0xff
jne 0x1004afa4
inc edx
mov ecx, edx
mov edx, edi
sub edx, ecx
ja 0x1004ae8d
jmp 0x1004b841
or ecx, eax
lea edi, [esp + 0x150]
je 0x1004a2fd
mov eax, dword [ebp + 0xc]
lea ebx, [esp + 0x150]
mov ecx, ebx
mov edx, dword [eax]
push 0
push esi
push dword [esp + 0x68]
push dword [eax + 8]
push dword [eax + 4]
call fcn.10037ac0
add esp, 0x14
mov ecx, 0x3fa4c9c
mov edx, 0x29
call fcn.10009f30
mov ecx, esp
mov edx, ebx
push eax
call fcn.1002d430
add esp, 4
movq xmm0, qword [esp]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
movd edx, xmm0
test edx, edx
jne 0x1004a747
or ecx, eax
jne 0x1004a2fd
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
lea edx, [esp + 0x150]
push 4
push 0x3fa4cb8
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.1002c250
jmp 0x1004a2fd
mov edi, dword [esp + 0x70]
xor ecx, ecx
mov esi, edi
jmp 0x1004afb8
mov edi, esi
sub esi, ecx
jbe 0x1004b841
shr esi, 1
mov edx, dword [esp + 0x20]
xor eax, eax
add esi, ecx
mov ebx, esi
shl ebx, 4
cmp dword [edx + ebx + 0xc], 0x2dd2b3ce
mov edx, 0xff
setne al
cmovb eax, edx
cmp al, 1
je 0x1004afae
movzx eax, al
cmp eax, 0xff
jne 0x1004b026
inc esi
mov ecx, esi
mov esi, edi
sub esi, ecx
ja 0x1004afb8
jmp 0x1004b841
mov esi, dword [esp + 4]
mov eax, dword [esp + 8]
jmp 0x1004b008
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
cmp dword [esi + 0x18], 0xa
mov dword [esp + 0x20], eax
ja 0x1004b018
cmp dword [esi + 0x14], 0
je 0x1004b08b
mov eax, dword [esp + 0x20]
mov edi, dword [ebp + 8]
dec dword [eax]
jmp 0x1004a33c
mov eax, dword [esp + 0x20]
mov edx, dword [eax + ebx + 4]
test edx, edx
je 0x1004b841
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov edi, edx
mov esi, dword [eax + ebx]
jmp 0x1004b04d
mov edi, edx
sub edx, ecx
jbe 0x1004b841
shr edx, 1
xor eax, eax
add edx, ecx
mov ebx, edx
shl ebx, 4
cmp dword [esi + ebx + 0xc], 0x52cd0d58
mov ebx, 0xff
setne al
cmovb eax, ebx
cmp al, 1
je 0x1004b043
movzx eax, al
cmp eax, 0xff
jne 0x1004b119
inc edx
mov ecx, edx
mov edx, edi
sub edx, ecx
ja 0x1004b04d
jmp 0x1004b841
mov ecx, 0x3fa76fb
mov edx, 0x11
call 0x1006d6b0
mov edi, dword [esi + 0x34]
mov edx, dword [esi + 0x30]
lea ecx, [edi + edi*8]
mov dword [esp + 0x70], edx
lea ebx, [ecx + ecx*2]
mov ecx, ebx
lea ecx, [ebx + edi]
mov dword [esp + 0x38], ebx
test ecx, ecx
je 0x1004b018
mov ebx, edx
add ecx, 0xffffffe4
add edx, 0x1c
cmp dword [ebx], 0
je 0x1004b0b3
cmp dword [ebx + 4], eax
jne 0x1004b0b3
mov ecx, 0x3fa770c
mov edx, 0x13
call 0x1006d6b0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x70]
add ecx, edi
test ecx, ecx
je 0x1004b16f
mov ebx, edx
add ecx, 0xffffffe4
add edx, 0x1c
cmp dword [ebx], 0
je 0x1004b0e6
cmp dword [ebx + 4], eax
jne 0x1004b0e6
jmp 0x1004b018
mov ecx, 1
push 0x3fa569c
call fcn.100067c0
add esp, 4
ud2
mov edi, dword [esp + 0x70]
xor ecx, ecx
mov esi, edi
jmp 0x1004b12d
mov edi, esi
sub esi, ecx
jbe 0x1004b841
shr esi, 1
mov edx, dword [esp + 0x20]
xor eax, eax
add esi, ecx
mov ebx, esi
shl ebx, 4
cmp dword [edx + ebx + 0xc], 0x2dd2b3ce
mov edx, 0xff
setne al
cmovb eax, edx
cmp al, 1
je 0x1004b123
movzx eax, al
cmp eax, 0xff
jne 0x1004b3fe
inc esi
mov ecx, esi
mov esi, edi
sub esi, ecx
ja 0x1004b12d
jmp 0x1004b841
mov ecx, esi
call fcn.1005c2e0
test eax, eax
je 0x1004b018
cmp dword [eax + 0xc], 0
jne 0x1004b018
cmp edi, 1
je 0x1004b394
test edi, edi
je 0x1005b7a0
mov eax, dword [ebp + 8]
add dword [esp + 0x70], 0x28
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc0], ecx
lea eax, [edi + eax - 0x1c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x60]
mov edx, dword [eax]
mov eax, edx
sub eax, dword [ecx + 0x34]
jb 0x1004b018
mov ecx, dword [esp + 0x60]
cmp eax, dword [ecx + 0x30]
jae 0x1004b018
add edx, dword [esp + 0xc0]
mov eax, dword [esp + 0x9c]
lea esi, [esp + 0x150]
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.10045990
add esp, 0xc
mov edx, dword [ebp + 0xc]
mov edi, esp
mov ecx, edi
push esi
call fcn.10065a30
add esp, 4
mov ecx, 0x3fa76c8
mov edx, 0x3e
call fcn.10009f30
lea ecx, [esp + 0x40]
mov edx, edi
push eax
call fcn.1006bba0
add esp, 4
cmp dword [esp + 0x40], 0
jne 0x1004b4c5
movdqu xmm0, xmmword [esp + 0x48]
pshufd xmm1, xmm0, 0x55
movd eax, xmm0
movd ecx, xmm1
or ecx, eax
jne 0x1004b018
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 + 0x15c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
movd dword [esp], xmm1
mov ecx, esi
call fcn.10045990
add esp, 0xc
mov edx, dword [ebp + 0xc]
mov edi, esp
mov ecx, edi
push esi
call fcn.10065c50
add esp, 4
mov ecx, 0x3fa76c8
mov edx, 0x43
call fcn.10009f30
lea ecx, [esp + 0x40]
mov edx, edi
push eax
call fcn.1006bba0
add esp, 4
cmp dword [esp + 0x40], 0
jne 0x1004b4c5
movdqu xmm0, xmmword [esp + 0x48]
pshufd xmm1, xmm0, 0x55
movd eax, xmm0
movd ecx, xmm1
or ecx, eax
jne 0x1004b018
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 + 0x15c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
movd dword [esp], xmm1
mov ecx, esi
call fcn.10045990
add esp, 0xc
mov edx, dword [ebp + 0xc]
mov edi, esp
mov ecx, edi
push esi
call fcn.10065810
add esp, 4
mov ecx, 0x3fa76c8
mov edx, 0x48
call fcn.10009f30
lea ecx, [esp + 0x40]
mov edx, edi
push eax
call fcn.1006bba0
add esp, 4
cmp dword [esp + 0x40], 0
jne 0x1004b4c5
movdqu xmm0, xmmword [esp + 0x48]
pshufd xmm0, xmm0, 0x55
movd eax, xmm0
or eax, dword [esp + 0x48]
jne 0x1004b018
add dword [esp + 0x70], 0x1c
add dword [esp + 0x38], 0xffffffe4
jne 0x1004b1c3
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
lea edx, [esp + 0x150]
push 4
push 0x3fa7730
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.1002c250
jmp 0x1004b018
mov eax, dword [esp + 0x20]
mov edx, dword [eax + ebx + 4]
test edx, edx
je 0x1004b841
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov edi, edx
mov esi, dword [eax + ebx]
jmp 0x1004b425
mov edi, edx
sub edx, ecx
jbe 0x1004b841
shr edx, 1
xor eax, eax
add edx, ecx
mov ebx, edx
shl ebx, 4
cmp dword [esi + ebx + 0xc], 0x1a9b3246
mov ebx, 0xff
setne al
cmovb eax, ebx
cmp al, 1
je 0x1004b41b
movzx eax, al
cmp eax, 0xff
jne 0x1004b473
inc edx
mov ecx, edx
mov edx, edi
sub edx, ecx
ja 0x1004b425
jmp 0x1004b841
mov ecx, 1
push 0x3fa4ca8
call fcn.100067c0
add esp, 4
ud2
mov edi, dword [esp + 0x70]
xor ecx, ecx
mov esi, edi
jmp 0x1004b487
mov edi, esi
sub esi, ecx
jbe 0x1004b841
shr esi, 1
mov edx, dword [esp + 0x20]
xor eax, eax
add esi, ecx
mov ebx, esi
shl ebx, 4
cmp dword [edx + ebx + 0xc], 0x2dd2b3ce
mov edx, 0xff
setne al
cmovb eax, edx
cmp al, 1
je 0x1004b47d
movzx eax, al
cmp eax, 0xff
jne 0x1004b4e9
inc esi
mov ecx, esi
mov esi, edi
sub esi, ecx
ja 0x1004b487
jmp 0x1004b841
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 0x1004a877
jmp 0x1004a33c
mov eax, dword [esp + 0x20]
mov edx, dword [eax + ebx + 4]
test edx, edx
je 0x1004b841
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov edi, edx
mov esi, dword [eax + ebx]
jmp 0x1004b510
mov edi, edx
sub edx, ecx
jbe 0x1004b841
shr edx, 1
xor eax, eax
add edx, ecx
mov ebx, edx
shl ebx, 4
cmp dword [esi + ebx + 0xc], 0x40c62caa
mov ebx, 0xff
setne al
cmovb eax, ebx
cmp al, 1
je 0x1004b506
movzx eax, al
cmp eax, 0xff
jne 0x1004b54a
inc edx
mov ecx, edx
mov edx, edi
sub edx, ecx
ja 0x1004b510
jmp 0x1004b841
mov edi, dword [esp + 0x70]
xor ecx, ecx
mov esi, edi
jmp 0x1004b55e
mov edi, esi
sub esi, ecx
jbe 0x1004b841
shr esi, 1
mov edx, dword [esp + 0x20]
xor eax, eax
add esi, ecx
mov ebx, esi
shl ebx, 4
cmp dword [edx + ebx + 0xc], 0x2dd2b3ce
mov edx, 0xff
setne al
cmovb eax, edx
cmp al, 1
je 0x1004b554
movzx eax, al
cmp eax, 0xff
jne 0x1004b6a2
inc esi
mov ecx, esi
mov esi, edi
sub esi, ecx
ja 0x1004b55e
jmp 0x1004b841
lea eax, [esp + 0xb8]
lea edx, [esp + 0xa0]
lea ecx, [esp + 0x40]
mov dword [esp], 0x3fa479c
mov dword [esp + 4], 3
mov dword [esp + 0x10], 0
mov dword [esp + 8], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 0x3f34a30
mov dword [esp + 0x48], edx
mov ecx, esp
mov edx, 0x3fa47b4
mov dword [esp + 0x4c], 0x3f34a30
mov dword [esp + 0xc], 2
call fcn.10006750
ud2
lea eax, [esp + 0xb8]
lea edx, [esp + 0xa0]
lea ecx, [esp + 0x40]
mov dword [esp], 0x3fa475c
mov dword [esp + 4], 3
mov dword [esp + 0x10], 0
mov dword [esp + 8], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 0x3f6a180
mov dword [esp + 0x48], edx
mov ecx, esp
mov edx, 0x3fa4774
mov dword [esp + 0x4c], 0x3f6a180
mov dword [esp + 0xc], 2
call fcn.10006750
ud2
mov eax, esp
mov ecx, 0x3fa78a8
mov edx, 0x2b
mov byte [esp], 1
push 0x3fa5af8
push 0x3fa52a0
push eax
call fcn.100079d0
add esp, 0xc
ud2
mov ecx, 0x3fa78a8
mov edx, 0x2b
mov byte [esp], 1
push 0x3fa5af8
push 0x3fa52a0
lea eax, [esp + 8]
push eax
call fcn.100079d0
add esp, 0xc
ud2
mov eax, dword [esp + 0x20]
mov edx, dword [eax + ebx + 4]
test edx, edx
je 0x1004b841
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov edi, edx
mov esi, dword [eax + ebx]
jmp 0x1004b6c9
mov edi, edx
sub edx, ecx
jbe 0x1004b841
shr edx, 1
xor eax, eax
add edx, ecx
mov ebx, edx
shl ebx, 4
cmp dword [esi + ebx + 0xc], 0xd222f5a1
mov ebx, 0xff
setne al
cmovb eax, ebx
cmp al, 1
je 0x1004b6bf
movzx eax, al
cmp eax, 0xff
jne 0x1004b71c
inc edx
mov ecx, edx
mov edx, edi
sub edx, ecx
ja 0x1004b6c9
jmp 0x1004b841
mov ecx, 2
mov edx, 2
push 0x3fa56ac
call fcn.100067c0
add esp, 4
ud2
mov esi, dword [esp + 0x70]
mov ebx, dword [esp + 0x20]
xor ecx, ecx
mov edx, 0xff
jmp 0x1004b73b
mov esi, dword [esp + 0x70]
sub dword [esp + 0x70], ecx
jbe 0x1004b841
mov edi, dword [esp + 0x70]
xor eax, eax
shr edi, 1
add edi, ecx
mov dword [esp + 0x70], edi
shl edi, 4
cmp dword [ebx + edi + 0xc], 0x2dd2b3ce
setne al
cmovb eax, edx
cmp al, 1
je 0x1004b72d
movzx eax, al
cmp eax, 0xff
jne 0x1004b77c
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x70], esi
inc ecx
sub dword [esp + 0x70], ecx
ja 0x1004b73b
jmp 0x1004b841
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + edi + 4]
test ecx, ecx
je 0x1004b841
mov eax, dword [esp + 0x20]
mov esi, ecx
mov eax, dword [eax + edi]
xor edi, edi
jmp 0x1004b7a3
mov esi, ecx
sub ecx, edi
jbe 0x1004b841
shr ecx, 1
xor ebx, ebx
add ecx, edi
mov edx, ecx
shl edx, 4
cmp dword [eax + edx + 0xc], 0xe9b7ea0f
mov edx, 0xff
setne bl
cmovb ebx, edx
cmp bl, 1
je 0x1004b799
movzx edx, bl
cmp edx, 0xff
jne 0x1004b7dc
inc ecx
mov edi, ecx
mov ecx, esi
sub ecx, edi
ja 0x1004b7a3
jmp 0x1004b841
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
lea edx, [esp + 0x150]
push 4
push 0x3fa1d5d
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.1002c250
mov eax, dword [esp + 0x60]
dec dword [eax]
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
call fcn.10068280
add esp, 4
lea esi, [0x3fa5349]
lea edx, [0x3fa534a]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
mov dword [esp + 0x60], 0
nop dword [eax]
movzx ebx, byte [esi]
mov esi, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x1004b8a5
or bl, 0x20
mov edx, ebx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x1004b8cc
shld dword [esp + 0x60], ebx, 4
inc eax
test esi, esi
mov dword [esp + 0x20], ecx
jne 0x1004b880
mov eax, dword [esp + 0x150]
test eax, eax
je 0x1004b946
movsd xmm0, qword [esp + 0x154]
mov esi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
xor ecx, 0x15
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x80]
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0xa4], esi
push 4
push 8
push 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
je 0x1004b969
lea ecx, [esp + 0xa0]
call fcn.10005440
xor eax, eax
jmp 0x1004b97f
mov eax, dword [esp + 0x158]
mov edi, dword [esp + 0x154]
mov dword [esp + 0x38], eax
mov esi, dword [edi + 0x10]
cmp esi, 1
jne 0x1004ba07
jmp 0x1004bcc0
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 + 0x38]
movd ecx, xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], edx
test ecx, ecx
je 0x1004b9f2
movq xmm0, qword [esp + 0x44]
mov dword [esp + 0x150], ecx
mov edx, 0x3fa548a
movq qword [esp + 0x154], xmm0
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 6
call fcn.1005b7c0
add esp, 8
mov eax, dword [edi]
movzx ecx, word [eax + 0x126]
cmp ecx, 0x2022
je 0x1004bcde
jmp 0x1004ced8
pshufd xmm0, xmm0, 0x55
movd edi, xmm0
mov esi, dword [edi + 0x10]
cmp esi, 1
je 0x1004bcc0
mov ecx, 0x3fa5351
mov edx, 8
call 0x1006d6b0
test esi, esi
mov dword [esp + 0x20], eax
je 0x1004bcc0
mov eax, dword [edi + 0xc]
xor ebx, ebx
mov dword [esp + 0x70], esi
mov dword [esp + 0x60], eax
jmp 0x1004ba4c
mov dword [esp + 0x70], esi
sub esi, ebx
jbe 0x1004bcc0
shr esi, 1
mov eax, dword [esp + 0x60]
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 0x1004ba40
movzx ecx, dl
cmp ecx, 0xff
jne 0x1004ba8e
inc esi
mov ebx, esi
mov esi, dword [esp + 0x70]
sub esi, ebx
ja 0x1004ba4c
jmp 0x1004bcc0
mov eax, dword [esp + 0x60]
mov eax, dword [eax + edi + 4]
cmp eax, 9
mov dword [esp + 0xc0], eax
ja 0x1004bcc0
mov ecx, 0x3fa5359
mov edx, 0xc
call 0x1006d6b0
cmp dword [esp + 0xc0], 0
mov dword [esp + 0x20], eax
je 0x1004bcc0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc0]
xor ebx, ebx
add eax, edi
mov edi, dword [esp + 0x20]
mov edx, ecx
mov dword [esp + 0x70], ecx
mov eax, dword [eax]
mov dword [esp + 0x60], eax
jmp 0x1004baf4
mov dword [esp + 0x70], edx
sub edx, ebx
jbe 0x1004bcc0
shr edx, 1
mov eax, dword [esp + 0x60]
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 0x1004bae8
movzx ecx, cl
cmp ecx, 0xff
jne 0x1004bb32
inc edx
mov ebx, edx
mov edx, dword [esp + 0x70]
sub edx, ebx
ja 0x1004baf4
jmp 0x1004bcc0
mov ecx, 0x3fa5365
mov edx, 8
call 0x1006d6b0
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0xc0]
push eax
call fcn.10062160
add esp, 4
test eax, eax
jne 0x1004bcc0
mov ecx, 0x3fa536d
mov edx, 0xd
call 0x1006d6b0
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0xc0]
push eax
call fcn.10062160
add esp, 4
test eax, eax
jne 0x1004bcc0
mov ecx, 0x3fa537a
mov edx, 0xc
call 0x1006d6b0
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0xc0]
push eax
call fcn.10062160
add esp, 4
test eax, eax
jne 0x1004bcc0
mov ecx, 0x3fa5386
mov edx, 0xc
call 0x1006d6b0
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0xc0]
push eax
call fcn.10062160
add esp, 4
test eax, eax
jne 0x1004bcc0
mov ecx, 0x3fa5392
mov edx, 0xe
call 0x1006d6b0
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0xc0]
push eax
call fcn.10062160
add esp, 4
test eax, eax
jne 0x1004bcc0
mov ecx, 0x3fa53a0
mov edx, 5
call 0x1006d6b0
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0xc0]
push eax
call fcn.10062160
add esp, 4
test eax, eax
jne 0x1004bcc0
mov ecx, 0x3fa53a5
mov edx, 0xc
call 0x1006d6b0
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0xc0]
push eax
call fcn.10062160
add esp, 4
test eax, eax
jne 0x1004bcc0
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
lea edx, [esp + 0x150]
push 4
push 0x3fa53b1
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.1002c250
mov eax, dword [esp + 0x38]
mov edi, dword [ebp + 8]
dec dword [eax]
mov eax, dword [edi]
movzx ecx, word [eax + 0x126]
cmp ecx, 0x2022
jne 0x1004ced8
movzx ecx, word [eax + 0xf8]
cmp ecx, 0x20b
jne 0x1004ced8
mov ecx, dword [eax + 0x18]
or ecx, dword [eax + 0x1c]
jne 0x1004ced8
mov esi, dword [eax + 0xcc]
test esi, esi
je 0x1004ced8
mov edi, dword [ebp + 0xc]
mov ebx, dword [eax + 0xc]
add esi, dword [eax + 8]
lea ecx, [esp + 0x150]
mov edx, edi
adc ebx, 0
push 0xa
push 0x3fa76d1
mov dword [esp + 0x78], ebx
push ebx
push esi
call fcn.10063bc0
add esp, 0x10
lea ecx, [0x3fa76c9]
lea edx, [0x3fa76ca]
mov eax, 0xfffffff9
nop word cs:[eax + eax]
movzx ebx, byte [ecx]
mov ecx, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x1004bd6e
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1005b495
lea edx, [ecx + 1]
test eax, eax
cmove edx, ecx
je 0x1004bd7d
inc eax
test ecx, ecx
jne 0x1004bd50
mov eax, dword [esp + 0x150]
test eax, eax
je 0x1004bdec
movsd xmm0, qword [esp + 0x154]
mov ebx, esi
mov esi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004bdf6
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x1004be0b
movzx eax, byte [esp + 0x154]
jmp 0x1004be1b
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 0x1004c021
mov eax, dword [esp + 4]
test al, al
je 0x1004c043
mov ebx, dword [esp + 0x70]
mov eax, esi
xor edx, edx
movd xmm0, esi
mov byte [esp + 0x160], 2
mov dword [esp + 0x60], 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 [0x3f9e5b0]
movd xmm0, edx
pshufd xmm0, xmm0, 0x44
psllq xmm0, 0x3f
psrad xmm0, 0x1f
pshufd xmm0, xmm0, 0xf5
movdqa xmm2, xmm0
pand xmm0, xmmword [0x3f9e5c0]
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 + 0x150]
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 + 0xb8], ecx
mov dword [esp + 0xbb], eax
movsd qword [esp + 0xa0], xmm0
movsd qword [esp + 0xa8], xmm1
jb 0x1004ce67
movsd xmm0, qword [esp + 0xa0]
movq xmm1, qword [esp + 0xa8]
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xbb]
lea edx, [esp + 0x150]
movq qword [esp + 0x158], xmm1
movsd qword [esp + 0x150], xmm0
mov byte [esp + 0x160], 0
mov dword [esp + 0x161], eax
mov dword [esp + 0x164], ecx
lea ecx, [esp + 0x40]
push edi
push 6
push 0x3fa76db
call fcn.1006bc30
add esp, 0xc
xor edi, edi
lea esi, [0x3fa76c9]
lea edx, [0x3fa76ca]
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 0x1004bfa5
or bl, 0x20
mov edx, ebx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x1004bfc6
shld dword [esp + 0x20], edi, 4
inc eax
test esi, esi
mov edi, ebx
jne 0x1004bf80
cmp dword [esp + 0x40], 0
je 0x1004c408
movsd xmm0, qword [esp + 0x44]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
xor ebx, 0x80
lea edx, [esp + 0x150]
movsd qword [esp + 0x150], xmm0
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], ecx
lea ecx, [esp + 0x84]
push ebx
call fcn.1002cd30
add esp, 4
mov eax, dword [esp + 0x90]
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0x60]
test eax, eax
je 0x1004c043
mov ecx, eax
mov ebx, eax
call fcn.10005440
mov eax, dword [0x3fa8000]
push 4
push 8
push ebx
push 0x3fa78d4
call dword [eax + 0x10]
add esp, 0x10
mov eax, dword [esp + 0x70]
mov edx, edi
mov word [esp + 0xdc], 0x24
lea ecx, [esp + 0x150]
push 3
push 0x3fa76ed
mov dword [esp + 0x28], eax
push eax
mov dword [esp + 0x6c], esi
push esi
call fcn.10063bc0
add esp, 0x10
xor esi, esi
lea edi, [0x3fa76c9]
lea edx, [0x3fa76ca]
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 0x1004c0b5
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x1004c0d6
shld ebx, esi, 4
inc eax
test edi, edi
mov esi, ecx
jne 0x1004c090
mov eax, dword [esp + 0x150]
test eax, eax
je 0x1004c149
movsd xmm0, qword [esp + 0x154]
mov edi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
mov ebx, 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], edi
push 4
push 8
push 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
mov esi, dword [esp + 0x60]
je 0x1004c15a
lea ecx, [esp + 0x80]
call fcn.10005440
xor edx, edx
jmp 0x1004c16d
movzx ecx, byte [esp + 0x154]
mov esi, dword [esp + 0x60]
jmp 0x1004c226
movdqa xmm0, xmmword [esp + 0x70]
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 + 0x70], eax
je 0x1004c226
xor ebx, 0xa7
mov dword [esp + 0x60], ecx
shr ecx, 0x10
mov dword [esp + 0xc0], edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x9c], ecx
xor edi, edi
lea ecx, [0x3fa76c9]
lea edx, [0x3fa76ca]
mov eax, 0xfffffff9
xor ebx, ebx
nop word cs:[eax + eax]
nop
mov esi, ecx
movzx ecx, byte [ecx]
mov dword [esp + 0x20], edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x1004c1e9
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x1004c20c
shld ebx, edi, 4
inc eax
test ecx, ecx
mov edi, esi
jne 0x1004c1c0
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x9c]
xor esi, 0xe8
jmp 0x1004c57c
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x20]
test cl, cl
je 0x1004cec9
mov edi, esi
mov edx, esi
mov esi, ebx
mov ecx, ebx
mov byte [esp + 0x160], 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 + 0x150]
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 + 0xa0], xmm0
movsd qword [esp + 0xa8], xmm1
jb 0x1004ce67
movsd xmm0, qword [esp + 0xa0]
movq xmm1, qword [esp + 0xa8]
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd7]
lea edx, [esp + 0x150]
movq qword [esp + 0x158], xmm1
movsd qword [esp + 0x150], xmm0
mov byte [esp + 0x160], 0
mov dword [esp + 0x161], eax
mov dword [esp + 0x164], ecx
lea ecx, [esp + 0x40]
push dword [ebp + 0xc]
push 3
push 0x3fa76f0
call fcn.1006bc30
add esp, 0xc
lea esi, [0x3fa76c9]
lea ebx, [0x3fa76ca]
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 0x1004c375
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x1004c396
shld dword [esp + 0x20], edx, 4
inc eax
test esi, esi
mov edx, edi
jne 0x1004c350
cmp dword [esp + 0x40], 0
je 0x1004c49e
movsd xmm0, qword [esp + 0x44]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
xor edi, 0xad
lea edx, [esp + 0x150]
movsd qword [esp + 0x150], xmm0
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], ecx
lea ecx, [esp + 0x84]
push edi
call fcn.1002cd30
add esp, 4
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x90]
jmp 0x1004c551
mov eax, dword [esp + 0x48]
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0x60]
or eax, dword [esp + 0x4c]
je 0x1004c043
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.1006c230
add esp, 0x10
mov ecx, 0x3fa76c8
mov edx, 0x84
call fcn.10009f30
mov ecx, dword [esp]
test ecx, ecx
je 0x1004c70f
mov edx, dword [esp + 0xc]
movsd xmm0, qword [esp + 4]
mov dword [esp + 0x150], ecx
lea ecx, [esp + 0x40]
movsd qword [esp + 0x154], xmm0
mov dword [esp + 0x15c], edx
lea edx, [esp + 0x150]
push eax
call fcn.1002cd30
add esp, 4
mov eax, dword [esp + 0x4c]
cmp dword [esp + 0x40], 0
jne 0x1004c021
mov ebx, dword [esp + 0x48]
jmp 0x1004c717
mov eax, dword [esp + 0x48]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x4c]
je 0x1004cec9
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
lea edi, [esp + 0x150]
mov ecx, edi
mov esi, edx
mov ebx, eax
add esi, 0x20
adc ebx, 0
push ebx
push esi
push eax
call fcn.10045990
add esp, 0xc
mov ecx, esp
mov edx, edi
push dword [ebp + 0xc]
push 3
push 0x3fa76f3
call fcn.1006bc30
add esp, 0xc
mov ecx, 0x3fa76c8
mov edx, 0xb8
call fcn.10009f30
cmp dword [esp], 0
je 0x1004c769
movsd xmm0, qword [esp + 4]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movsd qword [esp + 0x150], xmm0
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], edx
lea ecx, [esp + 0x44]
lea edx, [esp + 0x150]
push eax
call fcn.1002cd30
add esp, 4
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x50]
mov ecx, 0x3fa76c8
mov edx, 0xe8
mov dword [esp + 0x60], ebx
mov dword [esp + 0xc0], eax
shr ebx, 0x10
call fcn.10009f30
test edi, edi
je 0x1004c66f
mov ecx, dword [esp + 0x60]
mov esi, eax
movzx eax, ch
mov dword [esp + 0x60], ecx
movzx ecx, cl
shl ebx, 0x10
mov dword [esp + 0x70], edi
movd xmm1, edi
mov edi, dword [esp + 0x38]
shl eax, 8
or ecx, eax
mov eax, dword [0x3fa8000]
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 0x3fa78d4
lea ecx, [esp + 0x15c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x150], 0
je 0x1004c5e9
mov ecx, esp
call fcn.10005440
xor eax, eax
jmp 0x1004c5f5
mov eax, dword [esp + 0x154]
mov dword [eax], edi
mov dword [eax + 4], ebx
mov edx, dword [esp + 0x70]
movaps xmm0, xmmword [esp + 0x20]
test edx, edx
movlps qword [esp + 0xb8], xmm0
je 0x1004c66f
movzx ecx, word [esp + 0xbd]
mov word [esp + 0x155], cx
movzx ecx, byte [esp + 0xbf]
mov byte [esp + 0x157], cl
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x150], edx
mov edx, 0x3fa5490
mov byte [esp + 0x154], cl
mov dword [esp + 0x158], esi
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 6
call fcn.1005b7c0
add esp, 8
mov edi, dword [ebp + 8]
jmp 0x1004ced8
mov eax, dword [esp + 0x60]
mov edi, dword [ebp + 8]
test al, al
je 0x1004ced8
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3fa7734
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x1004ced8
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x1004ced8
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x150]
mov edx, edi
push 3
push 0x3fa76e1
push eax
push ebx
call fcn.10063bc0
add esp, 0x10
mov ecx, 0x3fa76c8
mov edx, 0x86
call fcn.10009f30
mov ecx, esp
lea edx, [esp + 0x150]
push eax
call fcn.1006c3c0
add esp, 4
cmp dword [esp], 0
je 0x1004c7fe
mov eax, dword [esp + 0xc]
jmp 0x1004c021
mov eax, dword [esp + 8]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0xc]
je 0x1004cec9
mov eax, dword [ebp + 0xc]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
lea edi, [esp + 0x150]
mov ecx, edi
mov edx, dword [eax]
push 1
push ebx
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10037e30
add esp, 0x14
mov ecx, 0x3fa76c8
mov edx, 0xbd
call fcn.10009f30
mov ecx, esp
mov edx, edi
push eax
call fcn.1006c470
add esp, 4
mov eax, dword [esp]
test eax, eax
mov dword [esp + 0x70], eax
je 0x1004c88e
movzx eax, byte [esp + 4]
mov ah, byte [esp + 5]
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x60], eax
movzx eax, word [esp + 6]
mov dword [esp + 0x38], edx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x9c], eax
jmp 0x1004c19f
mov eax, dword [esp + 0x20]
cmp byte [esp + 4], 0
je 0x1004c043
mov edx, ebx
mov ecx, eax
add edx, 0x90
adc ecx, 0
add ebx, 0xb0
adc eax, 0
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x150]
push eax
push ebx
push dword [esp + 0x40]
call fcn.10045990
add esp, 0xc
mov eax, edi
mov edi, esp
lea edx, [esp + 0x150]
mov ecx, edi
push eax
push 9
push 0x3fa76e4
call fcn.1006bc30
add esp, 0xc
mov ecx, 0x3fa76c8
mov edx, 0x8d
call fcn.10009f30
lea ecx, [esp + 0x40]
mov edx, edi
push eax
call fcn.1006bba0
add esp, 4
cmp dword [esp + 0x40], 0
je 0x1004c9c2
mov eax, dword [esp + 0x50]
mov edi, dword [ebp + 0xc]
jmp 0x1004c021
movzx eax, byte [esp + 4]
mov edx, esi
lea edi, [esp + 0x150]
add edx, 5
mov ecx, edi
mov byte [esp + 0xdd], al
mov eax, ebx
adc eax, 0
add esi, 0x25
adc ebx, 0
push ebx
push esi
push eax
call fcn.10045990
add esp, 0xc
lea eax, [esp + 0xdc]
mov ecx, esp
mov edx, edi
push dword [ebp + 0xc]
push 2
push eax
call fcn.1006bc30
add esp, 0xc
mov ecx, 0x3fa76c8
mov edx, 0xc2
call fcn.10009f30
cmp dword [esp], 0
jne 0x1004c504
mov eax, dword [esp + 8]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0xc]
je 0x1004cec9
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.10037380
add esp, 0x10
mov ecx, 0x3fa76c8
mov edx, 0xc7
call fcn.10009f30
mov ecx, dword [esp]
test ecx, ecx
je 0x1004ca82
mov edx, dword [esp + 0xc]
movsd xmm0, qword [esp + 4]
mov dword [esp + 0x150], ecx
lea ecx, [esp + 0x40]
movsd qword [esp + 0x154], xmm0
mov dword [esp + 0x15c], edx
lea edx, [esp + 0x150]
push eax
call fcn.1002cd30
add esp, 4
mov eax, dword [esp + 0x40]
test eax, eax
mov dword [esp + 0x70], eax
je 0x1004ca89
mov eax, dword [esp + 0x48]
movzx esi, word [esp + 0x44]
movzx ebx, word [esp + 0x46]
mov ecx, 0x3fa76c8
mov edx, 0xe8
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc0], eax
call fcn.10009f30
mov edi, dword [esp + 0x70]
mov ecx, esi
jmp 0x1004c57a
mov eax, dword [esp + 0x48]
or eax, dword [esp + 0x4c]
je 0x1004ca29
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0x150]
mov eax, edi
mov esi, ebx
add eax, 4
adc esi, 0
push 9
push 0x3fa76e4
push esi
push eax
call fcn.10063bc0
add esp, 0x10
mov ecx, 0x3fa76c8
mov edx, 0x94
call fcn.10009f30
mov ecx, esp
lea edx, [esp + 0x150]
push eax
call fcn.1006c3c0
add esp, 4
cmp dword [esp], 0
je 0x1004ca35
mov eax, dword [esp + 0xc]
jmp 0x1004c01a
mov eax, dword [esp + 0x70]
mov edi, dword [ebp + 0xc]
jmp 0x1004c047
cmp byte [esp + 4], 0
je 0x1004cbc4
mov edx, edi
mov edi, dword [ebp + 0xc]
lea ecx, [esp + 0x150]
push dword [edi + 8]
push dword [edi + 4]
push dword [edi]
push ebx
call fcn.1006c230
add esp, 0x10
mov eax, dword [esp + 0x15c]
cmp dword [esp + 0x150], 0
mov esi, dword [esp + 0x60]
jne 0x1004c021
mov esi, dword [esp + 0x158]
jmp 0x1004c047
movzx eax, word [esp + 4]
jmp 0x1004ca8e
movzx eax, word [esp + 0x44]
movzx eax, ax
mov cl, 1
cmp eax, 0x64c0
mov dword [esp + 0x60], ecx
jg 0x1004cab5
cmp eax, 0x446b
je 0x1004cad2
cmp eax, 0x4481
je 0x1004cad2
cmp eax, 0x4c81
je 0x1004cad2
jmp 0x1004caca
cmp eax, 0x64c1
je 0x1004cad2
cmp eax, 0x6cc1
je 0x1004cad2
cmp eax, 0x7481
je 0x1004cad2
mov dword [esp + 0x60], 0
mov edx, dword [esp + 0x20]
mov esi, edi
lea ebx, [esp + 0x150]
mov ecx, ebx
mov eax, edx
add eax, 0x20
adc esi, 0
push esi
push eax
push edi
call fcn.10045990
add esp, 0xc
mov ecx, esp
mov edx, ebx
push dword [ebp + 0xc]
push 2
lea eax, [esp + 0xe4]
push eax
call fcn.1006bc30
add esp, 0xc
mov ecx, 0x3fa76c8
mov edx, 0xc2
call fcn.10009f30
cmp dword [esp], 0
jne 0x1004c504
mov eax, dword [esp + 8]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0xc]
je 0x1004cec9
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.10037380
add esp, 0x10
mov ecx, 0x3fa76c8
mov edx, 0xc7
call fcn.10009f30
mov ecx, dword [esp]
test ecx, ecx
je 0x1004cbd4
mov edx, dword [esp + 0xc]
movsd xmm0, qword [esp + 4]
mov dword [esp + 0x150], ecx
lea ecx, [esp + 0x40]
movsd qword [esp + 0x154], xmm0
mov dword [esp + 0x15c], edx
lea edx, [esp + 0x150]
push eax
call fcn.1002cd30
add esp, 4
mov eax, dword [esp + 0x40]
test eax, eax
mov dword [esp + 0x70], eax
jne 0x1004c98b
movzx eax, word [esp + 0x44]
jmp 0x1004cbd9
mov eax, dword [esp + 0x70]
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0x60]
jmp 0x1004c047
movzx eax, word [esp + 4]
movzx eax, ax
cmp eax, 0x64c0
jg 0x1004cbfa
cmp eax, 0x446b
je 0x1004cc0f
cmp eax, 0x4481
je 0x1004cc0f
cmp eax, 0x4c81
je 0x1004cc0f
jmp 0x1004cc33
cmp eax, 0x64c1
je 0x1004cc0f
cmp eax, 0x7481
je 0x1004cc0f
cmp eax, 0x6cc1
jne 0x1004cc33
cmp byte [esp + 0x60], 0
mov al, 1
mov dword [esp + 0x60], eax
je 0x1004cc33
mov ecx, 0x3fa76c8
mov edx, 0xe8
call fcn.10009f30
mov edi, dword [ebp + 8]
jmp 0x1004c67e
mov ebx, dword [esp + 0x20]
mov eax, edi
lea ecx, [esp + 0x150]
mov edx, edi
add eax, 0x20
mov esi, ebx
adc esi, 0
push esi
push eax
push ebx
call fcn.10045990
add esp, 0xc
mov ecx, esp
lea edx, [esp + 0x150]
push dword [ebp + 0xc]
push 2
lea eax, [esp + 0xe4]
push eax
call fcn.1006bc30
add esp, 0xc
mov ecx, 0x3fa76c8
mov edx, 0xc2
call fcn.10009f30
cmp dword [esp], 0
jne 0x1004c504
mov eax, dword [esp + 8]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0xc]
je 0x1004cec9
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.10037380
add esp, 0x10
mov ecx, 0x3fa76c8
mov edx, 0xc7
call fcn.10009f30
mov ecx, dword [esp]
test ecx, ecx
je 0x1004cd2a
mov edx, dword [esp + 0xc]
movsd xmm0, qword [esp + 4]
mov dword [esp + 0x150], ecx
lea ecx, [esp + 0x40]
movsd qword [esp + 0x154], xmm0
mov dword [esp + 0x15c], edx
lea edx, [esp + 0x150]
push eax
call fcn.1002cd30
add esp, 4
mov eax, dword [esp + 0x40]
test eax, eax
mov dword [esp + 0x70], eax
jne 0x1004c98b
movzx eax, word [esp + 0x44]
jmp 0x1004cd2f
movzx eax, word [esp + 4]
movzx eax, ax
cmp eax, 0x64c0
jg 0x1004cd50
cmp eax, 0x446b
je 0x1004cd65
cmp eax, 0x4481
je 0x1004cd65
cmp eax, 0x4c81
je 0x1004cd65
jmp 0x1004cd76
cmp eax, 0x64c1
je 0x1004cd65
cmp eax, 0x7481
je 0x1004cd65
cmp eax, 0x6cc1
jne 0x1004cd76
cmp byte [esp + 0x60], 0
mov al, 1
mov dword [esp + 0x60], eax
jne 0x1004cc1c
mov ebx, dword [esp + 0x20]
mov eax, edi
lea ecx, [esp + 0x150]
mov edx, edi
add eax, 0x20
mov esi, ebx
adc esi, 0
push esi
push eax
push ebx
call fcn.10045990
add esp, 0xc
mov ecx, esp
lea edx, [esp + 0x150]
push dword [ebp + 0xc]
push 2
lea eax, [esp + 0xe4]
push eax
call fcn.1006bc30
add esp, 0xc
mov ecx, 0x3fa76c8
mov edx, 0xc2
call fcn.10009f30
cmp dword [esp], 0
jne 0x1004c504
mov eax, dword [esp + 8]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0xc]
je 0x1004cec9
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.10037380
add esp, 0x10
mov ecx, 0x3fa76c8
mov edx, 0xc7
call fcn.10009f30
mov ecx, dword [esp]
test ecx, ecx
je 0x1004ce80
mov edx, dword [esp + 0xc]
movsd xmm0, qword [esp + 4]
mov dword [esp + 0x150], ecx
lea ecx, [esp + 0x40]
movsd qword [esp + 0x154], xmm0
mov dword [esp + 0x15c], edx
lea edx, [esp + 0x150]
push eax
call fcn.1002cd30
add esp, 4
mov eax, dword [esp + 0x40]
test eax, eax
mov dword [esp + 0x70], eax
jne 0x1004c98b
movzx eax, word [esp + 0x44]
jmp 0x1004ce85
mov ecx, 0x3fa7af8
mov edx, 0x2b
push 0x3fa5280
call fcn.10007180
add esp, 4
ud2
movzx eax, word [esp + 4]
movzx eax, ax
cmp eax, 0x64c0
jg 0x1004cea6
cmp eax, 0x446b
je 0x1004cebb
cmp eax, 0x4481
je 0x1004cebb
cmp eax, 0x4c81
je 0x1004cebb
jmp 0x1004cec6
cmp eax, 0x64c1
je 0x1004cebb
cmp eax, 0x7481
je 0x1004cebb
cmp eax, 0x6cc1
jne 0x1004cec6
cmp byte [esp + 0x60], 0
jne 0x1004cc1c
mov edi, dword [ebp + 8]
mov ecx, 0x3fa76c8
mov edx, 0xe8
call fcn.10009f30
mov eax, dword [edi]
mov ecx, dword [eax + 0x18]
or ecx, dword [eax + 0x1c]
jne 0x1004d19c
movzx ecx, word [eax + 0xf8]
cmp ecx, 0x20b
jne 0x1004d19c
movzx eax, word [eax + 0x126]
not eax
test eax, 0x2022
jne 0x1004d19c
lea edx, [esp + 0x118]
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
push edi
call fcn.100041e0
add esp, 8
xor ebx, ebx
lea esi, [0x3fa76c9]
lea edx, [0x3fa76ca]
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 0x1004cf75
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x1004cf96
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x1004cf50
cmp dword [esp + 0x150], 0
je 0x1004d007
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004d140
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x1004d149
movq xmm0, qword [esp + 0x158]
movq xmm1, qword [esp + 0x160]
mov edi, dword [ebp + 8]
movq qword [esp + 0xc], xmm1
movq qword [esp + 4], xmm0
cmp dword [esp + 4], 1
jne 0x1004d19c
cmp dword [esp + 8], 0x7dd
jne 0x1004d19c
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 + 0x150]
push 0xb
push 0x3fa77a8
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ecx, ecx
lea edx, [0x3fa76c9]
lea esi, [0x3fa76ca]
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 0x1004d0b5
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005b495
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 0x1004d0d4
shld edi, ecx, 4
inc eax
test edx, edx
mov ecx, ebx
jne 0x1004d090
cmp dword [esp + 0x150], 0
je 0x1004ef56
movq xmm0, qword [esp + 0x154]
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x160]
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.1002cd30
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 0x1004d168
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 0x1004d19c
mov eax, dword [esp + 0x3c]
movdqa xmm0, xmmword [esp + 0x40]
mov edx, 0x3fa5496
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
movdqu xmmword [esp + 0x150], xmm0
push eax
push 8
call fcn.1005b7c0
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 + 0x150]
push 8
push 0x3fa4bf8
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
mov eax, dword [esp + 0x150]
test eax, eax
jne 0x1004d26e
cmp dword [esp + 0x158], 1
jne 0x1004d26e
mov edx, esp
mov dword [esp], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
lea ecx, [esp + 0x40]
push 4
push 0x3fa4c98
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 0x48]
call fcn.10009680
add esp, 4
test eax, eax
je 0x1004d299
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
jmp 0x1004d296
test eax, eax
je 0x1004d299
mov esi, dword [esp + 0x160]
test esi, esi
je 0x1004d299
mov ecx, esi
call fcn.10005440
mov eax, dword [0x3fa8000]
push 4
push 8
push esi
push 0x3fa78d4
call dword [eax + 0x10]
add esp, 0x10
mov eax, dword [edi]
test byte [eax + 0x127], 0x20
je 0x1004dbe7
movzx ecx, word [eax + 0xf8]
cmp ecx, 0x20b
jne 0x1004dbe7
mov ecx, dword [eax + 0x18]
or ecx, dword [eax + 0x1c]
je 0x1004dbe7
mov edx, edi
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
call fcn.10067300
add esp, 4
xor edi, edi
lea edx, [0x3f9e98d]
lea ebx, [0x3f9e98e]
mov eax, 0xfffffff9
xor esi, esi
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x1004d315
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x1004d334
shld esi, edi, 4
inc eax
test edx, edx
mov edi, ecx
jne 0x1004d2f0
mov eax, dword [esp + 0x150]
test eax, eax
je 0x1004d3af
movsd xmm0, qword [esp + 0x154]
mov esi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
xor ecx, 0x41
mov ebx, ecx
lea ecx, [esp + 0xa0]
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0xb8], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0xbc], esi
push 4
push 8
push 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0xa0], 0
mov edi, dword [ebp + 8]
je 0x1004d3c2
lea ecx, [esp + 0xb8]
call fcn.10005440
xor eax, eax
jmp 0x1004d3d8
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x158]
mov edi, dword [ebp + 8]
jmp 0x1004d43a
movdqa xmm0, xmmword [esp + 0x20]
mov eax, dword [esp + 0xa4]
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 0x1004d42f
movq xmm0, qword [esp + 0x44]
mov dword [esp + 0x150], ecx
movq qword [esp + 0x154], xmm0
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x3c]
mov edx, 0x3fa549e
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 6
call fcn.1005b7c0
add esp, 8
jmp 0x1004dbe7
pshufd xmm0, xmm0, 0x55
mov ecx, ebx
movd eax, xmm0
mov edx, dword [eax + 0x34]
mov ebx, dword [eax + 0x30]
mov dword [esp + 0xb4], ecx
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 + 0x38], edx
jmp 0x1004d489
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x60]
mov edi, dword [ebp + 8]
add ebx, 0x1c
mov dword [esp + 0x20], eax
dec ecx
je 0x1004db06
cmp ebx, edx
je 0x1004db02
mov dword [esp + 0x60], 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 0x1004d470
cmp dword [esp + 0x20], 3
mov eax, 3
je 0x1004d474
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x150]
lea edx, [esp + 0xb8]
mov dword [esp + 0xb8], eax
push 2
push 0x3f9e948
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
push esi
call fcn.100624c0
add esp, 0x18
mov eax, dword [esp + 0x150]
test eax, eax
jne 0x1004d687
cmp dword [esp + 0x158], 1
jne 0x1004d687
mov dword [esp + 0xc0], ebx
mov esi, dword [esp + 0x160]
mov ebx, dword [esp + 0x164]
mov dword [esp], 3
mov dword [esp + 4], 0x40
mov dword [esp + 8], 0x3f9e978
mov dword [esp + 0xc], 1
lea ecx, [esp + 0x150]
lea edx, [esp + 0xb8]
push 1
lea eax, [esp + 4]
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
push ebx
push esi
call fcn.100624c0
add esp, 0x18
mov eax, dword [esp + 0x150]
test eax, eax
jne 0x1004d699
cmp dword [esp + 0x158], 1
jne 0x1004d699
mov eax, dword [esp + 0x160]
lea ecx, [esp + 0x150]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb8]
mov edx, dword [eax]
push 0
push ebx
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10037e30
add esp, 0x14
xor esi, esi
mov eax, 0xfffffff9
lea ebx, [0x3f9e98e]
xor edx, edx
lea edi, [0x3f9e98d]
nop word [eax + eax]
movzx ecx, byte [edi]
mov edi, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x1004d5f5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
add cl, 0xa9
mov ch, cl
mov ebx, esi
movzx ecx, ch
shl ebx, 4
or ecx, ebx
lea ebx, [edi + 1]
test eax, eax
cmove ebx, edi
je 0x1004d614
shld edx, esi, 4
inc eax
test edi, edi
mov esi, ecx
jne 0x1004d5d0
mov eax, dword [esp + 0x150]
test eax, eax
je 0x1004d6bf
movsd xmm0, qword [esp + 0x154]
mov edi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
mov esi, ecx
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x70], xmm0
mov dword [esp + 0xa4], edi
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0x4c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004d6c9
lea ecx, [esp + 0xa0]
call fcn.10005440
xor ebx, ebx
jmp 0x1004d6dc
test eax, eax
je 0x1004d6b0
lea ecx, [esp + 0x15c]
call fcn.10005440
jmp 0x1004d6b0
test eax, eax
je 0x1004d6a9
lea ecx, [esp + 0x15c]
call fcn.10005440
mov ebx, dword [esp + 0xc0]
mov edx, dword [esp + 0x38]
xor eax, eax
add eax, dword [esp + 0x20]
jmp 0x1004d474
movzx ecx, byte [esp + 0x154]
jmp 0x1004d6eb
movdqa xmm0, xmmword [esp + 0x70]
mov ebx, dword [esp + 0x44]
movd eax, xmm0
mov dword [ebx], eax
mov dword [ebx + 4], edi
mov eax, dword [esp]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x10056ca7
mov edi, dword [esp + 0xb8]
movzx eax, cl
mov esi, dword [esp + 0xb0]
lea ecx, [esp + 0x150]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x9c]
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.10037e30
add esp, 0x14
xor edx, edx
mov eax, 0xfffffff9
lea edi, [0x3f9e98e]
lea ebx, [0x3f9e98d]
mov dword [esp + 0x70], 0
nop word cs:[eax + eax]
movzx ecx, byte [ebx]
mov ebx, edi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x1004d775
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
add cl, 0xa9
mov ch, cl
mov edi, edx
movzx esi, ch
shl edi, 4
or esi, edi
lea edi, [ebx + 1]
test eax, eax
cmove edi, ebx
je 0x1004d796
shld dword [esp + 0x70], edx, 4
inc eax
test ebx, ebx
mov edx, esi
jne 0x1004d750
mov eax, dword [esp + 0x150]
test eax, eax
je 0x1004d80a
movsd xmm0, qword [esp + 0x154]
mov edi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x70], xmm0
mov dword [esp + 0xa4], edi
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0x4c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
mov ebx, dword [esp + 0xc0]
je 0x1004d81f
lea ecx, [esp + 0xa0]
call fcn.10005440
xor eax, eax
jmp 0x1004d834
movzx ecx, byte [esp + 0x154]
mov ebx, dword [esp + 0xc0]
mov edx, dword [esp + 0x38]
jmp 0x1004d847
movdqa xmm0, xmmword [esp + 0x70]
mov ecx, dword [esp + 0x44]
movd eax, xmm0
mov dword [ecx], eax
mov eax, ecx
mov dword [ecx + 4], edi
mov edi, dword [esp]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x38]
test edi, edi
jne 0x10056d04
mov eax, ecx
and al, 0xc7
cmp al, 0x44
jne 0x1004d97c
mov eax, dword [esp + 0xb8]
lea ecx, [esp + 0x150]
mov edx, dword [eax]
push 0
push dword [esp + 0xb4]
push dword [esp + 0xa4]
push dword [eax + 8]
push dword [eax + 4]
call fcn.10037e30
add esp, 0x14
mov eax, dword [esp + 0x150]
test eax, eax
je 0x1004da79
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x15c]
movq xmm0, qword [esp + 0x154]
mov ecx, 0xfffffff9
lea edi, [0x3f9e98e]
lea ebx, [0x3f9e98d]
mov dword [esp + 0x70], 0
mov dword [esp + 0x9c], eax
xor eax, eax
nop dword [eax]
movzx edx, byte [ebx]
mov ebx, edi
mov dh, dl
add dh, 0xd0
cmp dh, 0xa
jb 0x1004d8f5
or dl, 0x20
mov dh, dl
add dh, 0x9f
cmp dh, 6
jae 0x1005b495
add dl, 0xa9
mov dh, dl
mov edi, eax
movzx esi, dh
shl edi, 4
or esi, edi
lea edi, [ebx + 1]
test ecx, ecx
cmove edi, ebx
je 0x1004d916
shld dword [esp + 0x70], eax, 4
inc ecx
test ebx, ebx
mov eax, esi
jne 0x1004d8d0
mov eax, dword [esp + 0xb0]
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0x150], eax
mov eax, dword [0x3fa8000]
movq qword [esp + 0x154], xmm0
pshufd xmm0, xmm0, 0x55
movd dword [esp + 0x40], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov dword [esp + 0x44], ebx
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp], 0
je 0x1004da9a
lea ecx, [esp + 0x40]
call fcn.10005440
xor edi, edi
jmp 0x1004daad
not cl
test cl, 0x84
jne 0x1004d6b4
mov eax, dword [esp + 0xb8]
mov ecx, esp
mov edx, dword [eax]
push 0
push dword [esp + 0xb4]
push dword [esp + 0xa4]
push dword [eax + 8]
push dword [eax + 4]
call fcn.10037710
add esp, 0x14
xor ecx, ecx
mov eax, 0xfffffff9
lea edi, [0x3f9e98e]
xor edx, edx
lea esi, [0x3f9e98d]
nop word cs:[eax + eax]
nop
movzx ebx, byte [esi]
mov esi, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x1004d9f5
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005b495
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 0x1004da14
shld edx, ecx, 4
inc eax
test esi, esi
mov ecx, ebx
jne 0x1004d9d0
mov eax, dword [esp]
mov ecx, dword [esp + 4]
test eax, eax
je 0x1004da6c
mov esi, ecx
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x150], eax
xor ebx, 0x24
mov dword [esp + 0x154], esi
mov dword [esp + 0x158], ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x15c], edx
lea edx, [esp + 0x150]
push ebx
call fcn.1002cd30
add esp, 4
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
test eax, eax
jne 0x10056f38
mov ebx, dword [esp + 0xc0]
mov edx, dword [esp + 0x38]
jmp 0x1004dad1
movzx eax, byte [esp + 0x154]
mov ecx, 0x3f9e98c
mov edx, 0x21
mov esi, eax
call fcn.10009f30
mov edx, dword [esp + 0x38]
mov ecx, esi
jmp 0x1004dace
movdqa xmm0, xmmword [esp + 0x70]
mov edi, dword [esp + 4]
movd eax, xmm0
mov dword [edi], eax
mov dword [edi + 4], ebx
mov eax, dword [esp + 0x150]
mov ebx, dword [esp + 0xc0]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x154]
test eax, eax
jne 0x10056d88
movsx ecx, cl
mov eax, dword [esp + 0xe0]
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 0x1004d6b6
mov eax, dword [esp + 0x20]
lea edx, [0x3f9e98d]
lea esi, [0x3f9e98e]
mov ecx, 0xfffffff9
nop word [eax + eax]
movzx ebx, byte [edx]
mov edx, esi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x1004db3e
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1005b495
lea esi, [edx + 1]
test ecx, ecx
cmove esi, edx
je 0x1004db4d
inc ecx
test edx, edx
jne 0x1004db20
mov ecx, dword [esp + 0xb4]
dec dword [ecx]
cmp eax, 3
jne 0x1004dbe7
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3f9e995
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x1004dbe7
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
lea esi, [esp + 0x150]
lea edx, [esp + 0x118]
mov ecx, esi
push dword [ebp + 0xc]
push edi
call fcn.100041e0
add esp, 8
cmp dword [esp + 0x150], 0
je 0x1004dd38
movdqu xmm0, xmmword [esp + 0x154]
movd eax, xmm0
test eax, eax
je 0x1004dc41
mov eax, dword [esp + 0x3c]
movups xmmword [esp + 0x150], xmm0
mov edx, 0x3fa54a4
mov ecx, dword [eax + 0x10]
push esi
push 8
call fcn.1005b7c0
add esp, 8
lea edx, [esp + 0x118]
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
push edi
call fcn.100041e0
add esp, 8
xor edi, edi
lea edx, [0x3fa2249]
lea ebx, [0x3fa224a]
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 0x1004dca5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x1004dcc6
shld dword [esp + 0x20], edi, 4
inc eax
test edx, edx
mov edi, esi
jne 0x1004dc80
cmp dword [esp + 0x150], 0
je 0x1004de68
mov edi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004dfb8
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x1004dfc1
cmp dword [esp + 0x158], 0
jne 0x1004dc41
cmp dword [esp + 0x15c], 0x7e3
jne 0x1004dc41
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0x164]
mov esi, dword [esp + 0x160]
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0x150]
push 7
push 0x3f9e9e4
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
push esi
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea esi, [0x3f9e98d]
lea edx, [0x3f9e98e]
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 0x1004ddd5
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x1004ddf6
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x1004ddb0
cmp dword [esp + 0x150], 0
je 0x1004e24b
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004e39b
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x1004e3a4
movsd xmm0, qword [esp + 0x158]
movsd xmm1, qword [esp + 0x160]
mov edi, dword [ebp + 8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x1004e008
cmp dword [esp + 8], 0x7e3
jne 0x1004e008
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0x150]
push 0xa
push 0x3fa2180
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor edi, edi
lea edx, [0x3fa2249]
lea ebx, [0x3fa224a]
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 0x1004df25
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x1004df46
shld dword [esp + 0x20], edi, 4
inc eax
test edx, edx
mov edi, esi
jne 0x1004df00
cmp dword [esp + 0x150], 0
je 0x1004e2f3
mov edi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004e3e1
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x1004e3ea
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 0x1004e008
mov eax, dword [esp + 0x3c]
movups xmmword [esp + 0x150], xmm0
mov edx, 0x3fa54ac
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 5
call fcn.1005b7c0
add esp, 8
mov eax, dword [edi]
mov ecx, dword [eax + 0x12c]
cmp ecx, 7
mov dword [esp + 0x150], ecx
jae 0x1004e066
mov edi, dword [ebp + 8]
lea ecx, [0x3fa2249]
lea edx, [0x3fa224a]
mov eax, 0xfffffff9
movzx ebx, byte [ecx]
mov ecx, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x1004e04e
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1005b495
lea edx, [ecx + 1]
test eax, eax
cmove edx, ecx
je 0x1004e5c2
inc eax
test ecx, ecx
jne 0x1004e030
jmp 0x1004e5c2
mov edx, dword [eax + 0x12c]
mov ecx, dword [eax + 0x128]
push 5
push 0x3fa76f6
call fcn.10036520
add esp, 8
cmp ax, 1
jne 0x1004e01c
mov edi, edx
cmp dx, 3
jb 0x1004e01c
mov eax, dword [esp + 0x3c]
mov edx, 0x3fa3d24
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
mov dword [esp + 0x60], ecx
push eax
push 0x16
call fcn.1005ba90
add esp, 8
movzx ecx, di
mov edi, dword [ebp + 8]
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
mov eax, 0xfffffff9
nop dword [eax + eax]
movzx ebx, byte [edx]
mov edx, esi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x1004e0ee
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1005b495
lea esi, [edx + 1]
test eax, eax
cmove esi, edx
je 0x1004e0fd
inc eax
test edx, edx
jne 0x1004e0d0
mov eax, dword [edi]
add ecx, 0xfffffffe
mov edx, dword [eax + 0x12c]
cmp ecx, edx
jae 0x1005ac16
mov edx, dword [eax + 0x128]
lea ecx, [ecx + ecx*4]
mov esi, 0xfffffc00
add esi, dword [edx + ecx*8 + 8]
cmp esi, 0xbff
ja 0x1004e5c2
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 0x1004e5c2
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x150]
mov dword [esp + 0x38], ebx
mov edx, dword [eax]
push ebx
mov dword [esp + 0x74], esi
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10036e60
add esp, 0x10
xor esi, esi
lea ebx, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x1004e1b5
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x1004e1d6
shld dword [esp + 0x20], esi, 4
inc eax
test ebx, ebx
mov esi, edi
jne 0x1004e190
cmp dword [esp + 0x150], 0
je 0x1004e420
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004e4da
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x1004e4e3
mov eax, dword [esp + 0x158]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x15c]
je 0x1004dc41
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3f9ea70
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x1004dc41
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x1004dc41
mov eax, dword [esp + 0x158]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x15c]
je 0x1004e008
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3fa2251
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x1004e008
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x1004e008
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 + 0x150]
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 0x1004dc22
jmp 0x1004dc41
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 0x1004dfe2
jmp 0x1004e008
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x15c]
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x70]
or ecx, dword [esp + 0x164]
or eax, dword [esp + 0x160]
or eax, ecx
mov ecx, dword [esp + 0x38]
jne 0x1004e5c2
mov ebx, dword [ebp + 0xc]
mov eax, edx
mov esi, ecx
lea ecx, [esp + 0x150]
add eax, 0x10
adc esi, 0
mov edx, dword [ebx]
push esi
push eax
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.10036e60
add esp, 0x10
mov ecx, 0x3fa2248
mov edx, 0xa7
call fcn.10009f30
cmp dword [esp + 0x150], 0
je 0x100563d4
movq xmm0, qword [esp + 0x154]
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x160]
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.1002cd30
add esp, 4
mov edx, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
jmp 0x1004e4f6
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 0x1004e555
mov dword [esp + 0x150], edx
mov byte [esp + 0x154], cl
mov ecx, dword [esp + 0x60]
mov word [esp + 0x15d], ax
shr eax, 0x10
mov dword [esp + 0x155], edi
mov dword [esp + 0x159], esi
mov edx, 0x3fa54b1
mov byte [esp + 0x15f], al
lea eax, [esp + 0x150]
push eax
push 7
call fcn.1005b7c0
add esp, 8
mov edi, dword [ebp + 8]
jmp 0x1004e5c2
mov edi, dword [ebp + 8]
test cl, 1
je 0x1004e5c2
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
lea edx, [esp + 0x150]
push 4
push 0x3fa2268
call fcn.1001d310
add esp, 8
mov edi, dword [esp]
mov ecx, dword [esp + 0x60]
mov edx, 0xbd51f66
push dword [esp + 4]
push edi
push 0xffff1c70
call fcn.1003fca0
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, edi
mov edi, dword [ebp + 8]
call fcn.1002c250
mov eax, dword [edi]
cmp dword [eax + 0x18], 0
je 0x1004e8da
mov edx, edi
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
call fcn.10067300
add esp, 4
xor edi, edi
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
mov eax, 0xfffffff9
xor ebx, ebx
nop word [eax + eax]
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x1004e625
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x1004e646
shld ebx, edi, 4
inc eax
test esi, esi
mov edi, ecx
jne 0x1004e600
mov eax, dword [esp + 0x150]
test eax, eax
je 0x1004e6c4
movsd xmm0, qword [esp + 0x154]
mov esi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
xor ecx, 0xd6
mov ebx, ecx
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0xa4], esi
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0x8c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
mov edi, dword [ebp + 8]
je 0x1004e6e4
lea ecx, [esp + 0xa0]
call fcn.10005440
xor eax, eax
jmp 0x1004e6fa
mov esi, dword [esp + 0x154]
mov ebx, dword [esp + 0x158]
mov edi, dword [ebp + 8]
cmp dword [esi + 0x34], 5
je 0x1004e766
jmp 0x1004e8d8
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 edx, ebx
movd ecx, xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], ebx
test ecx, ecx
je 0x1004e753
movsd xmm0, qword [esp + 0x44]
mov dword [esp + 0x150], ecx
mov edx, 0x3fa54b8
movsd qword [esp + 0x154], xmm0
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 7
call fcn.1005b7c0
add esp, 8
jmp 0x1004e8da
pshufd xmm0, xmm0, 0x55
movd esi, xmm0
cmp dword [esi + 0x34], 5
jne 0x1004e8d8
mov ecx, 0x3fa226c
mov edx, 6
call 0x1006d6b0
mov esi, dword [esi + 0x30]
cmp dword [esi], 0
je 0x1004e782
cmp dword [esi + 4], eax
je 0x1004e7b6
cmp dword [esi + 0x1c], 0
je 0x1004e78d
cmp dword [esi + 0x20], eax
je 0x1004e7b6
cmp dword [esi + 0x38], 0
je 0x1004e798
cmp dword [esi + 0x3c], eax
je 0x1004e7b6
cmp dword [esi + 0x54], 0
je 0x1004e7a3
cmp dword [esi + 0x58], eax
je 0x1004e7b6
cmp dword [esi + 0x70], 0
je 0x1004e8d8
cmp dword [esi + 0x74], eax
jne 0x1004e8d8
mov ecx, 0x3fa2272
mov edx, 9
call 0x1006d6b0
cmp dword [esi], 0
je 0x1004e7cf
cmp dword [esi + 4], eax
je 0x1004e803
cmp dword [esi + 0x1c], 0
je 0x1004e7da
cmp dword [esi + 0x20], eax
je 0x1004e803
cmp dword [esi + 0x38], 0
je 0x1004e7e5
cmp dword [esi + 0x3c], eax
je 0x1004e803
cmp dword [esi + 0x54], 0
je 0x1004e7f0
cmp dword [esi + 0x58], eax
je 0x1004e803
cmp dword [esi + 0x70], 0
je 0x1004e8d8
cmp dword [esi + 0x74], eax
jne 0x1004e8d8
mov ecx, 0x3fa227b
mov edx, 0x14
call 0x1006d6b0
cmp dword [esi], 0
je 0x1004e81c
cmp dword [esi + 4], eax
je 0x1004e850
cmp dword [esi + 0x1c], 0
je 0x1004e827
cmp dword [esi + 0x20], eax
je 0x1004e850
cmp dword [esi + 0x38], 0
je 0x1004e832
cmp dword [esi + 0x3c], eax
je 0x1004e850
cmp dword [esi + 0x54], 0
je 0x1004e83d
cmp dword [esi + 0x58], eax
je 0x1004e850
cmp dword [esi + 0x70], 0
je 0x1004e8d8
cmp dword [esi + 0x74], eax
jne 0x1004e8d8
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3fa228f
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x1004e8d8
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
dec dword [ebx]
push 0x200
push 0
lea eax, [esp + 0x158]
push eax
call 0x1006da30
add esp, 0xc
lea edx, [esp + 0x118]
mov ecx, esp
push edi
call fcn.10004b60
add esp, 4
xor edi, edi
lea edx, [0x3fa2249]
lea ebx, [0x3fa224a]
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 0x1004e945
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x1004e964
shld esi, edi, 4
inc eax
test edx, edx
mov edi, ecx
jne 0x1004e920
mov eax, dword [esp]
test eax, eax
je 0x1004e9d3
movsd xmm0, qword [esp + 4]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, dword [0x3fa8000]
mov ebx, ecx
movsd qword [esp + 0x44], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0xa4], esi
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0x8c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
mov edi, dword [ebp + 8]
je 0x1004e9e0
lea ecx, [esp + 0xa0]
call fcn.10005440
xor esi, esi
jmp 0x1004e9f8
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0xc]
mov edi, dword [ebp + 8]
jmp 0x1004ea12
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 0x1004f198
cmp ecx, 0x8000
mov eax, esi
xorps xmm0, xmm0
sbb eax, 0
jae 0x1004ea27
jmp 0x1004f198
mov eax, dword [edi]
mov dword [esp + 0x60], ecx
mov ecx, dword [eax + 0x12c]
sub ecx, 1
jb 0x1005a448
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 + 0x60]
mov ecx, esi
sub eax, edx
sbb ecx, 0
cmovb eax, ebx
cmovb ecx, ebx
cmp eax, 0x8000
sbb ecx, 0
jb 0x1004f198
mov eax, dword [ebp + 0xc]
mov ecx, esp
mov dword [esp + 0x20], 0
mov dword [esp + 0x38], esi
mov eax, dword [eax + 8]
mov edx, dword [eax]
push dword [ebp + 0x10]
mov dword [esp + 0x74], eax
push dword [eax + 8]
call fcn.10031530
add esp, 8
lea edi, [0x3fa2249]
lea ecx, [0x3fa224a]
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 0x1004ead5
or bl, 0x20
mov ecx, ebx
add cl, 0x9f
cmp cl, 6
jae 0x1005b495
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 0x1004eaf6
shld dword [esp + 0x20], esi, 4
inc eax
test edi, edi
mov esi, edx
jne 0x1004eab0
cmp dword [esp], 0
je 0x1004eb6b
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 + 0x60], eax
mov eax, dword [0x3fa8000]
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
mov edi, dword [ebp + 8]
je 0x1004ebff
lea ecx, [esp + 0x80]
call fcn.10005440
movdqa xmm0, xmmword [esp + 0x20]
mov ecx, esi
xor esi, esi
jmp 0x1004f198
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x70]
mov eax, dword [ecx + 0x2c]
cmp eax, dword [edx + 8]
jne 0x1005b676
mov eax, dword [esp + 8]
mov edx, dword [ecx + 0x18]
mov esi, dword [esp + 0x38]
mov ebx, dword [ecx + 0x1c]
mov dword [esp + 0xc0], ecx
mov ecx, esp
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xf8], edx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
adc esi, 0xffffffff
push 0
push 0x10
lea edi, [esp + 0x158]
push edi
push esi
push eax
push dword [esp + 0x84]
mov dword [esp + 0x118], ebx
push ebx
call fcn.10036650
add esp, 0x1c
mov eax, dword [esp]
test eax, eax
je 0x1004ec1b
movq xmm0, qword [esp + 4]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x20], eax
mov dword [esp + 0xe0], ecx
jmp 0x1004ecbc
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x60]
movdqa xmm0, xmmword [esp + 0x20]
mov dword [eax], ecx
mov ecx, esi
mov dword [eax + 4], ebx
mov esi, eax
jmp 0x1004f198
cmp dword [esp + 4], 0x10
jne 0x1004ec3a
mov dword [esp + 0x20], 0
mov dword [esp + 0xe0], 0
jmp 0x1004ecbc
xor ecx, ecx
lea edx, [0x3fa5bc9]
lea edi, [0x3fa5bca]
mov eax, 0xfffffff9
xor esi, esi
movzx ebx, byte [edx]
mov edx, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x1004ec74
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005b495
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 0x1004ec93
shld esi, ecx, 4
inc eax
test edx, edx
mov ecx, ebx
jne 0x1004ec4f
movdqa xmm0, xmmword [0x3f9e5d0]
xor ebx, 0x91
mov dword [esp + 0xe0], 0
mov dword [esp + 0x20], 0xc76970a8
movd xmm1, ebx
punpckldq xmm0, xmm1
xor edi, edi
lea esi, [0x3fa2249]
lea ebx, [0x3fa224a]
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 0x1004ed05
or dl, 0x20
mov dh, dl
add dh, 0x9f
cmp dh, 6
jae 0x1005b495
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 0x1004ed24
shld eax, edi, 4
inc ecx
test esi, esi
mov edi, edx
jne 0x1004ece0
mov eax, dword [esp + 0x20]
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x9c], edx
test eax, eax
je 0x1004edd3
mov ebx, dword [esp + 0xe0]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004ed9d
lea ecx, [esp + 0x80]
call fcn.10005440
xor ecx, ecx
jmp 0x1004edb0
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 + 0x70]
movd eax, xmm1
test eax, eax
je 0x1004edd3
xor dword [esp + 0x9c], 0x10e
mov ebx, ecx
jmp 0x1004f121
xor eax, eax
cmp dword [esp + 0x150], 0x6578652e
je 0x1004eed9
cmp dword [esp + 0x151], 0x6578652e
mov eax, 1
je 0x1004eed9
cmp dword [esp + 0x152], 0x6578652e
mov eax, 2
je 0x1004eed9
cmp dword [esp + 0x153], 0x6578652e
mov eax, 3
je 0x1004eed9
cmp dword [esp + 0x154], 0x6578652e
mov eax, 4
je 0x1004eed9
cmp dword [esp + 0x155], 0x6578652e
mov eax, 5
je 0x1004eed9
cmp dword [esp + 0x156], 0x6578652e
mov eax, 6
je 0x1004eed9
cmp dword [esp + 0x157], 0x6578652e
mov eax, 7
je 0x1004eed9
cmp dword [esp + 0x158], 0x6578652e
mov eax, 8
je 0x1004eed9
cmp dword [esp + 0x159], 0x6578652e
mov eax, 9
je 0x1004eed9
cmp dword [esp + 0x15a], 0x6578652e
mov eax, 0xa
je 0x1004eed9
cmp dword [esp + 0x15b], 0x6578652e
mov eax, 0xb
je 0x1004eed9
cmp dword [esp + 0x15c], 0x6578652e
mov eax, 0xc
je 0x1004eed9
xor eax, eax
jmp 0x1004f121
mov edi, dword [esp + 0x60]
mov edx, dword [esp + 0xf8]
mov ecx, esp
add edi, eax
adc esi, 0
add edi, 0xfffffdf0
adc esi, 0xffffffff
push 0
push 0x200
lea eax, [esp + 0x158]
push eax
push esi
push edi
push ebx
push dword [esp + 0x118]
call fcn.10036650
add esp, 0x1c
mov eax, dword [esp]
test eax, eax
je 0x1004ef33
movq xmm0, qword [esp + 4]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x60], eax
mov dword [esp + 0x70], ecx
jmp 0x1004f05c
cmp dword [esp + 4], 0x200
jne 0x1004efdd
mov dword [esp + 0x60], 0
mov dword [esp + 0x70], 0
jmp 0x1004f05c
mov eax, dword [esp + 0x158]
or eax, dword [esp + 0x15c]
je 0x100563c5
mov edx, dword [esp + 0x160]
lea edi, [esp + 0x150]
mov ecx, edi
push dword [esp + 0x80]
push dword [esp + 0x168]
call fcn.1006c520
add esp, 8
mov ecx, 0x3fa76c8
mov edx, 0x141
call fcn.10009f30
mov ecx, esp
mov edx, edi
push eax
call fcn.1006c3c0
add esp, 4
mov eax, dword [esp]
test eax, eax
je 0x1005687d
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 0x1004d168
xor ecx, ecx
lea edx, [0x3fa5bc9]
lea edi, [0x3fa5bca]
mov eax, 0xfffffff9
xor esi, esi
movzx ebx, byte [edx]
mov edx, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x1004f017
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005b495
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 0x1004f036
shld esi, ecx, 4
inc eax
test edx, edx
mov ecx, ebx
jne 0x1004eff2
movdqa xmm0, xmmword [0x3f9e5d0]
xor ebx, 0x91
mov dword [esp + 0x70], 0
mov dword [esp + 0x60], 0xc76970a8
movd xmm1, ebx
punpckldq xmm0, xmm1
xor ebx, ebx
lea eax, [0x3fa2249]
lea edi, [0x3fa224a]
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 0x1004f0a5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x1004f0c6
shld dword [esp + 0x20], ebx, 4
inc edx
test eax, eax
mov ebx, esi
jne 0x1004f080
mov eax, dword [esp + 0x60]
test eax, eax
je 0x1004fd4b
mov ecx, dword [esp + 0x70]
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.1002cd30
add esp, 4
mov eax, dword [esp + 0x40]
test eax, eax
je 0x1004fd4b
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 + 0x9c], ecx
mov esi, dword [esp + 0xc0]
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xb0]
movd xmm0, eax
movss xmm1, xmm0
movaps xmmword [esp + 0x20], xmm1
push esi
call fcn.1003ac80
add esp, 4
dec dword [esi]
jne 0x1004f189
mov eax, dword [esp + 0xc0]
inc dword [esi + 4]
lea ecx, [eax + 8]
call fcn.1002c740
mov ecx, dword [esp + 0xc0]
mov eax, dword [ecx + 4]
dec eax
mov dword [ecx + 4], eax
or eax, dword [ecx]
jne 0x1004f189
mov eax, dword [0x3fa8000]
push 8
push 0x30
push ecx
push 0x3fa78d4
call dword [eax + 0x10]
add esp, 0x10
mov ecx, dword [esp + 0x9c]
movdqa xmm0, xmmword [esp + 0x20]
mov esi, ebx
movd eax, xmm0
test eax, eax
je 0x1004f1d5
mov eax, dword [esp + 0x3c]
movq qword [esp + 0x150], xmm0
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], esi
mov edx, 0x3fa54bf
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 7
call fcn.1005b7c0
add esp, 8
mov ecx, dword [edi]
mov eax, dword [ecx + 0xcc]
cmp dword [ecx + 0x14c], eax
jbe 0x1004f3f5
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 + 0x150]
push 3
push 0x3fa22c8
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x1004f265
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x1004f286
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x1004f240
cmp dword [esp + 0x150], 0
je 0x1004f2f9
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
mov dword [esp + 0x40], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x44], ebx
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp], 0
je 0x1004f397
lea ecx, [esp + 0x40]
call fcn.10005440
xor eax, eax
movdqa xmm0, xmmword [esp + 0x20]
movd ecx, xmm0
test ecx, ecx
jne 0x1004f3ae
jmp 0x1004f3f5
mov eax, dword [esp + 0x158]
or eax, dword [esp + 0x15c]
je 0x1004f3f5
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3fa2304
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x1004f3f5
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x1004f3f5
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 0x1004f3f5
xor edi, 0x143
pshufd xmm0, xmm0, 0x55
mov dword [esp + 0x150], ecx
mov edx, 0x3fa54c6
mov dword [esp + 0x158], edi
movd dword [esp + 0x154], xmm0
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 7
call fcn.1005b7c0
add esp, 8
lea edx, [esp + 0x118]
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.100041e0
add esp, 8
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x1004f455
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x1004f476
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x1004f430
cmp dword [esp + 0x150], 0
je 0x1004f4e7
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004f63b
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x1004f644
movsd xmm0, qword [esp + 0x158]
movsd xmm1, qword [esp + 0x160]
mov edi, dword [ebp + 8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 3
jne 0x1004f68b
cmp dword [esp + 8], 0x1ec
jne 0x1004f68b
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0x150]
push 0xa
push 0x3fa23a0
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x1004f5a5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x1004f5c6
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x1004f580
cmp dword [esp + 0x150], 0
je 0x1004fb2a
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004fcdc
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x1004fce5
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 0x1004f68b
mov eax, dword [esp + 0x3c]
movups xmmword [esp + 0x150], xmm0
mov edx, 0x3fa54cd
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 7
call fcn.1005b7c0
add esp, 8
xorps xmm0, xmm0
lea edx, [esp + 0x118]
lea ecx, [esp + 0x150]
movaps xmmword [esp + 0x80], xmm0
push dword [ebp + 0xc]
push edi
call fcn.100041e0
add esp, 8
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x1004f6f5
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x1004f716
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x1004f6d0
cmp dword [esp + 0x150], 0
je 0x1004f787
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
xor edi, 0x198
lea ecx, [esp + 0x40]
mov dword [esp + 0xa0], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0xa4], ebx
push 4
push 8
push 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004f8db
lea ecx, [esp + 0xa0]
call fcn.10005440
xor eax, eax
jmp 0x1004f8e4
movq xmm0, qword [esp + 0x158]
movsd xmm1, qword [esp + 0x160]
pxor xmm2, xmm2
movsd qword [esp + 0xc], xmm1
movq qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x1004f8fc
cmp dword [esp + 8], 0x13418bf
jne 0x1004f8fc
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0xb8]
mov dword [esp + 0xb8], ecx
lea ecx, [esp + 0x150]
push 9
push 0x3fa2474
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x1004f845
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x1004f866
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x1004f820
cmp dword [esp + 0x150], 0
je 0x1004fbd2
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
xor edi, 0x1a0
lea ecx, [esp + 0x40]
mov dword [esp + 0xa0], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0xa4], ebx
push 4
push 8
push 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1004fd1b
lea ecx, [esp + 0xa0]
call fcn.10005440
xor eax, eax
jmp 0x1004fd24
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 0x1004f92e
mov eax, dword [esp + 0x3c]
movdqu xmmword [esp + 0x150], xmm2
mov edx, 0x3fa54d4
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 7
call fcn.1005b7c0
add esp, 8
mov eax, dword [edi]
mov ecx, dword [eax + 0x12c]
test ecx, ecx
je 0x1004fe00
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 0x1004fe00
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 0x1004f9b9
mov edx, 0x7273722e
movzx esi, word [esp + 0x84]
xor edx, dword [esp + 0x80]
xor esi, 0x63
or esi, edx
jne 0x1004fe00
lea edx, [eax + 0x28]
cmp dword [edx], 0
jne 0x1004f9c5
jmp 0x1004fe00
lea edx, [eax + 0x40]
cmp dword [edx], 0
je 0x1004fe00
cmp dword [edx + 4], ecx
jae 0x1004fe00
mov esi, dword [eax + 0xcc]
cmp dword [eax + 0x14c], esi
jbe 0x1004fe00
mov edi, dword [eax + 0xc]
add esi, dword [eax + 8]
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0xa0]
lea ecx, [esp + 0x150]
adc edi, 0
mov dword [esp + 0xa0], eax
push 2
push 0x3fa256c
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
push esi
call fcn.100624c0
add esp, 0x18
xor edi, edi
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x1004fa65
or bl, 0x20
mov edx, ebx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x1004fa86
shld dword [esp + 0x20], edi, 4
inc eax
test esi, esi
mov edi, ebx
jne 0x1004fa40
cmp dword [esp + 0x150], 0
mov edi, dword [ebp + 8]
je 0x1004fd8b
movq xmm0, qword [esp + 0x154]
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x160]
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.1002cd30
add esp, 4
mov eax, dword [esp + 4]
test eax, eax
je 0x1004fe00
mov dword [esp + 0x150], eax
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x154], ecx
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
mov dword [esp + 0x158], edx
mov dword [esp + 0x15c], esi
mov edx, 0x3fa54db
push eax
push 7
call fcn.1005b7c0
add esp, 8
jmp 0x1004fe00
mov eax, dword [esp + 0x158]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x15c]
je 0x1004f68b
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3fa2468
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x1004f68b
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x1004f68b
mov eax, dword [esp + 0x158]
pxor xmm2, xmm2
or eax, dword [esp + 0x15c]
je 0x1004f8fc
lea ecx, [esp + 0x150]
lea edx, [esp + 0x118]
push dword [ebp + 8]
call fcn.10004b60
add esp, 4
xor ecx, ecx
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x1004fc45
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005b495
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 0x1004fc64
shld edi, ecx, 4
inc eax
test edx, edx
mov ecx, ebx
jne 0x1004fc20
mov eax, dword [esp + 0x150]
test eax, eax
je 0x1004fd74
movsd xmm0, qword [esp + 0x154]
mov esi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
lea ecx, [esp + 0x40]
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0xa4], esi
push 4
push 8
push 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10051536
lea ecx, [esp + 0xa0]
call fcn.10005440
xor edi, edi
jmp 0x10051549
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 0x1004f665
jmp 0x1004f68b
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 0x1004f8fc
mov edi, dword [ebp + 8]
mov eax, 0xfffffe00
test eax, eax
je 0x100514ac
movzx ecx, byte [esp + eax + 0x350]
inc eax
and cl, 0xdf
add cl, 0xbf
cmp cl, 0x1a
jb 0x1004fd53
jmp 0x10051508
mov ebx, dword [esp + 0x158]
mov edi, dword [esp + 0x15c]
pxor xmm2, xmm2
jmp 0x10051579
mov eax, dword [esp + 0x158]
or eax, dword [esp + 0x15c]
je 0x1004fe00
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
lea edx, [esp + 0x150]
push 4
push 0x3fa2594
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.1002c250
mov eax, dword [edi]
mov edx, dword [eax + 0x12c]
mov ecx, dword [eax + 0x128]
push 5
push 0x3fa2598
call fcn.10036520
add esp, 8
cmp ax, 1
jne 0x1004ff63
mov eax, dword [edi]
mov ecx, edx
movzx ecx, cx
mov edx, dword [eax + 0x12c]
cmp edx, ecx
jbe 0x10056fe4
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 + 0x9c], ebx
jbe 0x1004fe80
mov eax, dword [edx + ecx*8 + 0x10]
cmp eax, 0x1000
mov dword [esp + 0xf8], eax
jae 0x100501ba
mov al, 1
mov dword [esp + 0xe0], eax
lea ecx, [0x3fa2249]
lea edx, [0x3fa224a]
mov eax, 0xfffffff9
nop word [eax + eax]
movzx ebx, byte [ecx]
mov ecx, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x1004febe
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1005b495
lea edx, [ecx + 1]
test eax, eax
cmove edx, ecx
je 0x1004fecd
inc eax
test ecx, ecx
jne 0x1004fea0
cmp byte [esp + 0xe0], 0
jne 0x1004ff63
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3fa259d
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x1004ff63
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
mov edx, edi
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
call fcn.10067300
add esp, 4
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x1004ffc5
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x1004ffe6
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x1004ffa0
mov eax, dword [esp + 0x150]
test eax, eax
je 0x1005005f
movsd xmm0, qword [esp + 0x154]
mov esi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
xor edi, 0x24a
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0xa4], esi
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0x8c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
je 0x1005006f
lea ecx, [esp + 0xa0]
call fcn.10005440
xor eax, eax
jmp 0x10050085
mov eax, dword [esp + 0x154]
mov edi, dword [esp + 0x158]
jmp 0x100500a9
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 0x10050743
pshufd xmm0, xmm0, 0x55
movd eax, xmm0
mov eax, dword [eax + 0x34]
dec dword [edi]
mov edi, dword [ebp + 8]
cmp eax, 1
jne 0x10050781
mov edx, edi
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
call fcn.10067300
add esp, 4
xor edi, edi
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x10050115
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10050136
shld dword [esp + 0x20], edi, 4
inc eax
test edx, edx
mov edi, ebx
jne 0x100500f0
mov eax, dword [esp + 0x150]
test eax, eax
je 0x100505cb
movsd xmm0, qword [esp + 0x154]
mov esi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
xor ebx, 0x24e
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0xa4], esi
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0x8c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
je 0x10050712
lea ecx, [esp + 0xa0]
call fcn.10005440
xor eax, eax
jmp 0x10050728
mov al, 1
pxor xmm0, xmm0
xor ecx, ecx
xor esi, esi
mov dword [esp + 0xb0], 0
movdqa xmmword [esp], xmm0
mov dword [esp + 0xe0], eax
nop dword [eax + eax]
cmp ecx, dword [esp + 0xf8]
mov eax, esi
sbb eax, 0
jae 0x100505c3
mov eax, ecx
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x60], edx
mov dword [esp + 0x70], esi
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x150]
add eax, dword [esp + 0xc0]
mov edx, dword [edi]
adc esi, dword [esp + 0x9c]
push 1
push 0x10
lea ebx, [esp + 8]
push ebx
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10036650
add esp, 0x1c
mov ecx, dword [esp + 0x150]
test ecx, ecx
je 0x10050260
movq xmm0, qword [esp + 0x154]
mov eax, dword [esp + 0x15c]
movdqa xmmword [esp + 0x100], xmm0
mov dword [esp + 0x60], eax
jmp 0x10050300
xor ecx, ecx
cmp dword [esp + 0x154], 0x10
je 0x10050300
xor ecx, ecx
mov eax, 0xfffffff9
lea edi, [0x3fa5bca]
xor edx, edx
lea esi, [0x3fa5bc9]
nop word cs:[eax + eax]
nop
movzx ebx, byte [esi]
mov esi, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x100502b5
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005b495
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 0x100502d4
shld edx, ecx, 4
inc eax
test esi, esi
mov ecx, ebx
jne 0x10050290
movdqa xmm1, xmmword [0x3f9e5d0]
xor ebx, 0x91
mov dword [esp + 0x60], 0
mov ecx, 0xc76970a8
movd xmm0, ebx
punpckldq xmm1, xmm0
movdqa xmmword [esp + 0x100], xmm1
inc dword [esp + 0xb0]
mov dword [esp + 0xb4], ecx
xor edi, edi
mov ecx, 0xfffffff9
lea eax, [0x3fa224a]
lea ebx, [0x3fa2249]
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 0x10050351
or dl, 0x20
mov eax, edx
add al, 0x9f
cmp al, 6
jae 0x1005b495
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 0x10050372
shld dword [esp + 0x20], edi, 4
inc ecx
test ebx, ebx
mov edi, esi
jne 0x10050330
mov eax, dword [esp + 0xb4]
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x60]
test eax, eax
je 0x10050429
movdqa xmm0, xmmword [esp + 0x100]
mov dword [esp + 0x150], eax
mov eax, dword [0x3fa8000]
movq qword [esp + 0x154], 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 0x3fa78d4
lea ecx, [esp + 0x4c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10050401
lea ecx, [esp + 0x80]
call fcn.10005440
xor ecx, ecx
movq xmm0, qword [esp + 0x150]
movd eax, xmm0
test eax, eax
je 0x10050429
jmp 0x1005148b
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 + 0x150]
movd eax, xmm0
test eax, eax
jne 0x1005148b
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 [0x3f9e5e0]
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 + 0x38]
ja 0x100505c3
mov esi, edi
add eax, dword [esp + 0xc0]
mov edi, dword [ebp + 0xc]
lea ecx, [esp + 0x150]
adc esi, dword [esp + 0x9c]
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.10037710
add esp, 0x14
xor edi, edi
mov eax, 0xfffffff9
lea ebx, [0x3fa224a]
xor edx, edx
lea ecx, [0x3fa2249]
nop word cs:[eax + eax]
nop
mov esi, ecx
movzx ecx, byte [ecx]
mov dword [esp + 0x20], ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10050539
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x1005055c
shld edx, edi, 4
inc eax
test ecx, ecx
mov edi, esi
jne 0x10050510
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x154]
test eax, eax
jne 0x10051368
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x70]
lea eax, [ecx - 2]
cmp eax, 0xfd
jae 0x100505c3
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 0x100505c3
cmp dword [esp + 0xb0], 8
mov edx, dword [esp + 0x60]
jne 0x100501e0
mov dword [esp + 0xe0], 0
mov edi, dword [ebp + 8]
jmp 0x1004fe89
mov eax, dword [esp + 0x154]
mov ebx, dword [esp + 0x158]
cmp dword [eax + 0x34], 0
je 0x10051130
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 0x1005070b
mov esi, dword [ecx + 0xc]
add eax, dword [ecx + 8]
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0xa0]
adc esi, 0
dec dword [ebx]
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0x150]
push 3
push 0x3fa26f8
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x10050675
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10050696
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10050650
cmp dword [esp + 0x150], 0
je 0x1005122a
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10051336
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x1005133f
mov edi, dword [ebp + 8]
dec dword [ebx]
jmp 0x10050781
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 0x1005111d
movq xmm0, qword [esp + 0x44]
mov edi, dword [ebp + 8]
mov dword [esp + 0x150], ecx
movq qword [esp + 0x154], xmm0
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x3c]
mov edx, 0x3fa54e9
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 8
call fcn.1005b7c0
add esp, 8
mov ecx, dword [edi]
mov eax, dword [ecx + 0xcc]
cmp dword [ecx + 0x14c], eax
jbe 0x100509a5
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 + 0x150]
push 4
push 0x3fa27b4
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x10050815
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x10050836
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x100507f0
cmp dword [esp + 0x150], 0
je 0x100508a9
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
mov dword [esp + 0x40], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x44], ebx
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp], 0
je 0x10050947
lea ecx, [esp + 0x40]
call fcn.10005440
xor eax, eax
movdqa xmm0, xmmword [esp + 0x20]
movd ecx, xmm0
test ecx, ecx
jne 0x1005095e
jmp 0x100509a5
mov eax, dword [esp + 0x158]
or eax, dword [esp + 0x15c]
je 0x100509a5
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3fa2804
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x100509a5
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x100509a5
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 0x100509a5
xor edi, 0x2a3
pshufd xmm0, xmm0, 0x55
mov dword [esp + 0x150], ecx
mov edx, 0x3fa54f1
mov dword [esp + 0x158], edi
movd dword [esp + 0x154], xmm0
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 8
call fcn.1005b7c0
add esp, 8
lea edx, [esp + 0x118]
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.100041e0
add esp, 8
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x10050a05
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x10050a26
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x100509e0
cmp dword [esp + 0x150], 0
je 0x10050a97
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10050beb
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x10050bf4
movsd xmm0, qword [esp + 0x158]
movsd xmm1, qword [esp + 0x160]
mov edi, dword [ebp + 8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x10050c3b
cmp dword [esp + 8], 0x1337c68
jne 0x10050c3b
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0x150]
push 0xa
push 0x3fa286c
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x10050b55
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10050b76
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10050b30
cmp dword [esp + 0x150], 0
je 0x10051143
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x100511eb
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x100511f4
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 0x10050c3b
mov eax, dword [esp + 0x3c]
movups xmmword [esp + 0x150], xmm0
mov edx, 0x3fa54f9
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 8
call fcn.1005b7c0
add esp, 8
mov eax, dword [edi]
mov edx, dword [eax + 0x12c]
mov ecx, dword [eax + 0x128]
push 5
push 0x3fa2598
call fcn.10036520
add esp, 8
cmp ax, 1
jne 0x10051925
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 + 0xe0], ecx
mov ecx, edi
adc ecx, 0
mov dword [esp + 0x100], ecx
movzx ecx, dx
mov edx, dword [eax + 0x12c]
cmp edx, ecx
jbe 0x10056ff3
mov eax, dword [eax + 0x128]
lea ecx, [ecx + ecx*4]
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb0], 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 + 0x60], edi
jbe 0x10050cce
cmp dword [eax + ecx*8 + 0x10], 0x1000
jae 0x10050d26
mov edi, dword [ebp + 8]
lea ecx, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x10050d0e
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1005b495
lea edx, [ecx + 1]
test eax, eax
cmove edx, ecx
je 0x10051925
inc eax
test ecx, ecx
jne 0x10050cf0
jmp 0x10051925
mov edi, dword [ebp + 0xc]
xor eax, eax
xor esi, esi
xor ecx, ecx
mov dword [esp + 0xf8], ebx
inc ecx
mov dword [esp + 0x70], eax
add eax, dword [esp + 0x20]
mov dword [esp + 0x38], esi
mov edx, dword [edi]
mov dword [esp + 0x9c], ecx
lea ecx, [esp + 0x150]
adc esi, dword [esp + 0x60]
push 1
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10037710
add esp, 0x14
mov eax, 0xfffffff9
lea edi, [0x3fa224a]
xor edx, edx
xor ecx, ecx
lea esi, [0x3fa2249]
nop
movzx ebx, byte [esi]
mov esi, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x10050da5
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005b495
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 0x10050dc4
shld ecx, edx, 4
inc eax
test esi, esi
mov edx, ebx
jne 0x10050d80
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x154]
test eax, eax
mov dword [esp + 0xc0], ecx
jne 0x100513d2
lea eax, [ecx - 0x10000000]
cmp eax, 0xefffffff
jae 0x100512d2
mov eax, dword [esp + 0x70]
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0x38]
lea ecx, [esp + 0x150]
or eax, 4
mov edx, dword [edi]
add eax, dword [esp + 0x20]
adc esi, dword [esp + 0x60]
push 1
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10037710
add esp, 0x14
xor ecx, ecx
mov eax, 0xfffffff9
lea edi, [0x3fa224a]
xor edx, edx
lea esi, [0x3fa2249]
nop dword [eax + eax]
movzx ebx, byte [esi]
mov esi, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x10050e65
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005b495
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 0x10050e84
shld edx, ecx, 4
inc eax
test esi, esi
mov ecx, ebx
jne 0x10050e40
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x154]
test eax, eax
jne 0x1005142b
lea eax, [ecx - 0x10000000]
cmp eax, 0xefffffff
mov eax, dword [esp + 0xc0]
jae 0x100512d2
mov edi, dword [ebp + 0xc]
xor ecx, eax
cmp ecx, 0x68
jb 0x100512e6
cmp dword [esp + 0xf8], ecx
jbe 0x100512e6
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x38]
mov edx, dword [edi]
mov dword [esp + 0xc0], ecx
lea ecx, [esp + 0x150]
add eax, dword [esp + 0x20]
adc esi, dword [esp + 0x60]
add eax, 0x60
adc esi, 0
push 1
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10037ac0
add esp, 0x14
xor ecx, ecx
mov eax, 0xfffffff9
lea esi, [0x3fa224a]
xor edx, edx
lea edi, [0x3fa2249]
nop word [eax + eax]
movzx ebx, byte [edi]
mov edi, esi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x10050f45
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005b495
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 0x10050f64
shld edx, ecx, 4
inc eax
test edi, edi
mov ecx, ebx
jne 0x10050f20
mov eax, dword [esp + 0x150]
test eax, eax
je 0x10050fd7
movsd xmm0, qword [esp + 0x154]
mov esi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x80], xmm0
movaps xmmword [esp + 0x1160], xmm0
mov dword [esp + 0x84], esi
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0x4c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
mov edi, dword [ebp + 0xc]
je 0x10050ff1
lea ecx, [esp + 0x80]
call fcn.10005440
xor edx, edx
jmp 0x10051007
mov ebx, dword [esp + 0x158]
mov edx, dword [esp + 0x15c]
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 0xb0]
jmp 0x10051025
movdqa xmm0, xmmword [esp + 0x1160]
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 + 0xb0]
xor ebx, 0x30d
movd eax, xmm0
test eax, eax
jne 0x1005163d
add ebx, dword [esp + 0xc0]
mov eax, 0xffffffff
adc edx, 0
cmovb ebx, eax
cmovb edx, eax
cmp ebx, dword [esp + 0xb4]
mov eax, edx
sbb eax, ecx
jb 0x100512e6
cmp ebx, dword [esp + 0xe0]
sbb edx, dword [esp + 0x100]
jae 0x100512e6
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x9c]
add eax, 0x68
adc esi, 0
cmp ecx, 3
jne 0x10050d36
mov ecx, 0x3fa2248
mov edx, 0x323
call fcn.10009f30
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3fa2938
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x10051922
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x10051922
pshufd xmm0, xmm0, 0x55
movd eax, xmm0
cmp dword [eax + 0x34], 0
jne 0x100505e3
xor ecx, ecx
xor edx, edx
push 0x3fa25a4
call fcn.100067c0
add esp, 4
ud2
mov eax, dword [esp + 0x158]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x15c]
je 0x10050c3b
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3fa2934
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x10050c3b
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x10050c3b
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 0x10050c15
jmp 0x10050c3b
mov eax, dword [esp + 0x158]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x15c]
je 0x10050781
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3fa2734
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x10050781
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x10050781
mov ecx, 0x3fa2248
mov edx, 0x323
call fcn.10009f30
jmp 0x10051922
mov edi, dword [ebp + 8]
lea ecx, [0x3fa2249]
lea edx, [0x3fa224a]
mov eax, 0xfffffff9
nop word [eax + eax]
movzx ebx, byte [ecx]
mov ecx, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x1005131e
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1005b495
lea edx, [ecx + 1]
test eax, eax
cmove edx, ecx
je 0x10051925
inc eax
test ecx, ecx
jne 0x10051300
jmp 0x10051925
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 0x10050781
movq xmm0, qword [esp + 4]
jmp 0x1005074c
mov edi, dword [esp + 0x158]
mov ebx, dword [esp + 0x15c]
mov dword [esp + 0x70], eax
mov eax, dword [0x3fa8000]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0x4c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10051658
lea ecx, [esp + 0x80]
call fcn.10005440
mov dword [esp + 0xc0], 0
xor esi, 0x21e
jmp 0x1005166e
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x15c]
mov dword [esp + 0x70], eax
mov eax, dword [0x3fa8000]
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp], 0
je 0x100517b9
lea ecx, [esp + 0x40]
call fcn.10005440
mov dword [esp + 0x38], 0
xor ebx, 0x2fb
jmp 0x100517d8
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x15c]
mov dword [esp + 0x70], eax
mov eax, dword [0x3fa8000]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp], 0
je 0x100517c5
lea ecx, [esp + 0x40]
call fcn.10005440
mov dword [esp + 0x38], 0
xor ebx, 0x301
jmp 0x100517d8
xor esi, 0x217
pshufd xmm0, xmm0, 0x55
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x70], eax
movd dword [esp + 0x38], xmm0
jmp 0x1005166e
mov dword [esp], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
lea ecx, [esp + 0x40]
mov edx, esp
push 4
push 0x3fa2293
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, dword [esp + 0x48]
mov ecx, edi
mov edi, dword [ebp + 8]
call fcn.1002c250
mov ecx, dword [esp + 0xb4]
mov esi, dword [esp + 0xc0]
mov edx, dword [esp + 0xb0]
push esi
call fcn.1003ac80
add esp, 4
mov ecx, esi
call fcn.1002d110
pxor xmm0, xmm0
jmp 0x1004ea22
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 0x10051579
movd xmm1, ebx
movd xmm2, edi
punpckldq xmm1, xmm2
punpcklqdq xmm0, xmm1
movdqa xmm2, xmm0
jmp 0x1004f8fc
cmp ebx, 0x8000
mov eax, edi
sbb eax, 0
jb 0x1004f8fc
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [eax + 0x12c]
sub ecx, 1
jb 0x1005a448
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 0x1004f8fc
mov eax, dword [esp + 0xb8]
lea ecx, [esp + 0x150]
mov esi, dword [eax + 8]
mov edx, dword [esi]
push dword [ebp + 0x10]
push dword [esi + 8]
call fcn.10031530
add esp, 8
mov ecx, 0x3fa2248
mov edx, 0x1b0
call fcn.10009f30
mov ecx, esp
lea edx, [esp + 0x150]
push eax
call fcn.1002d390
add esp, 4
cmp dword [esp], 0
je 0x10056791
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 0x1004f8fc
pshufd xmm0, xmm0, 0x55
mov dword [esp + 0x38], edx
mov dword [esp + 0x70], eax
movd dword [esp + 0xc0], xmm0
jmp 0x100517d8
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, [0x3fa2249]
lea edx, [0x3fa224a]
mov edi, 0xfffffff9
mov dword [esp + 0x60], 0
nop dword [eax]
movzx ebx, byte [ecx]
mov ecx, edx
mov dword [esp + 0x20], edi
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x100516b9
or bl, 0x20
mov edx, ebx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x100516de
shld dword [esp + 0x60], eax, 4
inc edi
test ecx, ecx
mov eax, ebx
jne 0x10051690
movss xmm0, dword [esp + 0x38]
movss xmm1, dword [esp + 0x70]
mov edi, dword [esp + 0xc0]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
lea ecx, [esp + 0x15c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x150], 0
je 0x10051737
mov ecx, esp
call fcn.10005440
xor eax, eax
jmp 0x10051743
mov eax, dword [esp + 0x154]
mov dword [eax], esi
mov dword [eax + 4], edi
movaps xmm0, xmmword [esp + 0x20]
mov edi, dword [ebp + 8]
mov edx, 0x3fa54e2
movlps qword [esp + 0xa0], xmm0
movzx ecx, word [esp + 0xa5]
mov word [esp + 0x155], cx
movzx ecx, byte [esp + 0xa7]
mov byte [esp + 0x157], cl
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x150], ecx
mov ecx, dword [esp + 0x38]
mov byte [esp + 0x154], cl
mov dword [esp + 0x158], ebx
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 7
call fcn.1005b7c0
add esp, 8
jmp 0x1004ff63
mov eax, dword [esp + 4]
xor ebx, 0x2fb
jmp 0x100517cf
mov eax, dword [esp + 4]
xor ebx, 0x301
mov dword [eax], esi
mov dword [esp + 0x38], eax
mov dword [eax + 4], edi
xor esi, esi
lea ecx, [0x3fa2249]
lea edx, [0x3fa224a]
mov eax, 0xfffffff9
mov dword [esp + 0x60], 0
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [ecx]
mov dword [esp + 0x20], edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10051827
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x1005184c
shld dword [esp + 0x60], esi, 4
inc eax
test ecx, ecx
mov esi, edi
jne 0x10051800
movss xmm0, dword [esp + 0xc0]
movss xmm1, dword [esp + 0x70]
mov esi, dword [esp + 0x38]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
lea ecx, [esp + 0x15c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x150], 0
je 0x100518a5
mov ecx, esp
call fcn.10005440
xor eax, eax
jmp 0x100518b1
mov eax, dword [esp + 0x154]
mov dword [eax], ebx
mov dword [eax + 4], esi
movaps xmm0, xmmword [esp + 0x20]
mov edx, 0x3fa5501
movlps qword [esp + 0xa0], xmm0
movzx ecx, word [esp + 0xa5]
mov word [esp + 0x155], cx
movzx ecx, byte [esp + 0xa7]
mov byte [esp + 0x157], cl
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x150], ecx
mov ecx, dword [esp + 0xc0]
mov byte [esp + 0x154], cl
mov dword [esp + 0x158], edi
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 8
call fcn.1005b7c0
add esp, 8
mov edi, dword [ebp + 8]
lea edx, [esp + 0x118]
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
push edi
call fcn.100041e0
add esp, 8
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x10051985
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x100519a6
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10051960
cmp dword [esp + 0x150], 0
je 0x10051a17
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10051b6b
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x10051b74
movsd xmm0, qword [esp + 0x158]
movsd xmm1, qword [esp + 0x160]
mov edi, dword [ebp + 8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x10051bbb
cmp dword [esp + 8], 0x7e3
jne 0x10051bbb
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0x150]
push 6
push 0x3fa29ac
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x10051ad5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10051af6
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10051ab0
cmp dword [esp + 0x150], 0
je 0x10052252
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x100522fa
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x10052303
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 0x10051bbb
mov eax, dword [esp + 0x3c]
movups xmmword [esp + 0x150], xmm0
mov edx, 0x3fa5509
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 8
call fcn.1005b7c0
add esp, 8
cmp dword [esp + 0x148], 0x63
ja 0x10051e5b
lea edx, [esp + 0x118]
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
push edi
call fcn.100041e0
add esp, 8
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x10051c25
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x10051c46
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10051c00
cmp dword [esp + 0x150], 0
je 0x10051cb7
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10051e0b
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x10051e14
movsd xmm0, qword [esp + 0x158]
movsd xmm1, qword [esp + 0x160]
mov edi, dword [ebp + 8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x10051e5b
cmp dword [esp + 8], 0x7e3
jne 0x10051e5b
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0x150]
push 8
push 0x3fa2a8c
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x10051d75
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10051d96
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10051d50
cmp dword [esp + 0x150], 0
je 0x1005240a
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10055102
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x1005510b
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 0x10051e5b
mov eax, dword [esp + 0x3c]
movups xmmword [esp + 0x150], xmm0
mov edx, 0x3fa5511
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 8
call fcn.1005b7c0
add esp, 8
mov eax, dword [edi]
mov ecx, 0xfffffe00
add ecx, dword [eax + 0x2c]
cmp ecx, 0x7fdff
ja 0x1005255b
mov edx, edi
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
call fcn.1006a070
add esp, 4
xor esi, esi
lea edx, [0x3fa2249]
lea ebx, [0x3fa224a]
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 0x10051ec5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10051ee4
shld edi, esi, 4
inc eax
test edx, edx
mov esi, ecx
jne 0x10051ea0
mov eax, dword [esp + 0x150]
test eax, eax
je 0x10051f61
movsd xmm0, qword [esp + 0x154]
mov edi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
xor ecx, 0x395
mov dword [esp + 0x60], ecx
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0xa4], edi
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0x8c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
je 0x10051f75
lea ecx, [esp + 0xa0]
call fcn.10005440
xor ebx, ebx
jmp 0x10051f8b
mov eax, dword [esp + 0x158]
mov edi, dword [esp + 0x154]
mov dword [esp + 0x60], eax
jmp 0x10051fbd
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 + 0x60]
movd ecx, xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], eax
test ecx, ecx
je 0x10051fb4
movsd xmm0, qword [esp + 0x44]
jmp 0x10052527
pshufd xmm0, xmm0, 0x55
movd edi, xmm0
mov ecx, 0x3fa2b30
mov edx, 0x1c
call 0x1006d6b0
mov ecx, dword [edi + 0x20]
mov ebx, dword [edi + 0x1c]
mov dword [esp + 0x150], 4
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0x38], 0
test ecx, ecx
je 0x100520d0
imul edi, ecx, 0x2c
xor edx, edx
mov dword [esp + 0x70], 4
mov dword [esp + 0x20], 0
add edi, ebx
add ebx, 0x2c
jmp 0x1005202b
cmp ebx, edi
lea ebx, [ebx + 0x2c]
je 0x100520e2
cmp dword [ebx - 0x1c], 0
jne 0x10052020
cmp eax, dword [ebx - 0x18]
jne 0x10052020
mov ecx, dword [ebx - 8]
mov esi, 0xfffffe00
add ecx, esi
cmp ecx, 0x7fe00
jae 0x10052020
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xc0], eax
inc ecx
je 0x1005b6a3
cmp ecx, dword [esp + 0x158]
jbe 0x10052098
mov esi, ecx
call fcn.10004f20
mov edx, esi
lea ecx, [esp + 0x150]
cmp eax, esi
jbe 0x1005208b
mov edx, eax
call fcn.1002a4a0
mov edx, esi
lea ecx, [esp + 0x150]
cmp al, 8
je 0x10052098
call fcn.1002a4a0
cmp al, 8
jne 0x1005b6bb
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x154]
lea eax, [ebx - 0x2c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0xc0]
inc edx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x154], edx
mov dword [esp + 0x20], edx
shr edx, 8
cmp ebx, edi
jne 0x1005201a
jmp 0x100520e2
mov dword [esp + 0x70], 4
xor edx, edx
mov dword [esp + 0x20], 0
movzx eax, byte [esp + 0x20]
mov ecx, dword [esp + 0x158]
shl edx, 8
or eax, edx
mov dword [esp + 0xc0], ecx
je 0x10052233
mov esi, dword [esp + 0x70]
mov edi, dword [ebp + 8]
mov eax, dword [esi]
mov ecx, dword [edi]
mov eax, dword [eax + 0x20]
cmp dword [ecx + 0x14c], eax
jbe 0x10052246
mov esi, dword [ecx + 0xc]
add eax, dword [ecx + 8]
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0xa0]
adc esi, 0
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0x150]
push 2
push 0x3fa2b60
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x10052195
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x100521b6
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10052170
cmp dword [esp + 0x150], 0
je 0x10052339
mov ebx, dword [esp + 0x15c]
mov eax, dword [esp + 0x160]
movsd xmm0, qword [esp + 0x154]
xor edi, 0x3ac
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x84], eax
mov eax, dword [0x3fa8000]
movaps xmmword [esp + 0x20], xmm0
push 4
push 8
push 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
mov esi, dword [esp + 0x70]
je 0x100524b2
lea ecx, [esp + 0x80]
call fcn.10005440
xor ebx, ebx
jmp 0x100524c1
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0xc0]
mov esi, dword [esp + 0x70]
jmp 0x100524e9
mov eax, dword [esp + 0xc0]
jmp 0x100524e9
mov eax, dword [esp + 0x158]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x15c]
je 0x10051bbb
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3fa2a24
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x10051bbb
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x10051bbb
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 0x10051b95
jmp 0x10051bbb
mov eax, dword [esp + 0x158]
mov esi, dword [esp + 0x70]
or eax, dword [esp + 0x15c]
je 0x100523d9
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3fa2b88
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x100523d9
mov ecx, dword [0x3fa8000]
push edx
push eax
push edi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
mov edx, 4
mov ecx, 4
push dword [esp + 0xc0]
call fcn.10009680
add esp, 4
test eax, eax
je 0x1005531f
mov edi, dword [ebp + 8]
mov dword [esp + 0x38], 0
jmp 0x10052500
mov eax, dword [esp + 0x158]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x15c]
je 0x10051e5b
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3fa2b2c
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x10051e5b
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x10051e5b
mov eax, ebx
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
movaps xmm0, xmmword [esp + 0x20]
mov eax, dword [esp + 0xc0]
movlps qword [esp], xmm0
mov dword [esp + 8], edi
movss dword [esp + 0x38], xmm0
mov edi, dword [ebp + 8]
movsd xmm0, qword [esp + 4]
movaps xmmword [esp + 0x20], xmm0
mov edx, 4
mov ecx, 4
push eax
call fcn.10009680
add esp, 4
test eax, eax
je 0x10052514
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x38]
movaps xmm0, xmmword [esp + 0x20]
dec dword [eax]
test ecx, ecx
je 0x1005255b
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x150], ecx
movlps qword [esp + 0x154], xmm0
mov dword [esp + 0x15c], ebx
mov edx, 0x3fa5519
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 8
call fcn.1005b7c0
add esp, 8
mov eax, dword [edi]
cmp word [eax + 0x122], 3
jne 0x100527a3
mov edx, dword [eax + 0x12c]
cmp edx, 2
jb 0x10057002
mov ecx, dword [eax + 0x128]
mov edx, 0xfffff800
add edx, dword [ecx + 0x38]
cmp edx, 0x480
jae 0x100527a3
mov esi, dword [ecx + 0x34]
cmp dword [eax + 0x14c], esi
jbe 0x100527a3
mov edi, dword [eax + 0xc]
add esi, dword [eax + 8]
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x80]
lea ecx, [esp + 0x150]
adc edi, 0
mov dword [esp + 0x80], eax
push 8
push 0x3fa2c10
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
push esi
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x10052625
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x10052646
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10052600
cmp dword [esp + 0x150], 0
je 0x100526a7
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
mov dword [esp + 0x40], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x44], ebx
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp], 0
je 0x10052745
lea ecx, [esp + 0x40]
call fcn.10005440
xor eax, eax
jmp 0x1005274e
mov eax, dword [esp + 0x158]
or eax, dword [esp + 0x15c]
je 0x100527a3
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3fa2cb0
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x100527a3
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x100527a3
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 0x100527a3
xor edi, 0x3de
pshufd xmm0, xmm0, 0x55
mov dword [esp + 0x150], ecx
mov edx, 0x3fa5521
mov dword [esp + 0x158], edi
movd dword [esp + 0x154], xmm0
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 8
call fcn.1005b7c0
add esp, 8
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edi, dword [ecx + 0xcc]
test edi, edi
je 0x100528de
mov eax, dword [ecx + 0xc]
add edi, dword [ecx + 8]
adc eax, 0
test byte [ecx + 0x127], 0x20
je 0x100528de
mov ebx, dword [ebp + 0xc]
mov ecx, dword [0x3f9e5f0]
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 + 0x150]
push 5
push 6
push esi
push eax
push edi
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.10036650
add esp, 0x1c
mov eax, dword [esp + 0x150]
test eax, eax
je 0x10052873
mov ecx, dword [esp + 0x154]
mov esi, dword [esp + 0x158]
mov edx, dword [esp + 0x15c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x154], ecx
mov dword [esp + 0x15c], edx
mov dword [esp + 0x158], esi
mov edx, 0x3fa5529
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 3
call fcn.1005b7c0
add esp, 8
jmp 0x100528de
mov ecx, dword [esp + 0x154]
cmp ecx, 7
jae 0x1005b68f
cmp ecx, 6
jne 0x100528de
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 0x100528de
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
movq xmm0, qword [ecx + 0x30]
movd eax, xmm0
test eax, eax
mov dword [esp + 0x38], eax
je 0x100528de
pshufd xmm0, xmm0, 0x55
movd eax, xmm0
cmp eax, 0xc
jae 0x100556c8
mov ecx, 0x3fa401c
mov edx, 0x58
call fcn.10009f30
lea edx, [esp + 0x118]
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.100041e0
add esp, 8
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x10052945
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x10052966
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10052920
cmp dword [esp + 0x150], 0
je 0x100529d7
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10052b1b
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x10052b24
movsd xmm0, qword [esp + 0x158]
movsd xmm1, qword [esp + 0x160]
mov edi, dword [ebp + 8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 3
jne 0x10052b6c
cmp dword [esp + 8], 0xc
jne 0x10052b6c
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0x150]
push 4
push 0x3fa2cd0
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x10052a85
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10052aa6
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10052a60
cmp dword [esp + 0x150], 0
je 0x1005315c
xor edi, 0x426
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1005322f
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x10053238
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 0x10052b6c
mov eax, dword [esp + 0x3c]
movdqu xmmword [esp + 0x150], xmm2
mov edx, 0x3fa552c
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 8
call fcn.1005b7c0
add esp, 8
mov ecx, dword [edi]
mov eax, dword [ecx + 0xcc]
cmp dword [ecx + 0x14c], eax
jbe 0x10052d95
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 + 0x150]
push 8
push 0x3fa2f04
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x10052c05
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x10052c26
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10052be0
cmp dword [esp + 0x150], 0
je 0x10052c99
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
mov dword [esp + 0x40], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x44], ebx
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp], 0
je 0x10052d37
lea ecx, [esp + 0x40]
call fcn.10005440
xor eax, eax
movdqa xmm0, xmmword [esp + 0x20]
movd ecx, xmm0
test ecx, ecx
jne 0x10052d4e
jmp 0x10052d95
mov eax, dword [esp + 0x158]
or eax, dword [esp + 0x15c]
je 0x10052d95
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3fa2fa4
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x10052d95
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x10052d95
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 0x10052d95
xor edi, 0x45a
pshufd xmm0, xmm0, 0x55
mov dword [esp + 0x150], ecx
mov edx, 0x3fa5534
mov dword [esp + 0x158], edi
movd dword [esp + 0x154], xmm0
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 8
call fcn.1005b7c0
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 0x100533e2
mov edx, esi
lea ecx, [esp + 0x150]
push edi
call fcn.1006a070
add esp, 4
xor esi, esi
lea edx, [0x3fa2249]
lea ebx, [0x3fa224a]
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 0x10052e05
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10052e24
shld edi, esi, 4
inc eax
test edx, edx
mov esi, ecx
jne 0x10052de0
mov eax, dword [esp + 0x150]
test eax, eax
je 0x10052ea1
movsd xmm0, qword [esp + 0x154]
mov edi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
xor ecx, 0x470
mov dword [esp + 0x60], ecx
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0xa4], edi
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0x8c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
je 0x10052eb5
lea ecx, [esp + 0xa0]
call fcn.10005440
xor ebx, ebx
jmp 0x10052ecb
mov eax, dword [esp + 0x158]
mov ebx, dword [esp + 0x154]
mov dword [esp + 0x60], eax
jmp 0x10052f00
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 + 0x60]
movd ecx, xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], eax
test ecx, ecx
je 0x10052ef7
movsd xmm0, qword [esp + 0x44]
jmp 0x100533ae
pshufd xmm0, xmm0, 0x55
movd ebx, xmm0
mov ecx, 0x3fa2fa8
mov edx, 0x16
call 0x1006d6b0
mov ecx, dword [ebx + 0x20]
mov edi, dword [ebx + 0x1c]
mov dword [esp + 0x150], 4
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0x20], 0
test ecx, ecx
je 0x10052ff9
imul ebx, ecx, 0x2c
mov edx, 4
xor esi, esi
xor ecx, ecx
add ebx, edi
jmp 0x10052f6b
add edi, 0x2c
cmp edi, ebx
je 0x10053002
cmp dword [edi], 0
je 0x10052f60
cmp dword [edi + 4], 0xa
jne 0x10052f60
cmp dword [edi + 0x10], 0
jne 0x10052f60
cmp eax, dword [edi + 0x14]
jne 0x10052f60
inc ecx
mov dword [esp + 0x70], eax
je 0x1005b6ab
cmp ecx, dword [esp + 0x158]
jbe 0x10052fca
mov esi, ecx
call fcn.10004f20
mov edx, esi
cmp eax, esi
jbe 0x10052fb6
lea ecx, [esp + 0x150]
mov edx, eax
call fcn.1002a4a0
mov edx, esi
cmp al, 8
je 0x10052fca
lea ecx, [esp + 0x150]
call fcn.1002a4a0
cmp al, 8
jne 0x1005b720
mov edx, dword [esp + 0x150]
mov ecx, dword [esp + 0x154]
mov eax, dword [esp + 0x70]
mov dword [edx + ecx*4], edi
inc ecx
add edi, 0x2c
mov esi, ecx
mov dword [esp + 0x154], ecx
shr esi, 8
cmp edi, ebx
jne 0x10052f6b
jmp 0x10053002
mov edx, 4
xor esi, esi
xor ecx, ecx
mov ebx, dword [esp + 0x158]
mov eax, ecx
shl esi, 8
mov dword [esp + 0x38], edx
movzx edi, al
or edi, esi
mov dword [esp + 0x70], ebx
je 0x1005314b
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 0x10053153
mov esi, dword [ecx + 0xc]
add eax, dword [ecx + 8]
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], edi
lea ecx, [esp + 0x150]
adc esi, 0
push 2
push 0x3fa2fe0
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x100530b5
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x100530d6
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10053090
cmp dword [esp + 0x150], 0
je 0x10053262
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10053334
lea ecx, [esp + 0x80]
call fcn.10005440
xor ebx, ebx
jmp 0x1005333f
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
jmp 0x10053153
mov eax, dword [esp + 0x70]
jmp 0x1005336a
mov eax, dword [esp + 0x158]
pxor xmm2, xmm2
or eax, dword [esp + 0x15c]
je 0x1005332c
mov esi, dword [esp + 0x164]
mov eax, dword [esp + 0x160]
lea edx, [esp + 0xa0]
lea ecx, [esp + 0x150]
push 1
push 0x3fa2e20
push 0xffffffffffffffff
push 0xffffffffffffffff
mov dword [esp + 0x80], esi
push esi
mov dword [esp + 0x74], eax
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x100531f5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10053216
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x100531d0
cmp dword [esp + 0x150], 0
je 0x10055141
xor edi, 0x42c
jmp 0x10052aba
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 0x10052b3d
mov eax, dword [esp + 0x158]
or eax, dword [esp + 0x15c]
je 0x100532fe
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3fa3008
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x100532fe
mov ecx, dword [0x3fa8000]
push edx
push eax
push edi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
mov edx, 4
mov ecx, 4
push dword [esp + 0x70]
call fcn.10009680
add esp, 4
test eax, eax
je 0x1005533d
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x20], 0
jmp 0x10053381
mov edi, dword [ebp + 8]
jmp 0x10052b3d
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 + 0x70]
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.10009680
add esp, 4
test eax, eax
je 0x10053398
mov ecx, dword [0x3fa8000]
push edx
push eax
push dword [esp + 0x40]
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x20]
movaps xmm0, xmmword [esp + 0xc0]
dec dword [eax]
test ecx, ecx
je 0x100533e2
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x150], ecx
movlps qword [esp + 0x154], xmm0
mov dword [esp + 0x15c], ebx
mov edx, 0x3fa553c
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 8
call fcn.1005b7c0
add esp, 8
lea edx, [esp + 0x118]
lea ecx, [esp + 0x150]
push edi
push esi
call fcn.100041e0
add esp, 8
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x10053445
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x10053466
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10053420
cmp dword [esp + 0x150], 0
je 0x100534d7
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1005362b
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x10053634
movq xmm0, qword [esp + 0x158]
movq xmm1, qword [esp + 0x160]
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 0x10053681
cmp dword [esp + 8], 0x7e3
jne 0x10053681
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], edi
lea ecx, [esp + 0x150]
push 5
push 0x3fa3030
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x10053595
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x100535b6
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10053570
cmp dword [esp + 0x150], 0
je 0x1005488c
xor edi, 0x4b2
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10054e0d
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x10054e16
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 0x10053681
mov eax, dword [esp + 0x3c]
movdqu xmmword [esp + 0x150], xmm2
mov edx, 0x3fa5544
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 8
call fcn.1005b7c0
add esp, 8
lea edx, [esp + 0x118]
lea ecx, [esp + 0x150]
push edi
push esi
call fcn.100041e0
add esp, 8
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x100536e5
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x10053706
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x100536c0
cmp dword [esp + 0x150], 0
je 0x10053777
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x100538cb
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x100538d4
movsd xmm0, qword [esp + 0x158]
movsd xmm1, qword [esp + 0x160]
mov edi, dword [ebp + 8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x1005391b
cmp dword [esp + 8], 0x13418bf
jne 0x1005391b
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0x150]
push 0xd
push 0x3fa317c
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x10053835
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10053856
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10053810
cmp dword [esp + 0x150], 0
je 0x1005495f
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10054e70
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x10054e79
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 0x1005391b
mov eax, dword [esp + 0x3c]
movups xmmword [esp + 0x150], xmm0
mov edx, 0x3fa554c
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 8
call fcn.1005b7c0
add esp, 8
lea edx, [esp + 0x118]
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
push edi
call fcn.100041e0
add esp, 8
xor edi, edi
lea edx, [0x3fa2249]
lea ebx, [0x3fa224a]
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 0x10053975
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10053996
shld dword [esp + 0x20], edi, 4
inc eax
test edx, edx
mov edi, esi
jne 0x10053950
cmp dword [esp + 0x150], 0
je 0x10053a07
mov edi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10053b41
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x10053b4a
movsd xmm0, qword [esp + 0x158]
movq xmm1, qword [esp + 0x160]
mov edi, dword [ebp + 8]
movq qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 3
jne 0x10053b8f
cmp dword [esp + 8], 0x7a
jne 0x10053b8f
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0xb8]
mov dword [esp + 0xb8], ecx
lea ecx, [esp + 0x150]
push 8
push 0x3fa32a4
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor edi, edi
lea edx, [0x3fa2249]
lea ebx, [0x3fa224a]
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 0x10053ab5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10053ad6
shld dword [esp + 0x20], edi, 4
inc eax
test edx, edx
mov edi, esi
jne 0x10053a90
cmp dword [esp + 0x150], 0
je 0x10054a07
mov edi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
xor esi, 0x54d
mov dword [esp + 0x40], edi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x44], ebx
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp], 0
je 0x10054eaf
lea ecx, [esp + 0x40]
call fcn.10005440
xor eax, eax
jmp 0x10054eb8
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 0x10053b8f
mov eax, dword [esp + 0x3c]
movaps xmm0, xmmword [esp]
mov edx, 0x3fa5554
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
movups xmmword [esp + 0x150], xmm0
push eax
push 8
call fcn.1005b7c0
add esp, 8
lea edx, [esp + 0x118]
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
push edi
call fcn.100041e0
add esp, 8
xor ebx, ebx
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x10053bf5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10053c16
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10053bd0
cmp dword [esp + 0x150], 0
je 0x10053c87
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10053dd1
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x10053dda
movq xmm0, qword [esp + 0x158]
movq xmm1, qword [esp + 0x160]
mov edi, dword [ebp + 8]
movq qword [esp + 0xc], xmm1
movq qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x10053e23
cmp dword [esp + 8], 0x7e3
jne 0x10053e23
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0xb8]
mov dword [esp + 0xb8], ecx
lea ecx, [esp + 0x150]
push 4
push 0x3fa3360
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x10053d45
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10053d66
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10053d20
cmp dword [esp + 0x150], 0
je 0x10054b44
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
xor edi, 0x57f
mov dword [esp + 0x40], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x44], ebx
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp], 0
je 0x10054ed7
lea ecx, [esp + 0x40]
call fcn.10005440
xor eax, eax
jmp 0x10054ee0
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
mov ebx, dword [esp]
mov edi, dword [ebp + 8]
test ebx, ebx
je 0x10053e23
mov eax, dword [esp + 0x3c]
movdqa xmm0, xmmword [esp]
mov edx, 0x3fa555c
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
movdqu xmmword [esp + 0x150], xmm0
push eax
push 8
call fcn.1005b7c0
add esp, 8
lea edx, [esp + 0x118]
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
push edi
call fcn.100041e0
add esp, 8
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x10053e85
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x10053ea6
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10053e60
cmp dword [esp + 0x150], 0
je 0x10053f17
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1005406b
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x10054074
movsd xmm0, qword [esp + 0x158]
movq xmm1, qword [esp + 0x160]
mov edi, dword [ebp + 8]
movq qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x100540bc
cmp dword [esp + 8], 0x13418bf
jne 0x100540bc
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0x150]
push 3
push 0x3fa33c8
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x10053fd5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10053ff6
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10053fb0
cmp dword [esp + 0x150], 0
je 0x10054c71
xor edi, 0x5bb
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10054e3d
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x10054e46
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 0x100540bc
mov eax, dword [esp + 0x3c]
movdqu xmmword [esp + 0x150], xmm2
mov edx, 0x3fa5564
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 8
call fcn.1005b7c0
add esp, 8
lea edx, [esp + 0x118]
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
push edi
call fcn.100041e0
add esp, 8
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x10054125
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x10054146
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10054100
cmp dword [esp + 0x150], 0
je 0x100541b7
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1005430b
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x10054314
movsd xmm0, qword [esp + 0x158]
movsd xmm1, qword [esp + 0x160]
mov edi, dword [ebp + 8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x1005435b
cmp dword [esp + 8], 0x134890d
jne 0x1005435b
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0x150]
push 6
push 0x3fa3530
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x10054275
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10054296
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10054250
cmp dword [esp + 0x150], 0
je 0x10054d3f
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10054f07
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x10054f10
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 0x1005435b
mov eax, dword [esp + 0x3c]
movups xmmword [esp + 0x150], xmm0
mov edx, 0x3fa556c
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 8
call fcn.1005b7c0
add esp, 8
lea edx, [esp + 0x118]
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
push edi
call fcn.100041e0
add esp, 8
xor edi, edi
lea edx, [0x3fa2249]
lea ebx, [0x3fa224a]
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 0x100543b5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x100543d6
shld dword [esp + 0x20], edi, 4
inc eax
test edx, edx
mov edi, esi
jne 0x10054390
cmp dword [esp + 0x150], 0
je 0x10054447
mov edi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x100545ac
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x100545b5
movq xmm0, qword [esp + 0x158]
movq xmm1, qword [esp + 0x160]
mov edi, dword [ebp + 8]
movq qword [esp + 0xc], xmm1
movq qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x10054608
cmp dword [esp + 8], 0x7e3
jne 0x10054608
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x38], eax
add eax, 0x1000
mov edx, ecx
mov dword [esp + 0xc0], ecx
lea ecx, [esp + 0x150]
adc edx, 0
mov dword [esp + 0x9c], eax
mov dword [esp + 0xb0], edx
mov edx, edi
push dword [ebp + 0xc]
call fcn.10068280
add esp, 4
xor edi, edi
lea edx, [0x3fa2249]
lea ebx, [0x3fa224a]
mov eax, 0xfffffff9
xor esi, esi
nop word cs:[eax + eax]
nop
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10054505
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10054524
shld esi, edi, 4
inc eax
test edx, edx
mov edi, ecx
jne 0x100544e0
mov eax, dword [esp + 0x150]
test eax, eax
je 0x10054de7
movsd xmm0, qword [esp + 0x154]
mov esi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
xor ecx, 0x611
mov dword [esp + 0x60], ecx
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0xa4], esi
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0x8c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
je 0x10054f46
lea ecx, [esp + 0xa0]
call fcn.10005440
xor eax, eax
jmp 0x10054f5c
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 0x10054608
mov eax, dword [esp + 0x3c]
movdqa xmm0, xmmword [esp + 0x40]
mov edx, 0x3fa5574
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
movdqu xmmword [esp + 0x150], xmm0
push eax
push 8
call fcn.1005b7c0
add esp, 8
lea ecx, [esp + 0x150]
mov edx, edi
push dword [ebp + 0xc]
call fcn.10068280
add esp, 4
xor ecx, ecx
lea edx, [0x3fa2249]
lea edi, [0x3fa224a]
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 0x10054665
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005b495
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 0x10054684
shld esi, ecx, 4
inc eax
test edx, edx
mov ecx, ebx
jne 0x10054640
mov eax, dword [esp + 0x150]
test eax, eax
je 0x100546fd
movsd xmm0, qword [esp + 0x154]
mov esi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
xor ebx, 0x674
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0xa4], esi
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0x8c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
je 0x1005471f
lea ecx, [esp + 0xa0]
call fcn.10005440
xor eax, eax
jmp 0x10054735
mov eax, dword [esp + 0x154]
mov ebx, dword [esp + 0x158]
mov ecx, dword [eax + 0x10]
test ecx, ecx
mov dword [esp + 0x70], ecx
jne 0x100547a4
jmp 0x10055ef0
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 0x1005478c
movq xmm0, qword [esp + 0x44]
mov dword [esp + 0x150], edi
movq qword [esp + 0x154], xmm0
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x3c]
mov edx, 0x3fa557c
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
push eax
push 8
call fcn.1005b7c0
add esp, 8
jmp 0x10055ef2
pshufd xmm0, xmm0, 0x55
movd eax, xmm0
mov ecx, dword [eax + 0x10]
test ecx, ecx
mov dword [esp + 0x70], ecx
je 0x10055ef0
mov edx, dword [esp + 0x70]
mov eax, dword [eax + 0xc]
xor ecx, ecx
mov esi, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x60], edx
jmp 0x100547cc
mov dword [esp + 0x60], esi
sub esi, ecx
jbe 0x10055ef0
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 0x100547c0
movzx ecx, dl
cmp ecx, 0xff
jne 0x1005480e
inc esi
mov ecx, esi
mov esi, dword [esp + 0x60]
sub esi, ecx
ja 0x100547cc
jmp 0x10055ef0
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + eax + 4]
test edx, edx
je 0x10055ef0
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x38], edx
mov eax, dword [ecx + eax]
xor ecx, ecx
mov dword [esp + 0x60], eax
mov edi, dword [esp + 0x60]
jmp 0x1005484c
mov dword [esp + 0x38], edx
sub edx, ecx
jbe 0x10055ef0
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 0x10054840
movzx eax, al
cmp eax, 0xff
jne 0x1005500c
inc edx
mov ecx, edx
mov edx, dword [esp + 0x38]
sub edx, ecx
ja 0x1005484c
jmp 0x10055ef0
mov eax, dword [esp + 0x158]
pxor xmm2, xmm2
or eax, dword [esp + 0x15c]
je 0x1005364c
mov eax, dword [esp + 0x160]
mov esi, dword [esp + 0x164]
lea edx, [esp + 0xa0]
lea ecx, [esp + 0x150]
mov dword [esp + 0x60], eax
add eax, 8
mov dword [esp + 0x70], esi
adc esi, 0
push 1
push 0x3fa3094
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x10054925
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10054946
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10054900
cmp dword [esp + 0x150], 0
je 0x100551d2
xor edi, 0x4ba
jmp 0x100535ca
mov eax, dword [esp + 0x158]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x15c]
je 0x1005391b
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3fa3280
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x1005391b
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x1005391b
mov eax, dword [esp + 0x158]
or eax, dword [esp + 0x15c]
je 0x1005506c
mov eax, dword [esp + 0xb8]
mov byte [esp + 0xd6], 0
mov word [esp + 0xd4], 0
mov edi, dword [esp + 0x164]
mov esi, dword [esp + 0x160]
lea ecx, [esp + 0x150]
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.10037e30
add esp, 0x14
xor edi, edi
lea edx, [0x3fa2249]
lea ebx, [0x3fa224a]
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 0x10054aa5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10054ac4
shld esi, edi, 4
inc eax
test edx, edx
mov edi, ecx
jne 0x10054a80
mov eax, dword [esp + 0x150]
test eax, eax
je 0x1005526d
movsd xmm0, qword [esp + 0x154]
mov esi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
mov edi, 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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1005534e
lea ecx, [esp + 0x80]
call fcn.10005440
mov dword [esp + 0x38], 0
jmp 0x10055365
mov eax, dword [esp + 0x158]
or eax, dword [esp + 0x15c]
je 0x1005507a
mov eax, dword [esp + 0xb8]
mov edi, dword [esp + 0x164]
mov esi, dword [esp + 0x160]
lea ecx, [esp + 0x150]
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.10037e30
add esp, 0x14
xor edi, edi
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
mov eax, 0xfffffff9
xor ebx, ebx
nop word cs:[eax + eax]
nop
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10054bd5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10054bf4
shld ebx, edi, 4
inc eax
test edx, edx
mov edi, ecx
jne 0x10054bb0
mov eax, dword [esp + 0x150]
test eax, eax
je 0x1005527e
movsd xmm0, qword [esp + 0x154]
mov esi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
mov ebx, 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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
mov edi, dword [ebp + 8]
je 0x100553fa
lea ecx, [esp + 0x80]
call fcn.10005440
xor edx, edx
jmp 0x1005540d
mov eax, dword [esp + 0x158]
pxor xmm2, xmm2
or eax, dword [esp + 0x15c]
je 0x10055093
mov esi, dword [esp + 0x164]
mov eax, dword [esp + 0x160]
lea edx, [esp + 0xa0]
lea ecx, [esp + 0x150]
push 5
push 0x3fa3430
push 0xffffffffffffffff
push 0xffffffffffffffff
mov dword [esp + 0x80], esi
push esi
mov dword [esp + 0x74], eax
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x10054d05
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10054d26
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10054ce0
cmp dword [esp + 0x150], 0
je 0x1005528e
xor edi, 0x5c1
jmp 0x1005400a
mov eax, dword [esp + 0x158]
mov edi, dword [ebp + 8]
or eax, dword [esp + 0x15c]
je 0x1005435b
lea edx, [esp + 0x150]
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
push 4
push 0x3fa35a8
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, 1
mov ecx, 1
push dword [esp + 8]
call fcn.10009680
add esp, 4
test eax, eax
je 0x1005435b
mov ecx, dword [0x3fa8000]
push edx
push eax
push esi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x1005435b
mov ecx, dword [esp + 0x158]
mov eax, dword [esp + 0x154]
mov dword [esp + 0x60], ecx
mov ecx, dword [eax + 0x10]
test ecx, ecx
mov dword [esp + 0x70], ecx
jne 0x10054fab
jmp 0x1005b475
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 0x1005364c
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 0x1005408d
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 0x100538f5
jmp 0x1005391b
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 0x10053b61
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 0x10053df7
jmp 0x10053e23
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 0x10054335
jmp 0x1005435b
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 + 0x60]
movd ecx, xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], edx
test ecx, ecx
je 0x10054f93
movq xmm0, qword [esp + 0x44]
mov dword [esp + 0x40], ecx
movq qword [esp + 0x44], xmm0
mov dword [esp + 0x4c], eax
jmp 0x100545db
pshufd xmm0, xmm0, 0x55
movd eax, xmm0
mov ecx, dword [eax + 0x10]
test ecx, ecx
mov dword [esp + 0x70], ecx
je 0x1005b475
mov edx, dword [esp + 0x70]
mov eax, dword [eax + 0xc]
xor esi, esi
mov ecx, edx
mov dword [esp + 0x20], eax
jmp 0x10054fca
mov edx, ecx
sub ecx, esi
jbe 0x1005b475
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 0x10054fc0
movzx eax, al
cmp eax, 0xff
jne 0x1005509b
inc ecx
mov esi, ecx
mov ecx, edx
sub ecx, esi
ja 0x10054fca
jmp 0x1005b475
mov eax, dword [esp + 0x70]
xor ecx, ecx
mov esi, eax
mov dword [esp + 0x60], eax
jmp 0x10055026
mov dword [esp + 0x60], esi
sub esi, ecx
jbe 0x100555ee
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 0x1005501a
movzx ecx, dl
cmp ecx, 0xff
jne 0x10055588
inc esi
mov ecx, esi
mov esi, dword [esp + 0x60]
sub esi, ecx
ja 0x10055026
jmp 0x100555ee
xor ecx, ecx
mov dword [esp], 0
jmp 0x10053b5e
xor ebx, ebx
mov dword [esp], 0
mov edi, dword [ebp + 8]
test ebx, ebx
jne 0x10053df7
jmp 0x10053e23
mov edi, dword [ebp + 8]
jmp 0x1005408d
mov eax, dword [esp + 0x20]
mov eax, dword [eax + ebx + 4]
test eax, eax
je 0x1005b475
mov ecx, dword [esp + 0x20]
xor edx, edx
mov esi, eax
mov ecx, dword [ecx + ebx]
jmp 0x100550c2
mov esi, eax
sub eax, edx
jbe 0x1005b475
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 0x100550b8
movzx edx, bl
cmp edx, 0xff
jne 0x100557a7
inc eax
mov edx, eax
mov eax, esi
sub eax, edx
ja 0x100550c2
jmp 0x1005b475
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 0x10051e35
jmp 0x10051e5b
mov eax, dword [esp + 0x158]
mov edi, dword [ebp + 8]
pxor xmm2, xmm2
or eax, dword [esp + 0x15c]
je 0x10052b3d
lea esi, [esp + 0x150]
lea edx, [esp + 0xa0]
mov ecx, esi
push 3
push 0x3fa2e74
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [esp + 0x80]
push dword [esp + 0x74]
call fcn.100624c0
add esp, 0x18
mov ecx, 0x3fa2248
mov edx, 0x434
call fcn.10009f30
mov ecx, esp
mov edx, esi
push eax
call fcn.1006bba0
add esp, 4
cmp dword [esp], 0
je 0x10055b9b
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 0x10052b3d
mov eax, dword [esp + 0x158]
or eax, dword [esp + 0x15c]
je 0x10055798
mov eax, dword [esp + 0x160]
mov esi, dword [esp + 0x164]
lea edi, [esp + 0x150]
lea edx, [esp + 0xa0]
mov ecx, edi
add eax, 8
adc esi, 0
push 1
push 0x3fa3094
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
mov ecx, 0x3fa2248
mov edx, 0x4c1
call fcn.10009f30
mov ecx, esp
mov edx, edi
push eax
call fcn.1006bba0
add esp, 4
cmp dword [esp], 0
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
je 0x10055c13
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 0x10053652
movzx eax, byte [esp + 0x154]
mov dword [esp + 0x60], eax
jmp 0x10055394
movzx ecx, byte [esp + 0x154]
mov edi, dword [ebp + 8]
jmp 0x10055448
mov eax, dword [esp + 0x158]
mov edi, dword [ebp + 8]
pxor xmm2, xmm2
or eax, dword [esp + 0x15c]
je 0x1005408d
lea esi, [esp + 0x150]
lea edx, [esp + 0xa0]
mov ecx, esi
push 2
push 0x3fa34d8
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [esp + 0x80]
push dword [esp + 0x74]
call fcn.100624c0
add esp, 0x18
mov ecx, 0x3fa2248
mov edx, 0x5c9
call fcn.10009f30
mov ecx, esp
mov edx, esi
push eax
call fcn.1006bba0
add esp, 4
cmp dword [esp], 0
je 0x10055c9d
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 0x1005408d
mov eax, dword [esp + 0x60]
mov edi, dword [ebp + 8]
dec dword [eax]
mov eax, dword [edi]
cmp word [eax + 0x122], 3
je 0x1005256b
jmp 0x100527a3
mov eax, dword [esp + 0x60]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
dec dword [eax]
jmp 0x100533e2
movdqa xmm0, xmmword [esp + 0x60]
mov ecx, dword [esp + 0x44]
movd eax, xmm0
mov dword [esp + 0x38], 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 + 0x60], eax
je 0x10055394
xor edi, 0x51f
shr eax, 8
mov dword [esp + 0x70], ecx
mov dword [esp + 0xc0], edi
mov dword [esp + 0x9c], eax
jmp 0x10055959
mov eax, dword [esp + 0xb8]
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x70]
lea esi, [esp + 0xd4]
lea ecx, [esp + 0x150]
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.10036650
add esp, 0x1c
mov eax, dword [esp + 0x150]
test eax, eax
je 0x100554dd
movq xmm0, qword [esp + 0x154]
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0x70], eax
mov dword [esp + 0x38], ecx
jmp 0x1005587c
movdqa xmm0, xmmword [esp + 0x70]
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 0x10055448
mov esi, ecx
mov dword [esp + 0x70], edx
xor eax, 0x55f
mov dword [esp + 0x20], ecx
mov ecx, 0x3fa2248
mov edx, 0x583
mov dword [esp + 0x60], eax
shr esi, 8
call fcn.10009f30
mov ecx, dword [esp + 0x20]
jmp 0x10056301
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x60]
test cl, cl
js 0x10055500
xor esi, esi
mov ecx, 0x3fa2248
mov edx, 0x583
call fcn.10009f30
mov eax, esi
test al, al
je 0x10053e23
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
lea edx, [esp + 0x150]
push 4
push 0x3fa33b0
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.1002c250
jmp 0x10053e23
cmp dword [esp + 0x154], 3
jne 0x100557fd
mov dword [esp + 0x70], 0
mov dword [esp + 0x38], 0
jmp 0x1005587c
mov eax, dword [esp + 0xb8]
lea ecx, [esp + 0x150]
mov edx, dword [eax]
push ebx
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10036e60
add esp, 0x10
mov ecx, 0x3fa2248
mov edx, 0x563
call fcn.10009f30
cmp dword [esp + 0x150], 0
je 0x10056229
movq xmm0, qword [esp + 0x154]
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x160]
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.1002cd30
add esp, 4
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
mov esi, dword [esp + 8]
jmp 0x100562dd
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + eax + 4]
test edx, edx
je 0x100555ee
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x38], edx
mov eax, dword [ecx + eax]
xor ecx, ecx
mov dword [esp + 0x60], eax
mov edi, dword [esp + 0x60]
jmp 0x100555b3
mov dword [esp + 0x38], edx
sub edx, ecx
jbe 0x100555ee
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 0x100555ab
movzx eax, al
cmp eax, 0xff
jne 0x10055d15
inc edx
mov ecx, edx
mov edx, dword [esp + 0x38]
sub edx, ecx
ja 0x100555b3
mov eax, dword [esp + 0x70]
xor ecx, ecx
mov dword [esp + 0x60], eax
jmp 0x1005560a
mov dword [esp + 0x60], eax
sub eax, ecx
mov dword [esp + 0x70], eax
jbe 0x10055ef0
mov eax, dword [esp + 0x70]
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 0x100555fa
movzx ecx, dl
cmp ecx, 0xff
jne 0x10055654
inc eax
mov ecx, eax
mov eax, dword [esp + 0x60]
sub eax, ecx
mov dword [esp + 0x70], eax
ja 0x1005560a
jmp 0x10055ef0
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + esi + 4]
test ecx, ecx
je 0x10055ef0
mov edx, dword [esp + 0x20]
xor edi, edi
mov dword [esp + 0x60], ecx
mov eax, dword [edx + esi]
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0x20]
jmp 0x10055687
mov dword [esp + 0x60], ecx
sub ecx, edi
jbe 0x10055ef0
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 0x1005567b
movzx eax, dl
cmp eax, 0xff
jne 0x10055d15
inc ecx
mov edi, ecx
mov ecx, dword [esp + 0x60]
sub ecx, edi
ja 0x10055687
jmp 0x10055ef0
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 + 0x9c], ecx
mul edx
shr edx, 3
dec edx
jmp 0x100556fa
mov edx, dword [esp + 0x60]
inc esi
cmp esi, edx
jg 0x100528cf
lea eax, [edx + esi]
mov dword [esp + 0x70], esi
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0x60], 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 + 0xb4], ebx
push ebx
push dword [esp + 0x28]
push dword [eax + 8]
push dword [eax + 4]
call fcn.10037710
add esp, 0x14
mov ebx, dword [esp]
mov ecx, dword [esp + 4]
test ebx, ebx
jne 0x10056dd2
xor eax, eax
cmp ecx, edi
mov ecx, 0xff
setne al
cmova eax, ecx
cmp al, 1
je 0x100556ed
movzx eax, al
cmp eax, 0xff
jne 0x10056cb5
dec esi
mov edx, esi
mov esi, dword [esp + 0x70]
cmp esi, edx
jle 0x100556fa
jmp 0x100528cf
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
pxor xmm2, xmm2
jmp 0x10053652
mov edx, dword [esp + 0x70]
xor esi, esi
mov ecx, edx
jmp 0x100557bb
mov edx, ecx
sub ecx, esi
jbe 0x1005b475
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 0x100557b1
movzx eax, al
cmp eax, 0xff
jne 0x10056a5a
inc ecx
mov esi, ecx
mov ecx, edx
sub ecx, esi
ja 0x100557bb
jmp 0x1005b475
xor ecx, ecx
lea edx, [0x3fa5bc9]
lea edi, [0x3fa5bca]
mov eax, 0xfffffff9
xor esi, esi
movzx ebx, byte [edx]
mov edx, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x10055837
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1005b495
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 0x10055856
shld esi, ecx, 4
inc eax
test edx, edx
mov ecx, ebx
jne 0x10055812
movdqa xmm0, xmmword [0x3f9e5d0]
xor ebx, 0x91
mov dword [esp + 0x38], 0
mov dword [esp + 0x70], 0xc76970a8
movd xmm1, ebx
punpckldq xmm0, xmm1
xor ebx, ebx
lea eax, [0x3fa2249]
lea edi, [0x3fa224a]
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 0x100558c5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x100558e6
shld dword [esp + 0x20], ebx, 4
inc edx
test eax, eax
mov ebx, esi
jne 0x100558a0
mov eax, dword [esp + 0x70]
test eax, eax
je 0x10055a37
mov ecx, dword [esp + 0x38]
xor esi, 0x523
mov dword [esp + 0x150], eax
movq qword [esp + 0x154], xmm0
lea edx, [esp + 0x150]
mov dword [esp + 0x15c], ecx
mov ecx, esp
push esi
call fcn.1002cd30
add esp, 4
mov eax, dword [esp]
test eax, eax
je 0x10055a37
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov dword [esp + 0x70], eax
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x60], edx
shr edx, 8
mov dword [esp + 0x9c], edx
mov dword [esp + 0x38], ecx
xor esi, esi
lea edx, [0x3fa2249]
lea eax, [0x3fa224a]
mov ecx, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop
movzx ebx, byte [edx]
mov edx, eax
mov eax, ebx
add al, 0xd0
cmp al, 0xa
jb 0x100559a1
or bl, 0x20
mov eax, ebx
add al, 0x9f
cmp al, 6
jae 0x1005b495
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 0x100559c2
shld dword [esp + 0x20], esi, 4
inc ecx
test edx, edx
mov esi, ebx
jne 0x10055980
mov ecx, dword [esp + 0x9c]
movzx eax, byte [esp + 0x60]
movd xmm1, dword [esp + 0x70]
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0x38]
xor ebx, 0x551
shl ecx, 8
mov dword [esp], esi
mov dword [esp + 4], edi
or eax, ecx
movd xmm0, eax
mov eax, dword [0x3fa8000]
punpckldq xmm1, xmm0
movdqa xmmword [esp + 0x20], xmm1
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0x15c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x150], 0
je 0x10055b48
mov ecx, esp
call fcn.10005440
xor eax, eax
jmp 0x10055b54
mov edx, dword [esp + 0x60]
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 dword [eax + eax]
mov ecx, edx
add al, 0x8d
add bl, 0x34
add dl, 0x2f
add cl, 0xb0
cmp cl, 0xa0
ja 0x10055a60
xor dl, byte [esp + 0xd4]
cmp dl, 0x74
jne 0x10055b34
mov ecx, eax
add bl, 0xbc
add al, 0x2f
add cl, 0xb0
cmp cl, 0xa0
ja 0x10055a82
xor al, byte [esp + 0xd5]
cmp al, 0x74
jne 0x10055b34
mov eax, ebx
add bl, 0x2f
add al, 0xb0
cmp al, 0xa1
jae 0x10055aa0
xor bl, byte [esp + 0xd6]
mov ecx, 0x3fa2248
mov edx, 0x551
call fcn.10009f30
cmp bl, 0x70
jne 0x10053b8f
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
lea edx, [esp + 0x150]
push 4
push 0x3fa3344
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.1002c250
jmp 0x10053b8f
mov ecx, 0x3fa2248
mov edx, 0x551
call fcn.10009f30
jmp 0x10053b8f
mov eax, dword [esp + 0x154]
mov dword [eax], esi
mov dword [eax + 4], edi
movdqa xmm0, xmmword [esp + 0x20]
mov edi, dword [ebp + 8]
movq qword [esp + 0xa0], xmm0
movzx ecx, word [esp + 0xa5]
mov word [esp + 5], cx
movzx ecx, byte [esp + 0xa7]
mov byte [esp + 7], cl
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x60]
mov dword [esp], ecx
mov byte [esp + 4], al
jmp 0x10053b61
mov eax, dword [esp + 8]
or eax, dword [esp + 0xc]
je 0x10052b6c
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
lea edx, [esp + 0x150]
push 4
push 0x3fa2eb0
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.1002c250
jmp 0x10052b6c
mov eax, dword [esp + 8]
pxor xmm2, xmm2
or eax, dword [esp + 0xc]
je 0x10053652
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
lea edi, [esp + 0x150]
mov ecx, edi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xa0]
mov edx, dword [eax]
push 1
push dword [esp + 0x74]
push dword [esp + 0x68]
push dword [eax + 8]
push dword [eax + 4]
call fcn.10037ac0
add esp, 0x14
mov ecx, 0x3fa2248
mov edx, 0x4c7
call fcn.10009f30
mov ecx, esp
mov edx, edi
push eax
call fcn.1002d430
add esp, 4
movq xmm2, qword [esp]
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 8]
movd eax, xmm2
test eax, eax
je 0x10056d14
movd xmm0, ebx
movd xmm1, edi
jmp 0x10056d7b
mov eax, dword [esp + 8]
or eax, dword [esp + 0xc]
je 0x100540bc
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
lea edx, [esp + 0x150]
push 4
push 0x3fa3500
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.1002c250
jmp 0x100540bc
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov edx, dword [eax + 0x12c]
mov ecx, dword [eax + 0x128]
push 5
push 0x3fa2598
call fcn.10036520
add esp, 8
test ax, ax
je 0x10055ef0
mov eax, dword [ebp + 8]
mov ecx, edx
movzx ecx, cx
mov eax, dword [eax]
mov edx, dword [eax + 0x12c]
cmp edx, ecx
jbe 0x1005b560
mov edx, dword [eax + 0x128]
lea ecx, [ecx + ecx*4]
mov esi, 0xfffa8000
add esi, dword [edx + ecx*8 + 0x10]
cmp esi, 0x10000
jae 0x10055ef0
mov ecx, dword [edx + ecx*8 + 0xc]
mov esi, dword [eax + 8]
mov edx, dword [eax + 0xc]
add esi, ecx
adc edx, 0
cmp dword [eax + 0x14c], ecx
mov dword [esp + 0x9c], esi
mov dword [esp + 0xc0], edx
jbe 0x10055ef0
xor eax, eax
xor esi, esi
mov edi, dword [ebp + 0xc]
cmp eax, 8
mov ecx, esi
sbb ecx, 0
jae 0x10055eec
dec dword [ebx]
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x150]
push edi
call fcn.10068280
add esp, 4
xor edi, edi
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
mov eax, 0xfffffff9
xor ebx, ebx
nop dword [eax]
movzx ecx, byte [edx]
mov edx, esi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10055f45
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10055f64
shld ebx, edi, 4
inc eax
test edx, edx
mov edi, ecx
jne 0x10055f20
mov eax, dword [esp + 0x150]
test eax, eax
je 0x10055fe1
movsd xmm0, qword [esp + 0x154]
mov esi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
xor ecx, 0x6a0
mov dword [esp + 0x60], ecx
movsd qword [esp + 4], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0xa4], esi
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0x8c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
je 0x10056007
lea ecx, [esp + 0xa0]
call fcn.10005440
xor eax, eax
jmp 0x1005601d
mov ecx, dword [esp + 0x158]
mov eax, dword [esp + 0x154]
mov dword [esp + 0x60], ecx
mov ecx, dword [eax + 0x10]
test ecx, ecx
mov dword [esp + 0x70], ecx
jne 0x1005609d
jmp 0x1005708b
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 + 0x60]
movd ecx, xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], edx
test ecx, ecx
je 0x10056085
mov edx, dword [esp + 0x3c]
movq xmm0, qword [esp + 0x44]
add edx, 0x10
mov dword [esp + 0x60], edx
mov dword [esp + 0x150], ecx
movq qword [esp + 0x154], xmm0
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x60]
mov edx, 0x3fa5584
mov ecx, dword [eax]
lea eax, [esp + 0x150]
push eax
push 8
call fcn.1003f180
add esp, 8
jmp 0x1005709f
pshufd xmm0, xmm0, 0x55
movd eax, xmm0
mov ecx, dword [eax + 0x10]
test ecx, ecx
mov dword [esp + 0x70], ecx
je 0x1005708b
mov eax, dword [eax + 0xc]
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x20], eax
xor eax, eax
mov esi, ebx
jmp 0x100560ba
mov ebx, esi
sub esi, eax
jbe 0x1005708b
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 0x100560b0
movzx eax, dl
cmp eax, 0xff
jne 0x100560f9
inc esi
mov eax, esi
mov esi, ebx
sub esi, eax
ja 0x100560ba
jmp 0x1005708b
mov eax, dword [esp + 0x20]
mov edx, dword [eax + ecx + 4]
test edx, edx
je 0x1005708b
mov eax, dword [esp + 0x20]
mov esi, edx
mov ebx, dword [eax + ecx]
xor eax, eax
jmp 0x1005612a
mov esi, edx
sub edx, eax
jbe 0x1005708b
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 0x10056120
movzx eax, cl
cmp eax, 0xff
jne 0x10056165
inc edx
mov eax, edx
mov edx, esi
sub edx, eax
ja 0x1005612a
jmp 0x1005708b
mov esi, dword [esp + 0x70]
xor eax, eax
jmp 0x1005617b
mov esi, ebx
sub ebx, eax
mov dword [esp + 0x70], ebx
jbe 0x1005708b
mov ebx, dword [esp + 0x70]
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 0x1005616d
movzx eax, cl
cmp eax, 0xff
jne 0x100561c2
inc ebx
mov eax, ebx
mov ebx, esi
sub ebx, eax
mov dword [esp + 0x70], ebx
ja 0x1005617b
jmp 0x1005708b
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + edx + 4]
test ecx, ecx
je 0x1005708b
mov eax, dword [esp + 0x20]
xor ebx, ebx
mov esi, ecx
mov eax, dword [eax + edx]
jmp 0x100561e9
mov esi, ecx
sub ecx, ebx
jbe 0x1005708b
shr ecx, 1
xor edx, edx
add ecx, ebx
mov edi, ecx
shl edi, 4
cmp dword [eax + edi + 0xc], 0x8f980a9b
mov edi, 0xff
setne dl
cmovb edx, edi
cmp dl, 1
je 0x100561df
movzx edx, dl
cmp edx, 0xff
jne 0x100568f5
inc ecx
mov ebx, ecx
mov ecx, esi
sub ecx, ebx
ja 0x100561e9
mov eax, dword [esp + 0x164]
mov edi, dword [esp + 0x160]
add esi, 0x10
lea ecx, [esp + 0x150]
adc ebx, 0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xb8]
mov edx, dword [eax]
push ebx
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10036e60
add esp, 0x10
mov ecx, 0x3fa2248
mov edx, 0x564
call fcn.10009f30
cmp dword [esp + 0x150], 0
je 0x10056c61
movq xmm0, qword [esp + 0x154]
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x160]
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.1002cd30
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 + 0x60], eax
mov dword [esp + 0x70], ecx
mov ecx, 0x3fa2248
mov edx, 0x583
call fcn.10009f30
test ebx, ebx
je 0x10055469
mov ecx, esi
shr esi, 8
mov dword [esp + 0x38], eax
shl esi, 8
movzx eax, cl
movd xmm1, ebx
mov dword [esp + 0x20], ecx
or eax, esi
mov esi, dword [esp + 0x70]
movd xmm0, eax
mov eax, dword [esp + 0x60]
punpckldq xmm1, xmm0
movdqa xmmword [esp + 0xc0], xmm1
mov dword [esp], eax
mov eax, dword [0x3fa8000]
mov dword [esp + 4], esi
push 4
push 8
push 0x3fa78d4
lea ecx, [esp + 0x15c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x150], 0
je 0x10056366
mov ecx, esp
call fcn.10005440
xor eax, eax
jmp 0x10056376
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x60]
mov dword [eax], ecx
mov dword [eax + 4], esi
movdqa xmm0, xmmword [esp + 0xc0]
mov edx, dword [esp + 0x38]
movq qword [esp + 0xa0], xmm0
movzx ecx, word [esp + 0xa5]
mov word [esp + 5], cx
movzx ecx, byte [esp + 0xa7]
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 0x10053df7
jmp 0x10053e23
mov dword [esp + 0x40], 0
xor eax, eax
jmp 0x1004d168
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x160]
mov eax, dword [esp + 0x164]
mov ebx, dword [esp + 0x38]
add ecx, 0xffffffff
adc edx, 0xffffffff
adc eax, 0xffffffff
cmp ecx, 0xffffffff
sbb edx, 0
sbb eax, 0
mov eax, dword [esp + 0x70]
jae 0x1004e5c2
mov edi, dword [ebp + 0xc]
add eax, 0x50
mov esi, ebx
lea ecx, [esp + 0x150]
adc esi, 0
mov edx, dword [edi]
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10036e60
add esp, 0x10
mov ecx, 0x3fa2248
mov edx, 0xa7
call fcn.10009f30
cmp dword [esp + 0x150], 0
jne 0x1004e492
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x160]
mov edx, dword [esp + 0x164]
mov esi, 0xffffffff
mov edi, 0xfffffffe
add eax, esi
adc ecx, esi
adc edx, esi
xor esi, esi
cmp edi, eax
mov eax, 0
mov edi, dword [ebp + 8]
sbb eax, ecx
mov eax, dword [esp + 0x70]
sbb esi, edx
jb 0x1004e5c2
mov edi, dword [ebp + 0xc]
add eax, 0x90
lea ecx, [esp + 0x150]
adc ebx, 0
mov edx, dword [edi]
push ebx
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10036e60
add esp, 0x10
mov ecx, 0x3fa2248
mov edx, 0xa7
call fcn.10009f30
cmp dword [esp + 0x150], 0
jne 0x1004e492
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x160]
mov edx, dword [esp + 0x164]
mov esi, 0xffffffff
mov edi, 0xfffffffe
add eax, esi
adc ecx, esi
adc edx, esi
xor esi, esi
cmp edi, eax
mov eax, 0
mov edi, dword [ebp + 8]
sbb eax, ecx
mov eax, dword [esp + 0x70]
sbb esi, edx
mov esi, dword [esp + 0x38]
jb 0x1004e5c2
mov edi, dword [ebp + 0xc]
add eax, 0xd0
lea ecx, [esp + 0x150]
adc esi, 0
mov edx, dword [edi]
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10036e60
add esp, 0x10
mov ecx, 0x3fa2248
mov edx, 0xa7
call fcn.10009f30
cmp dword [esp + 0x150], 0
jne 0x1004e492
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x160]
mov edx, dword [esp + 0x164]
mov esi, 0xffffffff
mov edi, 0xfffffffe
add eax, esi
adc ecx, esi
adc edx, esi
xor esi, esi
cmp edi, eax
mov eax, 0
mov edi, dword [ebp + 8]
sbb eax, ecx
mov eax, dword [esp + 0x70]
sbb esi, edx
mov esi, dword [esp + 0x38]
jb 0x1004e5c2
mov edi, dword [ebp + 0xc]
add eax, 0x110
lea ecx, [esp + 0x150]
adc esi, 0
mov edx, dword [edi]
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10036e60
add esp, 0x10
mov ecx, 0x3fa2248
mov edx, 0xa7
call fcn.10009f30
cmp dword [esp + 0x150], 0
jne 0x1004e492
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x160]
mov edx, dword [esp + 0x164]
mov esi, 0xffffffff
mov edi, 0xfffffffe
add eax, esi
adc ecx, esi
adc edx, esi
xor esi, esi
cmp edi, eax
mov eax, 0
mov edi, dword [ebp + 8]
sbb eax, ecx
mov eax, dword [esp + 0x70]
sbb esi, edx
mov esi, dword [esp + 0x38]
jb 0x1004e5c2
mov edi, dword [ebp + 0xc]
add eax, 0x150
lea ecx, [esp + 0x150]
adc esi, 0
mov edx, dword [edi]
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10036e60
add esp, 0x10
mov ecx, 0x3fa2248
mov edx, 0xa7
call fcn.10009f30
cmp dword [esp + 0x150], 0
jne 0x1004e492
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x160]
mov edx, dword [esp + 0x164]
mov esi, 0xffffffff
mov edi, 0xfffffffe
add eax, esi
adc ecx, esi
adc edx, esi
xor esi, esi
cmp edi, eax
mov eax, 0
mov edi, dword [ebp + 8]
sbb eax, ecx
mov eax, dword [esp + 0x70]
sbb esi, edx
mov esi, dword [esp + 0x38]
jb 0x1004e5c2
mov edi, dword [ebp + 0xc]
add eax, 0x190
lea ecx, [esp + 0x150]
adc esi, 0
mov edx, dword [edi]
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10036e60
add esp, 0x10
mov ecx, 0x3fa2248
mov edx, 0xa7
call fcn.10009f30
cmp dword [esp + 0x150], 0
jne 0x1004e492
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x160]
mov edx, dword [esp + 0x164]
mov esi, 0xffffffff
mov edi, 0xfffffffe
mov ebx, dword [esp + 0x38]
add eax, esi
adc ecx, esi
adc edx, esi
xor esi, esi
cmp edi, eax
mov edi, 0
sbb edi, ecx
mov edi, dword [ebp + 8]
sbb esi, edx
mov esi, dword [esp + 0x70]
jb 0x1004e5c2
mov eax, dword [ebp + 0xc]
add esi, 0x1d0
lea ecx, [esp + 0x150]
adc ebx, 0
mov edx, dword [eax]
push ebx
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10036e60
add esp, 0x10
mov ecx, 0x3fa2248
mov edx, 0xa7
call fcn.10009f30
cmp dword [esp + 0x150], 0
jne 0x1004e492
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x160]
mov edx, 0xffffffff
add eax, edx
adc ecx, edx
adc edx, dword [esp + 0x164]
cmp eax, 0xffffffff
sbb ecx, 0
sbb edx, 0
jb 0x1004e55d
jmp 0x1004e5c2
mov ecx, esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
mov eax, dword [esi + 0x2c]
cmp eax, dword [ecx + 8]
jne 0x1005b676
mov eax, dword [esp + 8]
mov edx, dword [esi + 0x18]
add ebx, 0xfffffff0
mov ecx, esp
adc edi, 0xffffffff
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x60], 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.10038090
add esp, 0x18
mov ecx, 0x3fa2248
mov edx, 0x1b4
call fcn.10009f30
mov ecx, dword [esp]
test ecx, ecx
je 0x10056ac1
mov edx, dword [esp + 0xc]
movq xmm0, qword [esp + 4]
mov dword [esp + 0x150], ecx
lea ecx, [esp + 0x40]
movq qword [esp + 0x154], xmm0
mov dword [esp + 0x15c], edx
lea edx, [esp + 0x150]
push eax
call fcn.1002cd30
add esp, 4
mov eax, dword [esp + 0x40]
test eax, eax
je 0x10056ac1
movd xmm1, dword [esp + 0x44]
movq xmm0, qword [esp + 0x48]
movd xmm2, eax
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x60]
mov esi, edi
punpckldq xmm2, xmm1
punpcklqdq xmm2, xmm0
movdqa xmmword [esp + 0x20], xmm2
push edi
call fcn.1003ac80
add esp, 4
mov ecx, edi
call fcn.1002d110
movdqa xmm2, xmmword [esp + 0x20]
jmp 0x1004f8fc
cmp byte [esp + 4], 0
mov edi, dword [ebp + 8]
je 0x1004d19c
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
lea edx, [esp + 0x150]
push 4
push 0x3fa7884
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.1002c250
jmp 0x1004d19c
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov edx, dword [eax + 0x12c]
mov ecx, dword [eax + 0x128]
push 6
push 0x3fa3684
call fcn.10036520
add esp, 8
test ax, ax
je 0x1005708b
mov eax, dword [esp + 0x20]
mov eax, dword [eax + ebx + 4]
test eax, eax
je 0x1005b475
mov ecx, dword [esp + 0x20]
xor edx, edx
mov esi, eax
mov ecx, dword [ecx + ebx]
jmp 0x10056a81
mov esi, eax
sub eax, edx
jbe 0x1005b475
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 0x10056a77
movzx edx, bl
cmp edx, 0xff
jne 0x10056e61
inc eax
mov edx, eax
mov eax, esi
sub eax, edx
ja 0x10056a81
jmp 0x1005b475
movzx eax, byte [esp + 0x80]
add al, 0xbf
cmp al, 0x19
ja 0x10056c3e
movzx eax, byte [esp + 0x81]
add al, 0xbf
cmp al, 0x19
ja 0x10056c3e
movzx eax, byte [esp + 0x82]
add al, 0xbf
cmp al, 0x19
ja 0x10056c3e
movzx eax, byte [esp + 0x83]
add al, 0xbf
cmp al, 0x19
ja 0x10056c3e
movzx eax, byte [esp + 0x84]
add al, 0xbf
cmp al, 0x19
ja 0x10056c3e
movzx eax, byte [esp + 0x85]
add al, 0xbf
cmp al, 0x19
ja 0x10056c3e
movzx eax, byte [esp + 0x86]
add al, 0xbf
cmp al, 0x19
ja 0x10056c3e
movzx eax, byte [esp + 0x87]
add al, 0xbf
cmp al, 0x19
ja 0x10056c3e
movzx eax, byte [esp + 0x88]
add al, 0xbf
cmp al, 0x19
ja 0x10056c3e
movzx eax, byte [esp + 0x89]
add al, 0xbf
cmp al, 0x19
ja 0x10056c3e
movzx eax, byte [esp + 0x8a]
add al, 0xbf
cmp al, 0x19
ja 0x10056c3e
movzx eax, byte [esp + 0x8b]
add al, 0xbf
cmp al, 0x19
ja 0x10056c3e
movzx eax, byte [esp + 0x8c]
add al, 0xbf
cmp al, 0x19
ja 0x10056c3e
movzx eax, byte [esp + 0x8d]
add al, 0xbf
cmp al, 0x19
ja 0x10056c3e
movzx eax, byte [esp + 0x8e]
add al, 0xbf
cmp al, 0x19
ja 0x10056c3e
movzx eax, byte [esp + 0x8f]
add al, 0xbf
cmp al, 0x1a
jae 0x10056c3e
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
lea edx, [esp + 0x150]
push 4
push 0x3fa2528
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, ebx
call fcn.1002c250
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x60]
mov esi, edi
push edi
call fcn.1003ac80
add esp, 4
mov ecx, edi
call fcn.1002d110
pxor xmm2, xmm2
jmp 0x1004f8fc
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x20]
xor edi, dword [esp + 0x160]
xor ecx, dword [esp + 0x15c]
xor eax, dword [esp + 0x164]
or eax, ecx
mov ecx, dword [esp + 0x60]
xor ecx, dword [esp + 0x158]
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 0x1005545a
mov dword [esp + 0x20], eax
mov eax, ecx
xor esi, 0x1c
jmp 0x10056f46
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0xb0]
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.10037710
add esp, 0x14
mov ecx, dword [esp]
test ecx, ecx
je 0x10056d98
mov eax, ecx
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov edi, dword [esp + 0xc]
mov ebx, eax
jmp 0x10056dda
mov ebx, eax
mov eax, ecx
mov dword [esp + 0x20], edi
xor esi, 0x1e
jmp 0x10056f46
mov eax, dword [esp + 0xa0]
lea ecx, [esp + 0x150]
mov edx, dword [eax]
push 1
push dword [esp + 0x24]
push esi
push dword [eax + 8]
push dword [eax + 4]
call fcn.10037ac0
add esp, 0x14
mov ecx, 0x3fa2248
mov edx, 0x4c7
call fcn.10009f30
mov ecx, esp
lea edx, [esp + 0x150]
push eax
call fcn.1002d430
add esp, 4
movq xmm2, qword [esp]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
movd edx, xmm2
test edx, edx
je 0x10056eb7
movd xmm0, ecx
movd xmm1, eax
punpckldq xmm0, xmm1
punpcklqdq xmm2, xmm0
jmp 0x1005364c
mov dword [esp + 0x20], eax
mov eax, ecx
mov ebx, edi
xor esi, 0x21
jmp 0x10056f46
mov eax, dword [esp + 4]
mov esi, dword [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x60], 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.10037710
add esp, 0x14
mov ebx, dword [esp]
test ebx, ebx
je 0x1005a4ae
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov edi, dword [esp + 0xc]
cmp ebx, 0xc76970a8
jne 0x10056dfe
cmp ecx, 0x76d4030
jne 0x10056dfe
test edi, edi
je 0x100528cf
mov ecx, edi
call fcn.10006600
jmp 0x100528cf
mov esi, ecx
mov dword [esp + 0x20], edx
mov ecx, 0x3fa401c
mov edx, 0x58
call fcn.10009f30
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 + 0x154]
push eax
call fcn.1002cd30
add esp, 4
mov eax, dword [esp + 0x154]
test eax, eax
je 0x100528de
mov ecx, dword [esp + 0x158]
mov edx, dword [esp + 0x160]
mov esi, dword [esp + 0x15c]
jmp 0x10052837
mov edx, dword [esp + 0x70]
xor esi, esi
mov ecx, edx
jmp 0x10056e75
mov edx, ecx
sub ecx, esi
jbe 0x1005b475
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 0x10056e6b
movzx eax, al
cmp eax, 0xff
jne 0x1005abaf
inc ecx
mov esi, ecx
mov ecx, edx
sub ecx, esi
ja 0x10056e75
jmp 0x1005b475
xor eax, edi
xor ecx, ebx
xor ecx, 0x61656843
xor eax, 0x74
or eax, ecx
jne 0x10056f2d
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
lea edx, [esp + 0x150]
push 4
push 0x3fa30a8
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.1002c250
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
jmp 0x10053681
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x20], eax
mov eax, ecx
shr eax, 8
movzx edi, cl
shl eax, 8
mov ecx, 0x3f9e98c
mov edx, 0x4d
or edi, eax
call fcn.10009f30
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x150]
mov dword [esp + 0x150], ecx
lea ecx, [esp + 0x80]
mov dword [esp + 0x154], edi
mov dword [esp + 0x158], esi
mov dword [esp + 0x15c], ebx
push eax
call fcn.1002cd30
add esp, 4
mov ecx, dword [esp + 0x80]
test ecx, ecx
je 0x10056fc3
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0x8c]
movq xmm0, qword [esp + 0x84]
mov edi, dword [ebp + 8]
dec dword [edx]
jmp 0x1004d3f5
mov eax, dword [esp + 0x84]
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0xb4]
dec dword [ecx]
cmp eax, 3
je 0x1004db5f
jmp 0x1004dbe7
push 0x3fa3d14
call fcn.100067c0
add esp, 4
ud2
push 0x3fa3d3c
call fcn.100067c0
add esp, 4
ud2
mov ecx, 1
push 0x3fa2b8c
call fcn.100067c0
add esp, 4
ud2
mov eax, dword [esp + 0x60]
mov edi, dword [ebp + 8]
dec dword [eax]
mov eax, dword [esp + 0x3c]
add eax, 0x10
mov dword [esp + 0x60], eax
lea edx, [esp + 0x118]
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
push edi
call fcn.100041e0
add esp, 8
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x10057105
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x10057126
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x100570e0
cmp dword [esp + 0x150], 0
je 0x10057197
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x100572eb
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x100572f4
movq xmm0, qword [esp + 0x158]
movq xmm1, qword [esp + 0x160]
mov edi, dword [ebp + 8]
movq qword [esp + 0xc], xmm1
movq qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x1005733b
cmp dword [esp + 8], 0x7e3
jne 0x1005733b
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0xb8]
mov dword [esp + 0xb8], ecx
lea ecx, [esp + 0x150]
push 4
push 0x3fa3740
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x10057255
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10057276
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x10057230
cmp dword [esp + 0x150], 0
je 0x1005867e
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x100590c4
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x100590cd
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 0x1005733b
mov eax, dword [esp + 0x60]
movdqu xmmword [esp + 0x150], xmm0
mov edx, 0x3fa558c
mov ecx, dword [eax]
lea eax, [esp + 0x150]
push eax
push 8
call fcn.1003f180
add esp, 8
lea edx, [esp + 0x118]
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
push edi
call fcn.100041e0
add esp, 8
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x10057395
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x100573b6
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10057370
cmp dword [esp + 0x150], 0
je 0x10057427
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1005757b
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
jmp 0x10057584
movsd xmm0, qword [esp + 0x158]
movsd xmm1, qword [esp + 0x160]
mov edi, dword [ebp + 8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 0
jne 0x100575ca
cmp dword [esp + 8], 0x13418bf
jne 0x100575ca
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0x150]
push 8
push 0x3fa37e4
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.100624c0
add esp, 0x18
xor ebx, ebx
lea edx, [0x3fa2249]
lea esi, [0x3fa224a]
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 0x100574e5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10057506
shld dword [esp + 0x20], ebx, 4
inc eax
test edx, edx
mov ebx, edi
jne 0x100574c0
cmp dword [esp + 0x150], 0
je 0x1005870e
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 0x100575ca
mov eax, dword [esp + 0x60]
movups xmmword [esp + 0x150], xmm0
mov edx, 0x3fa5594
mov ecx, dword [eax]
lea eax, [esp + 0x150]
push eax
push 8
call fcn.1003f180
add esp, 8
lea edx, [esp + 0x118]
lea ecx, [esp + 0x150]
push dword [ebp + 0xc]
push edi
call fcn.100041e0
add esp, 8
xor ebx, ebx
lea esi, [0x3fa2249]
lea edx, [0x3fa224a]
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 0x10057625
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x10057646
shld dword [esp + 0x20], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x10057600
cmp dword [esp + 0x150], 0
je 0x100576b7
mov esi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
xor edi, 0x734
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x1005780b
movsd xmm0, qword [esp + 0x158]
movsd xmm1, qword [esp + 0x160]
mov edi, dword [ebp + 8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
cmp dword [esp + 4], 4
jne 0x1005785a
mov eax, dword [esp + 0x158]
or eax, dword [esp + 0x15c]
je 0x10059256
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x160]
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 0
mov esi, dword [esp + 0x164]
lea ebx, [esp + 0xa0]
lea ecx, [esp + 0x150]
mov edx, dword [edi]
push 1
push 8
push ebx
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10036650
add esp, 0x1c
mov eax, dword [esp + 0x150]
test eax, eax
je 0x100592ec
movq xmm0, qword [esp + 0x154]
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x70], ecx
jmp 0x1005961e
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x15], 0
je 0x100599eb
mov ecx, 0x3fa0b80
mov edx, 8
call fcn.1000b320
test eax, eax
mov esi, 1
mov ecx, 0x3fa0b88
mov edx, 6
cmove eax, esi
mov dword [esp + 0x20], eax
call fcn.1000b320
test eax, eax
lea edi, [0x3fa0b90]
mov ecx, 0xfffffff9
cmove eax, esi
lea esi, [0x3fa0b8f]
xor ebx, ebx
mov dword [esp + 0x60], eax
xor eax, eax
nop word cs:[eax + eax]
nop
movzx edx, byte [esi]
mov esi, edi
mov dh, dl
add dh, 0xd0
cmp dh, 0xa
jb 0x10058d25
or dl, 0x20
mov dh, dl
add dh, 0x9f
cmp dh, 6
jae 0x1005b495
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 0x10058d44
shld ebx, eax, 4
inc ecx
test esi, esi
mov eax, edx
jne 0x10058d00
mov eax, dword [esp + 0x20]
mov esi, 0x4433
xor edx, 4
mov ebx, 0x22110000
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x158], edx
mov dword [esp + 0x15c], 0
mov edx, 0x3fa55c9
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x150]
mov dword [esp + 0x20], ecx
push eax
push 5
call fcn.1005b7c0
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 0x100598f3
cmp dword [eax + 0xec], 0x6d736b63
jne 0x100598f3
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x150]
mov eax, dword [eax + 8]
mov edx, dword [eax]
push dword [ebp + 0x10]
mov dword [esp + 0x64], eax
push dword [eax + 8]
call fcn.10031530
add esp, 8
xor esi, esi
lea edi, [0x3fa5795]
lea edx, [0x3fa5796]
mov eax, 0xfffffff9
xor ebx, ebx
nop
movzx ecx, byte [edi]
mov edi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10058e25
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1005b495
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 0x10058e46
shld ebx, esi, 4
inc eax
test edi, edi
mov esi, ecx
jne 0x10058e00
cmp dword [esp + 0x150], 0
je 0x10058ebd
mov edi, dword [esp + 0x15c]
movsd xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x160]
mov eax, dword [0x3fa8000]
xor ecx, 0x1e
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], edi
movaps xmmword [esp + 0x70], xmm0
mov dword [esp + 0x84], ebx
push 4
push 8
push 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
mov esi, 0x4433
je 0x10059044
lea ecx, [esp + 0x80]
call fcn.10005440
xor edx, edx
jmp 0x1005904d
mov ebx, dword [esp + 0x160]
mov ecx, dword [esp + 0x60]
mov esi, 0x4433
mov eax, dword [ebx + 0x2c]
cmp eax, dword [ecx + 8]
jne 0x1005b676
mov edi, dword [ebp + 8]
mov eax, dword [edi]
mov ecx, dword [eax + 0x12c]
sub ecx, 1
jb 0x1005a448
mov edx, dword [esp + 0x158]
mov eax, dword [eax + 0x128]
lea ecx, [ecx + ecx*4]
mov dword [esp + 0x9c], edx
mov edx, dword [esp + 0x15c]
mov dword [esp + 0xc0], edx
mov edx, dword [eax + ecx*8 + 0x10]
add edx, dword [eax + ecx*8 + 0x14]
cmp edx, 0x400
jne 0x1005907d
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x1c]
xorps xmm0, xmm0
mov dword [esp + 0xb0], ebx
mov dword [esp + 0x160], 0
mov ecx, esp
movaps xmmword [esp + 0x150], xmm0
push 0
push 0x14
lea esi, [esp + 0x158]
push esi
push 0
push 0x400
push dword [esp + 0x74]
push eax
call fcn.10036650
add esp, 0x1c
xor esi, esi
lea edx, [0x3fa5795]
lea edi, [0x3fa5796]
mov eax, 0xfffffff9
xor ebx, ebx
movzx ecx, byte [edx]
mov edx, edi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10058fa5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10058fc4
shld ebx, esi, 4
inc eax
test edx, edx
mov esi, ecx
jne 0x10058f80
mov eax, dword [esp]
test eax, eax
je 0x10059270
movsd xmm0, qword [esp + 4]
mov edi, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, dword [0x3fa8000]
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0x80]
movsd qword [esp + 0x44], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x70], xmm0
mov dword [esp + 0xa4], edi
push 4
push 8
push 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x80], 0
mov ebx, dword [esp + 0xb0]
je 0x10059462
lea ecx, [esp + 0xa0]
call fcn.10005440
xor edx, edx
jmp 0x10059478
mov edx, dword [esp + 0x44]
mov dword [edx], edi
mov dword [edx + 4], ebx
movdqa xmm0, xmmword [esp + 0x70]
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 + 0x38], ecx
mov ecx, dword [esp + 0x60]
test eax, eax
jne 0x100598a8
jmp 0x100598f3
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], 0
jmp 0x10059848
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
mov edi, dword [ebp + 8]
movsd xmm0, qword [esp + 4]
shufps xmm1, xmm0, 0xd4
unpcklps xmm0, xmm2
shufps xmm0, xmm1, 0x21
jmp 0x1005730d
mov edi, dword [ebp + 8]
pxor xmm0, xmm0
jmp 0x1005730d
mov eax, dword [esp + 4]
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x60], eax
jmp 0x100594c1
cmp dword [esp + 0x154], 8
jne 0x1005959f
mov dword [esp + 0x20], 0
mov dword [esp + 0x70], 0
jmp 0x1005961e
movdqa xmm0, xmmword [esp + 0x70]
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 + 0x60]
mov edi, dword [ebp + 8]
mov esi, 0x4433
movd ecx, xmm0
pshufd xmm0, xmm0, 0x55
test ecx, ecx
je 0x100594bb
mov dword [esp + 0x70], edx
xor eax, 0x2b
movd edx, xmm0
mov dword [esp + 0x60], eax
mov eax, edx
mov dword [esp + 0xb4], edx
shr edx, 8
mov dword [esp + 0x38], edx
jmp 0x10059841
movd dword [esp + 0x60], 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.10037e30
add esp, 0x14
mov ecx, dword [esp]
test ecx, ecx
je 0x1005951d
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 + 0xb4], eax
mov dword [esp + 0x60], esi
or edx, edi
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x70], edx
jmp 0x10059839
xor ecx, ecx
cmp byte [esp + 4], 0x4d
jne 0x10059832
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.10037e30
add esp, 0x14
mov eax, dword [esp]
test eax, eax
je 0x10059e1a
movzx ecx, byte [esp + 4]
movzx edx, word [esp + 5]
mov dword [esp + 0xb4], ecx
movzx ecx, byte [esp + 7]
shl ecx, 0x10
or edx, ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x38], edx
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x70], ecx
mov ecx, eax
jmp 0x10059839
xor ecx, ecx
lea edx, [0x3fa5bc9]
lea esi, [0x3fa5bca]
mov eax, 0xfffffff9
xor edi, edi
movzx ebx, byte [edx]
mov edx, esi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x100595d9
xor edx, edx
lea edi, [0x3fa2249]
lea esi, [0x3fa224a]
mov ecx, 0xfffffff9
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ebx, byte [edi]
mov edi, esi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x10059665
mov dword [esp + 0xb4], eax
mov edi, dword [ebp + 8]
mov esi, 0x4433
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xc0]
push ebx
call fcn.1003ac80
add esp, 4
dec dword [ebx]
jne 0x1005988e
inc dword [ebx + 4]
lea ecx, [ebx + 8]
call fcn.1002c740
mov eax, dword [ebx + 4]
dec eax
mov dword [ebx + 4], eax
or eax, dword [ebx]
jne 0x1005988e
mov eax, dword [0x3fa8000]
push 8
push 0x30
push ebx
push 0x3fa78d4
call dword [eax + 0x10]
add esp, 0x10
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0xb4]
test eax, eax
je 0x100598f3
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x150], eax
movzx eax, bl
mov dword [esp + 0x158], ecx
mov ecx, dword [esp + 0x20]
shl edx, 8
or eax, edx
mov edx, 0x3fa55ce
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x15c], eax
lea eax, [esp + 0x150]
push eax
push 0xc
call fcn.1005b7c0
add esp, 8
mov eax, dword [edi]
mov ecx, 0x22110000
xor esi, dword [eax + 0x9c]
xor ecx, dword [eax + 0x98]
or ecx, esi
jne 0x100599e7
cmp dword [eax + 0xec], 0x73747373
jne 0x100599e7
cmp dword [eax + 0xcc], 0x2000
jne 0x100599e7
cmp dword [eax + 0xe4], 0x3000
jne 0x100599e7
mov ecx, dword [eax + 0x20]
or ecx, dword [eax + 0x24]
jne 0x100599e7
mov ecx, dword [eax + 0x18]
or ecx, dword [eax + 0x1c]
jne 0x100599e7
mov edi, 0x2000
mov esi, dword [eax + 0xc]
lea ecx, [esp + 0x150]
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.100386f0
add esp, 0x10
mov eax, dword [esp + 0x150]
test eax, eax
je 0x10059b54
mov ecx, dword [esp + 0x15c]
movq xmm0, qword [esp + 0x154]
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]
lea eax, [esp + 0x150]
mov edx, 0x3fa55da
movsd qword [esp + 0x158], xmm1
movsd qword [esp + 0x150], xmm0
push eax
push 6
call fcn.1005b7c0
add esp, 8
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x14], 0
je 0x10059b3b
mov esi, eax
lea eax, [esp + 0x118]
mov edx, edi
lea ecx, [esp + 0x150]
push dword [esi + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.1003b5b0
add esp, 0xc
xor edi, edi
lea edx, [0x3fa55e1]
lea ebx, [0x3fa55e2]
mov eax, 0xfffffff9
mov dword [esp + 0x20], 0
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10059a65
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1005b495
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 0x10059a86
shld dword [esp + 0x20], edi, 4
inc eax
test edx, edx
mov edi, esi
jne 0x10059a40
mov eax, dword [esp + 0x150]
test eax, eax
je 0x10059b3b
movsd xmm0, qword [esp + 0x154]
mov edi, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [0x3fa8000]
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 0x3fa78d4
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10059b1b
lea ecx, [esp + 0x80]
call fcn.10005440
xor eax, eax
movq xmm0, qword [esp]
movd ecx, xmm0
test ecx, ecx
je 0x10059b3b
mov ecx, dword [esp + 0xfc]
xor esi, 0x11d
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], eax
movq qword [ecx], xmm0
jmp 0x10059b4c
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 0x10059b02
mov eax, dword [esp + 0xfc]
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 + 0x154], 0
mov edi, dword [ebp + 8]
je 0x100599e7
cmp dword [esp + 0x158], 0x33c0c300
jne 0x100599e7
mov eax, dword [edi]
mov ebx, dword [ebp + 0xc]
mov edi, 0x2004
lea ecx, [esp + 0x150]
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.10037710
add esp, 0x14
mov eax, dword [esp + 0x150]
test eax, eax
jne 0x1005998f
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x154]
mov eax, dword [eax]
mov dword [esp + 0xe0], ecx
mov edx, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov dword [esp + 0x150], ecx
mov eax, edx
mov esi, edi
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], edi
add eax, 0x2008
mov dword [esp + 0x60], eax
mov eax, edx
adc esi, 0
mov edx, 4
add eax, ecx
lea ecx, [esp + 0x150]
adc edi, 0
mov dword [esp + 0x70], eax
mov dword [esp + 0x38], edi
call fcn.1000b040
mov dword [esp + 0x9c], edx
mov edx, dword [ebx]
lea ecx, [esp + 0x150]
mov dword [esp + 0xc0], eax
push 1
push esi
push dword [esp + 0x68]
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.10037ac0
add esp, 0x14
movq xmm0, qword [esp + 0x150]
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x158]
movd edx, xmm0
test edx, edx
je 0x1005a32a
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 0x100599af
jmp 0x100599e7
cmp byte [esp + 4], 0x5a
mov edi, dword [ebp + 8]
mov esi, 0x4433
jne 0x1005a085
mov ecx, dword [esp + 0x60]
cmp ecx, 0x15
jae 0x1005b78c
cmp ecx, 0x14
jne 0x10059ed0
movdqa xmm0, xmmword [esp + 0x150]
movd xmm1, dword [esp + 0x160]
pcmpeqb xmm1, xmmword [0x3f9e610]
pcmpeqb xmm0, xmmword [0x3f9e620]
pand xmm0, xmm1
pmovmskb eax, xmm0
cmp eax, 0xffff
jne 0x10059ed0
mov dword [esp], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
lea ecx, [esp + 0x40]
mov edx, esp
push 4
push 0x3fa57c4
call fcn.1001d310
add esp, 8
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
mov edx, 0x549a2aa6
mov dword [esp + 0x60], eax
push dword [esp + 0x44]
push eax
push 0xddf2
call fcn.1003fca0
add esp, 0xc
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x60]
call fcn.1002c250
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xc0]
push ebx
call fcn.1003ac80
add esp, 4
mov ecx, ebx
call fcn.1002d110
jmp 0x100598f3
mov dword [esp + 0xb4], eax
xor ecx, ecx
jmp 0x10059841
xor eax, dword [esp + 0x9c]
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 + 0x150]
push 1
push 0
push 8
push eax
push dword [esp + 0x48]
push dword [esp + 0x84]
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.10037f80
add esp, 0x20
mov eax, dword [esp + 0x150]
test eax, eax
je 0x1005a53b
mov ecx, dword [esp + 0x15c]
movq xmm0, qword [esp + 0x154]
mov dword [esp + 0xc], ecx
movq qword [esp + 4], xmm0
mov dword [esp], eax
jmp 0x100599ac
xor edx, edx
push 0x3fa446c
call fcn.100067c0
add esp, 4
ud2
mov ecx, 0x3fa401c
mov edx, 0x58
call fcn.10009f30
mov ecx, dword [esp + 0x60]
xor eax, eax
sub ecx, edi
cmovb ecx, eax
cmp ecx, 6
jbe 0x100528de
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov ecx, esp
lea edx, [esp + 0x150]
push 4
push 0x3fa4038
call fcn.1001d310
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.1003fca0
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.1002c250
jmp 0x100528de
mov eax, dword [esp + 0xe0]
lea ecx, [esp + 0x150]
mov edx, 4
dec eax
mov dword [esp + 0x150], eax
call fcn.1000b040
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xb0]
mov esi, dword [esp + 0xb4]
mov ebx, edx
mov edx, dword [edi]
lea ecx, [esp + 0x150]
add eax, 0x2010
adc esi, 0
push 1
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10037ac0
add esp, 0x14
movq xmm0, qword [esp + 0x150]
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x158]
movd edx, xmm0
test edx, edx
jne 0x10059c60
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x38]
add esi, 8
adc edi, 0
xor eax, ebx
xor ecx, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], ecx
lea ecx, [esp + 0x150]
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.10037f80
add esp, 0x20
mov eax, dword [esp + 0x150]
test eax, eax
jne 0x1005a37b
mov eax, dword [esp + 0xe0]
lea ecx, [esp + 0x150]
mov edx, 4
add eax, 0xfffffffe
mov dword [esp + 0x150], eax
call fcn.1000b040
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xb0]
mov esi, dword [esp + 0xb4]
mov ebx, edx
mov edx, dword [edi]
lea ecx, [esp + 0x150]
add eax, 0x2018
adc esi, 0
push 1
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10037ac0
add esp, 0x14
movq xmm0, qword [esp + 0x150]
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x158]
movd edx, xmm0
test edx, edx
jne 0x10059c60
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x38]
add esi, 0x10
adc edi, 0
xor eax, ebx
xor ecx, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], ecx
lea ecx, [esp + 0x150]
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.10037f80
add esp, 0x20
mov eax, dword [esp + 0x150]
test eax, eax
jne 0x1005a37b
mov eax, dword [esp + 0xe0]
lea ecx, [esp + 0x150]
mov edx, 4
add eax, 0xfffffffd
mov dword [esp + 0x150], eax
call fcn.1000b040
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xb0]
mov esi, dword [esp + 0xb4]
mov ebx, edx
mov edx, dword [edi]
lea ecx, [esp + 0x150]
add eax, 0x2020
adc esi, 0
push 1
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10037ac0
add esp, 0x14
movq xmm0, qword [esp + 0x150]
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x158]
movd edx, xmm0
test edx, edx
jne 0x10059c60
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x38]
add esi, 0x18
adc edi, 0
xor eax, ebx
xor ecx, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], ecx
lea ecx, [esp + 0x150]
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.10037f80
add esp, 0x20
mov eax, dword [esp + 0x150]
test eax, eax
jne 0x1005a37b
mov eax, dword [esp + 0xe0]
lea ecx, [esp + 0x150]
mov edx, 4
add eax, 0xfffffffc
mov dword [esp + 0x150], eax
call fcn.1000b040
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xb0]
mov esi, dword [esp + 0xb4]
mov ebx, edx
mov edx, dword [edi]
lea ecx, [esp + 0x150]
add eax, 0x2028
adc esi, 0
push 1
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10037ac0
add esp, 0x14
movq xmm0, qword [esp + 0x150]
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x158]
movd edx, xmm0
test edx, edx
jne 0x10059c60
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x38]
add esi, 0x20
adc edi, 0
xor eax, ebx
xor ecx, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], ecx
lea ecx, [esp + 0x150]
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.10037f80
add esp, 0x20
mov eax, dword [esp + 0x150]
test eax, eax
jne 0x1005a37b
mov eax, dword [esp + 0xe0]
lea ecx, [esp + 0x150]
mov edx, 4
add eax, 0xfffffffb
mov dword [esp + 0x150], eax
call fcn.1000b040
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xb0]
mov esi, dword [esp + 0xb4]
mov ebx, edx
mov edx, dword [edi]
lea ecx, [esp + 0x150]
add eax, 0x2030
adc esi, 0
push 1
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10037ac0
add esp, 0x14
movq xmm0, qword [esp + 0x150]
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x158]
movd edx, xmm0
test edx, edx
jne 0x10059c60
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x38]
add esi, 0x28
adc edi, 0
xor eax, ebx
xor ecx, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], ecx
lea ecx, [esp + 0x150]
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.10037f80
add esp, 0x20
mov eax, dword [esp + 0x150]
test eax, eax
jne 0x1005a37b
mov eax, dword [esp + 0xe0]
lea ecx, [esp + 0x150]
mov edx, 4
add eax, 0xfffffffa
mov dword [esp + 0x150], eax
call fcn.1000b040
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xb0]
mov esi, dword [esp + 0xb4]
mov ebx, edx
mov edx, dword [edi]
lea ecx, [esp + 0x150]
add eax, 0x2038
adc esi, 0
push 1
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10037ac0
add esp, 0x14
movq xmm0, qword [esp + 0x150]
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x158]
movd edx, xmm0
test edx, edx
jne 0x10059c60
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x38]
add esi, 0x30
adc edi, 0
xor eax, ebx
xor ecx, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], ecx
lea ecx, [esp + 0x150]
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.10037f80
add esp, 0x20
mov eax, dword [esp + 0x150]
test eax, eax
jne 0x1005a37b
mov eax, dword [esp + 0xe0]
lea ecx, [esp + 0x150]
mov edx, 4
add eax, 0xfffffff9
mov dword [esp + 0x150], eax
call fcn.1000b040
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xb0]
mov esi, edi
mov edi, dword [esp + 0xb4]
mov ebx, edx
lea ecx, [esp + 0x150]
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.10037ac0
add esp, 0x14
movq xmm0, qword [esp + 0x150]
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x158]
movd edx, xmm0
test edx, edx
jne 0x10059c60
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x38]
add esi, 0x38
adc edi, 0
xor eax, ebx
xor ecx, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], ecx
lea ecx, [esp + 0x150]
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.10037f80
add esp, 0x20
mov eax, dword [esp + 0x150]
test eax, eax
jne 0x1005a37b
mov edi, dword [ebp + 8]
jmp 0x100599e7
mov eax, dword [esp + 0x20]
mov eax, dword [eax + ebx + 4]
test eax, eax
je 0x1005b475
mov ecx, dword [esp + 0x20]
xor edx, edx
mov esi, eax
mov ecx, dword [ecx + ebx]
jmp 0x1005abd6
mov esi, eax
sub eax, edx
jbe 0x1005b475
shr eax, 1
xor ebx, ebx
add eax, edx
mov edi, eax
shl edi, 4
cmp dword [ecx + edi + 0xc], 0x38649ca6
mov edi, 0xff
setne bl
cmovb ebx, edi
cmp bl, 1
je 0x1005abcc
movzx edx, bl
cmp edx, 0xff
jne 0x1005acff
push 0x3fa2258
call fcn.100067c0
add esp, 4
ud2
mov dword [esp + 0x40], 0
xor esi, esi
mov eax, dword [esp + 0x60]
dec dword [eax]
mov edi, dword [ebp + 8]
test esi, esi
jne 0x100545db
jmp 0x10054608
mov ecx, 0x3fa6484
mov edx, 0xe
push 0x3f9fdfc
call fcn.10007180
add esp, 4
ud2
push 0x3fa3674
call fcn.100067c0
add esp, 4
ud2
mov ecx, 0x3fa3e44
mov edx, 0x41
push 0x3fa3e88
call fcn.10007180
add esp, 4
ud2
mov edx, 6
push 0x3fa4028
call fcn.10006c90
add esp, 4
ud2
mov edi, dword [esp + 0x70]
mov bl, 7
jmp 0x1005b6c4
lea ebx, [esp + 0x150]
mov edi, edx
mov byte [esp + 0x20], 7
jmp 0x1005b732
mov edi, dword [esp + 0x150]
mov ebx, eax
mov esi, dword [esp + 0x158]
call fcn.10004f10
mov ecx, eax
push esi
call fcn.10009680
add esp, 4
test eax, eax
je 0x1005b6f3
mov ecx, dword [0x3fa8000]
push edx
push eax
push edi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
mov ecx, 0x3fa78a8
mov edx, 0x2b
mov byte [esp + 0x150], bl
push 0x3fa1a98
push 0x3fa1cc8
lea eax, [esp + 0x158]
push eax
call fcn.100079d0
add esp, 0xc
ud2
mov edi, dword [esp + 0x150]
lea ebx, [esp + 0x150]
mov byte [esp + 0x20], al
mov esi, dword [esp + 0x158]
call fcn.10004f10
mov ecx, eax
push esi
call fcn.10009680
add esp, 4
test eax, eax
je 0x1005b761
mov ecx, dword [0x3fa8000]
push edx
push eax
push edi
push 0x3fa78d4
call dword [ecx + 0x10]
add esp, 0x10
movzx eax, byte [esp + 0x20]
mov ecx, 0x3fa78a8
mov edx, 0x2b
mov byte [esp + 0x150], al
push 0x3fa1a98
push 0x3fa1cc8
push ebx
call fcn.100079d0
add esp, 0xc
ud2
mov edx, 0x14
push 0x3fa57a0
call fcn.10006c90
add esp, 4
ud2
mov ecx, 1
xor edx, edx
push 0x3fa7720
call fcn.10006c30
add esp, 4
ud2