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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x4f40
call 0x1006d593
mov ebx, dword [edx + 4]
mov dword [esp + 0xa0], ecx
mov ecx, dword [edx]
mov edi, edx
call 0x10046c86
pop esi
mov eax, dword [ebx]
lea edx, [ebx + 0x68]
mov dword [esp + 0x34], edx
push edx
push 2
push 0
push 0
mov dword [esp + 0x4c], ecx
push ecx
push dword [ebx + 8]
call dword [eax + 0x2cc]
add esp, 0x18
mov ecx, eax
mov dword [esp + 0x54], esi
mov dword [esp + 0x38], edi
add ecx, 4
cmp ecx, 4
ja 0x10046f92
mov eax, dword [ecx*4 + 0x3c79c60]
add eax, esi
jmp eax
mov al, 4
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov byte [edi + 8], al
mov dword [esp + 0x60], 0
xor edx, edx
lea eax, [0x3ca4077]
lea ecx, [0x3ca4078]
mov esi, 0xfffffff9
mov dword [esp + 0x10], 0
nop word [eax + eax]
movzx ebx, byte [eax]
mov eax, ecx
mov ecx, ebx
add cl, 0xd0
cmp cl, 0xa
jb 0x10046ff5
or bl, 0x20
mov ecx, ebx
add cl, 0x9f
cmp cl, 6
jae 0x1004a711
add bl, 0xa9
mov ecx, ebx
mov edi, edx
movzx ebx, cl
lea ecx, [eax + 1]
shl edi, 4
or ebx, edi
test esi, esi
cmove ecx, eax
je 0x10047016
shld dword [esp + 0x10], edx, 4
inc esi
test eax, eax
mov edx, ebx
jne 0x10046fd0
cmp byte [esp + 0x60], 0
je 0x10047129
mov esi, dword [ebp + 0x10]
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1004a58b
mov eax, dword [esp + 8]
xor edx, edx
lea edi, [esp + 0x460]
xor eax, dword [esp + 0x40]
div ecx
lea eax, [esp + 0x88]
mov dword [esp + 0xd8], 1
mov dword [esp + 0xdc], 0
mov dword [esp + 0x460], 0x3ca68cc
mov dword [esp + 0xe0], 0
mov dword [esp + 0x464], 1
lea ecx, [esp + 0x1f30]
mov dword [esp + 0x370], eax
lea eax, [esp + 0xd8]
mov ebx, edx
mov dword [esp + 0x88], edx
mov edx, 0x3ca3428
mov dword [esp + 0x1f30], eax
lea eax, [esp + 0x370]
mov dword [esp + 0x290], eax
lea eax, [esp + 0x290]
mov dword [esp + 0x294], 0x3c32f70
mov dword [esp + 0x468], eax
mov dword [esp + 0x46c], 1
mov dword [esp + 0x470], 0
push edi
call fcn.10005570
add esp, 4
test al, al
jne 0x100475cb
mov eax, dword [ebp + 0x14]
cmp byte [eax + 0x28], 2
jb 0x100475cb
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xdc]
cmp byte [esi + 0x2a], 0
je 0x10047451
mov byte [esi + 0x2a], 0
jmp 0x100474b4
movzx eax, byte [esp + 0xc]
mov edx, 7
xor ebx, 0xa9
mov ecx, dword [eax*4 + 0x3c9f1c8]
mov esi, dword [eax*4 + 0x3c9f1f8]
mov dword [esp + 0x10], ecx
mov ecx, 0x3c9f1c0
call fcn.100091f0
mov edx, dword [esp + 0x10]
mov ecx, esi
mov edi, eax
call fcn.100091f0
test edi, edi
mov ecx, 1
cmove edi, ecx
test eax, eax
cmove eax, ecx
mov dword [esp + 0xd8], edi
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], 0
mov edx, dword [esp + 0x38]
cmp byte [edx + 9], 0
je 0x100471ae
mov eax, dword [edx + 4]
mov ecx, dword [eax]
push dword [edx]
push dword [eax + 8]
call dword [ecx + 0x2d8]
add esp, 8
mov ebx, dword [ebp + 0x14]
test edi, edi
je 0x100495b0
lea eax, [esp + 0xd8]
lea esi, [esp + 0x1f30]
lea edi, [esp + 0x460]
mov dword [esp + 0x290], 1
mov dword [esp + 0x294], 0
mov dword [esp + 0x460], 0x3ca68cc
mov dword [esp + 0x298], 0
mov dword [esp + 0x464], 1
mov edx, 0x3ca3428
mov dword [esp + 0xa4], eax
lea eax, [esp + 0xa4]
mov ecx, esi
mov dword [esp + 0x1eb8], eax
lea eax, [esp + 0x290]
mov dword [esp + 0x1f30], eax
lea eax, [esp + 0x1eb8]
mov dword [esp + 0x3e8], eax
lea eax, [esp + 0x3e8]
mov dword [esp + 0x3ec], 0x3c32eb0
mov dword [esp + 0x468], eax
mov dword [esp + 0x46c], 1
mov dword [esp + 0x470], 0
push edi
call fcn.10005570
add esp, 4
test al, al
jne 0x10047411
cmp byte [ebx + 0x28], 2
jb 0x10047411
mov eax, dword [esp + 0x290]
mov ecx, dword [esp + 0x294]
cmp byte [ebx + 0x2a], 0
je 0x100472a1
mov byte [ebx + 0x2a], 0
jmp 0x10047304
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0x1f30]
mov dword [esp + 0x460], 0x3ca36fc
mov dword [esp + 0x464], 1
mov dword [esp + 0x468], 0x3ca6800
mov dword [esp + 0x46c], 0
mov dword [esp + 0x1f30], ebx
mov dword [esp + 0x470], 0
mov edx, 0x3ca34cc
push edi
mov dword [esp + 0x14], eax
call fcn.10005570
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x460], eax
lea eax, [esp + 0x1b4]
mov dword [esp + 0x3738], 0x3ca3710
mov dword [esp + 0x373c], 3
mov dword [esp + 0x464], ecx
mov dword [esp + 0x1f30], 0x3ca3feb
mov dword [esp + 0x1f34], 0xa
mov dword [esp + 0x1b4], esi
mov dword [esp + 0x1b8], 0x3c37930
mov dword [esp + 0x1bc], edi
mov dword [esp + 0x370], ebx
mov dword [esp + 0x1f44], 0x7fffffff
mov dword [esp + 0x1f40], 0xefffffff
mov dword [esp + 0x1f3c], 0xffffffdf
mov dword [esp + 0x1f38], 0
mov byte [esp + 0x1f48], 0
mov dword [esp + 0x474], 0x7fffffff
mov dword [esp + 0x470], 0xefffffff
mov dword [esp + 0x46c], 0xffffffdf
mov dword [esp + 0x468], 0
mov byte [esp + 0x478], 0
mov dword [esp + 0x1c0], 0x3c37930
lea ecx, [esp + 0x370]
mov edx, 0x3ca34cc
mov dword [esp + 0x3740], eax
lea eax, [esp + 0x3738]
mov dword [esp + 0x3744], 2
mov dword [esp + 0x3748], 0
push eax
call fcn.10005570
add esp, 4
mov edx, 1
mov ecx, 1
push dword [esp + 0x298]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x10049751
mov ecx, dword [0x3ca7000]
push edx
push eax
push dword [esp + 0x298]
push 0x3ca6800
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x10049751
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0x1f30]
mov dword [esp + 0x460], 0x3ca36fc
mov dword [esp + 0x464], 1
mov dword [esp + 0x468], 0x3ca6800
mov dword [esp + 0x46c], 0
mov dword [esp + 0x1f30], esi
mov dword [esp + 0x470], 0
mov edx, 0x3ca34cc
push edi
mov dword [esp + 0x14], eax
call fcn.10005570
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x460], eax
lea eax, [esp + 0x1f30]
mov dword [esp + 0x3738], 0x3ca3710
mov dword [esp + 0x373c], 3
mov dword [esp + 0x464], ecx
mov dword [esp + 0x1f30], 0x3ca407f
mov dword [esp + 0x1f34], 0x17
mov dword [esp + 0x3e8], esi
mov dword [esp + 0x1f44], 0x7fffffff
mov dword [esp + 0x1f40], 0xefffffff
mov dword [esp + 0x1f3c], 0xffffffdf
mov dword [esp + 0x1f38], 0
mov byte [esp + 0x1f48], 0
mov dword [esp + 0x474], 0x7fffffff
mov dword [esp + 0x470], 0xefffffff
mov dword [esp + 0x46c], 0xffffffdf
mov dword [esp + 0x468], 0
mov byte [esp + 0x478], 0
lea ecx, [esp + 0x3e8]
mov edx, 0x3ca34cc
mov dword [esp + 0x1b4], eax
lea eax, [esp + 0x1b4]
mov dword [esp + 0x1b8], 0x3c37930
mov dword [esp + 0x1bc], edi
mov dword [esp + 0x1c0], 0x3c37930
mov dword [esp + 0x3740], eax
lea eax, [esp + 0x3738]
mov dword [esp + 0x3744], 2
mov dword [esp + 0x3748], 0
push eax
call fcn.10005570
add esp, 4
mov esi, dword [ebp + 0x10]
mov edx, 1
mov ecx, 1
push dword [esp + 0xe0]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x10047602
mov ecx, dword [0x3ca7000]
push edx
push eax
push dword [esp + 0xe0]
push 0x3ca6800
call dword [ecx + 0x10]
add esp, 0x10
cmp ebx, dword [esi + 0x20]
jb 0x100477af
cmp ebx, dword [esi + 0x24]
jae 0x100477af
movzx eax, byte [esi + 0x2e]
mov ebx, dword [esp + 0x38]
test al, al
mov byte [esp + 0x60], al
je 0x100476e9
mov eax, dword [ebp + 0x14]
xor esi, esi
cmp byte [eax + 0x11], 2
cmovne esi, eax
je 0x100476e9
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x2f], 0
je 0x10047696
mov dword [esp + 0x460], 0x3ca40a8
mov dword [esp + 0x464], 1
mov dword [esp + 0x468], 0x3ca6800
mov dword [esp + 0x46c], 0
mov dword [esp + 0x1f30], esi
mov dword [esp + 0x470], 0
lea ecx, [esp + 0x1f30]
mov edx, 0x3c9db74
push edi
call fcn.10005570
add esp, 4
mov dword [esp + 0x460], 0x3ca40c0
mov dword [esp + 0x464], 1
mov dword [esp + 0x468], 0x3ca6800
mov dword [esp + 0x46c], 0
mov dword [esp + 0x1f30], esi
mov dword [esp + 0x470], 0
lea ecx, [esp + 0x1f30]
mov edx, 0x3c9db74
push edi
call fcn.10005570
add esp, 4
movzx eax, byte [ebx + 8]
mov edi, dword [ebx]
mov esi, dword [ebx + 4]
mov byte [esp + 0xc], al
mov eax, ebx
movzx ebx, byte [ebx + 9]
movzx eax, word [eax + 0xa]
mov word [esp + 8], ax
mov eax, dword [ebp + 0x10]
mov bh, byte [eax + 0x2d]
mov eax, dword [esp + 0x88]
test bh, bh
mov dword [esp + 0x40], eax
je 0x1004775e
mov eax, dword [ebp + 8]
mov dword [esp + 0x3738], eax
mov eax, dword [ebp + 0xc]
cmp eax, 0x10
mov dword [esp + 0x373c], eax
jb 0x1004775e
mov ecx, dword [ebp + 8]
add eax, 0xfffffff0
je 0x10047745
cmp byte [ecx + eax], 0xbf
jle 0x1004a7f2
add eax, ecx
mov edx, 0x10
mov ecx, eax
call fcn.100091f0
cmp eax, 0xcd42c474
je 0x1004a78c
mov eax, dword [0x3ca7000]
push 4
push 0x18
push 0x3ca6800
lea ecx, [esp + 0x46c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
movzx eax, byte [esp + 0x460]
mov byte [esp + 0x2c], bh
test al, al
mov byte [esp + 0x10], al
je 0x100477d7
movzx eax, byte [esp + 0x461]
test bl, bl
mov byte [esp + 8], al
je 0x100477ad
mov eax, dword [esi]
push edi
push dword [esi + 8]
call dword [eax + 0x2d8]
add esp, 8
jmp 0x10047810
mov byte [esp + 0xdc], 2
mov dword [esp + 0xd8], 0
xor edi, edi
mov edx, dword [esp + 0x38]
cmp byte [edx + 9], 0
jne 0x1004719b
jmp 0x100471ae
mov eax, dword [esp + 0x464]
movzx ecx, byte [esp + 0xc]
movzx edx, word [esp + 8]
mov dword [eax], 1
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], esi
mov byte [eax + 0x14], cl
mov byte [eax + 0x15], bl
mov dword [esp + 0xc], eax
mov word [eax + 0x16], dx
xor esi, esi
lea ebx, [0x3ca4375]
lea edx, [0x3ca4376]
mov eax, 0xfffffff9
xor edi, edi
nop word cs:[eax + eax]
nop
movzx ecx, byte [ebx]
mov ebx, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10047855
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1004a711
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, [ebx + 1]
cmove edx, ebx
je 0x10047876
shld edi, esi, 4
inc eax
test ebx, ebx
mov esi, ecx
jne 0x10047830
cmp byte [esp + 0x10], 0
je 0x1004798c
movzx eax, byte [esp + 8]
xor ecx, 0x4c
mov edx, 0xa
mov dword [esp + 0x40], ecx
mov ecx, 0x3c9edeb
mov edi, dword [eax*4 + 0x3c9ef50]
mov ebx, dword [eax*4 + 0x3c9ef70]
call fcn.100091f0
test eax, eax
mov esi, 1
mov ecx, ebx
mov edx, edi
cmove eax, esi
mov dword [esp + 0xc], eax
call fcn.100091f0
test eax, eax
lea ecx, [0x3ca4077]
lea edx, [0x3ca4078]
mov dword [esp + 0x10], 0
cmove eax, esi
xor esi, esi
mov dword [esp + 8], eax
mov eax, 0xfffffff9
nop word cs:[eax + eax]
nop
movzx ebx, byte [ecx]
mov ecx, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x10047915
or bl, 0x20
mov edx, ebx
add dl, 0x9f
cmp dl, 6
jae 0x1004a711
add bl, 0xa9
mov edx, ebx
mov edi, esi
movzx ebx, dl
lea edx, [ecx + 1]
shl edi, 4
or ebx, edi
test eax, eax
cmove edx, ecx
je 0x10047936
shld dword [esp + 0x10], esi, 4
inc eax
test ecx, ecx
mov esi, ebx
jne 0x100478f0
mov esi, dword [esp + 0x40]
mov eax, dword [0x3ca7000]
xor ebx, 0x73
mov dword [esp + 0x1f30], esi
mov dword [esp + 0x1f34], 0
push 4
push 8
push 0x3ca6800
lea edi, [esp + 0x46c]
push edi
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x460], 0
je 0x10047c67
lea ecx, [esp + 0x1f30]
call fcn.10004080
xor eax, eax
jmp 0x10047c77
lea ecx, [0x3ca4077]
lea edx, [0x3ca4078]
mov eax, 0xfffffff9
lea esi, [esp + 0x460]
nop word cs:[eax + eax]
nop
movzx ebx, byte [ecx]
mov ecx, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x100479ce
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1004a711
lea edx, [ecx + 1]
test eax, eax
cmove edx, ecx
je 0x100479dd
inc eax
test ecx, ecx
jne 0x100479b0
mov eax, dword [0x3ca7000]
push 8
push 0x90
push 0x3ca6800
push esi
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x460], 0
jne 0x1004a72a
mov esi, dword [esp + 0x464]
movaps xmm0, xmmword [0x3c9d570]
mov edi, dword [ebp + 0x10]
cmp byte [esp + 0x60], 0
mov dword [esi], 1
mov dword [esi + 4], 0
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0
movups xmmword [esi + 0x18], xmm0
movaps xmm0, xmmword [0x3c9d580]
mov byte [esi + 0x28], 1
setne al
xor edx, edx
mov dword [esp + 0x58], esi
movups xmmword [esi + 0x30], xmm0
movaps xmm0, xmmword [0x3c9d590]
movups xmmword [esi + 0x40], xmm0
movaps xmm0, xmmword [0x3c9d5a0]
mov dword [esi + 0x54], 0
mov dword [esi + 0x50], 0x2dc6c0
mov dword [esi + 0x58], 0xffffffff
mov dword [esi + 0x5c], 0xffffffff
mov dword [esi + 0x60], 0xffffffff
mov dword [esi + 0x64], 0xffffffff
mov dword [esi + 0x68], 1
movups xmmword [esi + 0x6c], xmm0
mov dword [esi + 0x7c], 0x100000
mov dword [esi + 0x80], 0x100
mov dword [esi + 0x84], 0x100
mov dword [esi + 0x88], 0x2f010400
movsd xmm0, qword [edi + 0x18]
movsd qword [esi + 0x50], xmm0
mov ecx, dword [edi]
movdqu xmm0, xmmword [edi + 8]
or ecx, dword [edi + 4]
sete dl
movd xmm1, edx
mov edx, dword [ebp + 8]
pshufd xmm1, xmm1, 0x44
psllq xmm1, 0x3f
psrad xmm1, 0x1f
pshufd xmm1, xmm1, 0xf5
por xmm1, xmm0
movdqu xmmword [esi + 0x58], xmm1
mov esi, dword [ebp + 0x14]
cmp byte [esi + 0x11], 2
movzx esi, byte [edi + 0x31]
setne cl
xor ebx, ebx
and cl, al
cmove esi, ebx
cmovne ebx, dword [edi + 0x30]
mov byte [esp + 0x10], cl
lea ecx, [esp + 0xa8]
push dword [ebp + 0xc]
call fcn.100094c0
add esp, 4
mov ecx, dword [ebp + 0x14]
movzx eax, byte [edi + 0x2c]
lea edx, [0x3ca4376]
mov dword [esp + 0xb4], ecx
mov byte [esp + 0xb8], al
movzx eax, byte [esp + 0x2c]
lea ecx, [0x3ca4375]
mov byte [esp + 0xb9], al
mov eax, dword [esp + 0x40]
mov dword [esp + 0xa4], eax
movzx eax, byte [esp + 0x10]
mov byte [esp + 0xba], al
mov eax, esi
mov byte [esp + 0xbb], al
mov eax, 0xfffffff9
mov byte [esp + 0xbc], bl
nop
movzx ebx, byte [ecx]
mov ecx, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x10047b9e
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1004a711
lea edx, [ecx + 1]
test eax, eax
cmove edx, ecx
je 0x10047bad
inc eax
test ecx, ecx
jne 0x10047b80
mov eax, dword [esp + 0xc]
cmp dword [eax + 8], 0
lea edi, [eax + 8]
mov dword [esp + 0x38], edi
je 0x10047cae
xor esi, esi
lea edx, [0x3ca4375]
lea ebx, [0x3ca4376]
mov eax, 0xfffffff9
mov dword [esp + 0x10], 0
nop dword [eax]
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10047c05
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1004a711
add cl, 0xa9
mov ch, cl
mov ebx, esi
movzx edi, ch
shl ebx, 4
or edi, ebx
lea ebx, [edx + 1]
test eax, eax
cmove ebx, edx
je 0x10047c26
shld dword [esp + 0x10], esi, 4
inc eax
test edx, edx
mov esi, edi
jne 0x10047be0
mov ecx, 0x3c9f6a7
mov edx, 0xd
xor edi, 0x25
call fcn.100091f0
test eax, eax
mov esi, 1
mov ecx, 0x3c9f6bf
mov edx, 0xb
cmove eax, esi
mov dword [esp + 0x10], eax
call fcn.100091f0
test eax, eax
movd xmm1, edi
cmove eax, esi
movd xmm0, eax
jmp 0x10047d0d
mov eax, dword [esp + 0x464]
mov dword [eax], esi
mov dword [eax + 4], 0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov dword [esp + 0x1f30], ecx
mov dword [esp + 0x1f34], edx
mov dword [esp + 0x1f38], ebx
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x1f3c], eax
cmp byte [esp + 0x60], 0
jne 0x1004945d
jmp 0x1004957d
mov dword [eax + 8], 0xffffffff
add eax, 0xc
lea edx, [0x3ca4375]
lea esi, [0x3ca4376]
mov ecx, 0xfffffff9
nop dword [eax]
movzx ebx, byte [edx]
mov edx, esi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x10047cee
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1004a711
lea esi, [edx + 1]
test ecx, ecx
cmove esi, edx
je 0x10047cfd
inc ecx
test edx, edx
jne 0x10047cd0
movd xmm1, edi
movd xmm0, eax
mov dword [esp + 0x10], 0
punpckldq xmm0, xmm1
xor edi, edi
lea esi, [0x3c9d869]
lea edx, [0x3c9d86a]
mov eax, 0xfffffff9
xor ebx, ebx
nop word cs:[eax + eax]
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10047d55
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1004a711
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 0x10047d76
shld ebx, edi, 4
inc eax
test esi, esi
mov edi, ecx
jne 0x10047d30
mov eax, dword [esp + 0x10]
test eax, eax
je 0x10047dec
mov dword [esp + 0x460], eax
mov eax, dword [0x3ca7000]
mov esi, ecx
movq qword [esp + 0x464], xmm0
pshufd xmm0, xmm0, 0x55
movd dword [esp + 0x3738], xmm0
movdqa xmmword [esp + 0x10], xmm0
mov dword [esp + 0x373c], 0
push 4
push 8
push 0x3ca6800
lea ecx, [esp + 0x1f3c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x1f30], 0
je 0x100481e9
lea ecx, [esp + 0x3738]
call fcn.10004080
xor ecx, ecx
jmp 0x10048203
movd edi, xmm0
pshufd xmm0, xmm0, 0x55
movd dword [esp + 8], xmm0
jmp 0x100482b7
movdqa xmm0, xmmword [esp + 0x10]
mov ecx, dword [esp + 0x1f34]
movd eax, xmm0
mov dword [ecx], eax
mov dword [ecx + 4], 0
movq xmm0, qword [esp + 0x460]
xor esi, 0x2a
movd eax, xmm0
shufps xmm0, xmm0, 0x55
mov dword [esp + 0x40], eax
test eax, eax
movd eax, xmm0
je 0x100482b1
mov dword [esp + 0x30], esi
mov dword [esp + 0x10], eax
xor edi, edi
lea ebx, [0x3c9d869]
lea edx, [0x3c9d86a]
mov eax, 0xfffffff9
xor esi, esi
mov dword [esp + 0x2c], ecx
nop dword [eax + eax]
movzx ecx, byte [ebx]
mov ebx, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x10048275
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1004a711
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, [ebx + 1]
cmove edx, ebx
je 0x10048296
shld esi, edi, 4
inc eax
test ebx, ebx
mov edi, ecx
jne 0x10048250
mov ebx, dword [ebp + 0x14]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x40]
mov dword [esp + 8], ecx
lea edx, [esp + 0x460]
jmp 0x100484da
mov edi, eax
mov dword [esp + 8], esi
pxor xmm0, xmm0
movdqa xmmword [esp + 0x490], xmm0
movdqa xmmword [esp + 0x480], xmm0
movdqa xmmword [esp + 0x470], xmm0
movdqa xmmword [esp + 0x460], xmm0
mov eax, dword [edi + 4]
mov ecx, dword [eax]
lea esi, [eax + 0x68]
push esi
push 2
push 0
push 0
push dword [edi]
push dword [eax + 8]
call dword [ecx + 0x2cc]
add esp, 0x18
add eax, 4
mov dword [esp + 0x40], 0
mov dword [esp + 0x34], edi
cmp eax, 4
ja 0x10048352
mov eax, dword [eax*4 + 0x3c79c88]
add eax, dword [esp + 0x54]
jmp eax
mov al, 4
jmp 0x10048364
mov dword [esp + 0x2c], 0
mov byte [edi + 8], al
mov dword [esp + 0x10], 0
xor esi, esi
lea edi, [0x3c9d869]
lea ebx, [0x3c9d86a]
mov edx, 0xfffffff9
xor eax, eax
nop dword [eax]
movzx ecx, byte [edi]
mov edi, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x100483b5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1004a711
add cl, 0xa9
mov ch, cl
mov ebx, esi
movzx ecx, ch
shl ebx, 4
or ecx, ebx
lea ebx, [edi + 1]
test edx, edx
cmove ebx, edi
je 0x100483d4
shld eax, esi, 4
inc edx
test edi, edi
mov esi, ecx
jne 0x10048390
cmp byte [esp + 0x10], 0
je 0x100483ff
cmp dword [esp + 0x3c], 0x40
mov eax, dword [esp + 0x40]
sbb eax, 0
jae 0x10048846
mov dword [esp + 0x10], 0
mov dword [esp + 0x40], 0
jmp 0x10048447
mov eax, dword [esp + 0x2c]
xor ecx, 0x2e
mov dword [esp + 0x30], ecx
mov edi, dword [eax*4 + 0x3c9f1c8]
mov ebx, dword [eax*4 + 0x3c9f1f8]
mov ecx, 0x3c9f1c0
mov edx, 7
call fcn.100091f0
test eax, eax
mov esi, 1
mov ecx, ebx
mov edx, edi
cmove eax, esi
mov dword [esp + 0x40], eax
call fcn.100091f0
test eax, eax
cmove eax, esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 8]
xor edi, edi
lea edx, [0x3c9d869]
lea ebx, [0x3c9d86a]
xor esi, esi
inc dword [eax]
mov eax, 0xfffffff9
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 0x10048495
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1004a711
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 0x100484b4
shld esi, edi, 4
inc eax
test edx, edx
mov edi, ecx
jne 0x10048470
mov esi, dword [esp + 0x40]
test esi, esi
je 0x100487e2
mov ebx, dword [ebp + 0x14]
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x460]
mov dword [esp + 8], ecx
mov dword [esp + 0x2c], 0
mov edi, dword [esp + 0x30]
mov dword [esp + 0x10], eax
movd xmm0, eax
mov eax, dword [esp + 0x2c]
movd xmm1, esi
punpckldq xmm1, xmm0
movdqa xmmword [esp + 0x40], xmm1
mov dword [esp + 0x1f30], edi
mov dword [esp + 0x1f34], eax
mov eax, dword [0x3ca7000]
push 4
push 8
push 0x3ca6800
mov esi, edx
push edx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x460], 0
je 0x10048537
lea ecx, [esp + 0x1f30]
call fcn.10004080
xor eax, eax
jmp 0x10048547
mov eax, dword [esp + 0x464]
mov ecx, dword [esp + 0x2c]
mov dword [eax], edi
mov dword [eax + 4], ecx
movdqa xmm0, xmmword [esp + 0x40]
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 8]
movd edx, xmm0
test edx, edx
mov dword [esp + 0x2c], edx
je 0x10048591
pshufd xmm0, xmm0, 0x55
mov dword [esp + 0x34], eax
mov edx, edi
xor ecx, 0x19
mov dword [esp + 0x30], 0
mov dword [esp + 0x40], 4
mov edi, esi
movd eax, xmm0
shr eax, 8
mov dword [esp + 0x38], eax
jmp 0x10048810
mov eax, dword [esp + 0x10]
mov edx, edi
mov edi, esi
test al, al
je 0x100487fc
inc dword [edx]
lea ecx, [0x3ca45a4]
lea edx, [0x3ca45a5]
mov eax, 0xfffffff9
nop word cs:[eax + eax]
nop
movzx ebx, byte [ecx]
mov ecx, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x100485de
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1004a711
lea edx, [ecx + 1]
test eax, eax
cmove edx, ecx
je 0x100485ed
inc eax
test ecx, ecx
jne 0x100485c0
mov esi, 1
lock xadd dword [0x3ca749c], esi
mov eax, dword [0x3ca7000]
push 4
push 0x44
push 0x3ca6800
lea ecx, [esp + 0x1f3c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x1f30], 0
mov dword [esp + 0x460], 1
mov dword [esp + 0x464], 0
mov dword [esp + 0x468], 0
mov dword [esp + 0x46c], 4
mov dword [esp + 0x470], 0
mov dword [esp + 0x474], 0
mov dword [esp + 0x478], 8
mov dword [esp + 0x47c], 0
mov dword [esp + 0x480], 0
mov dword [esp + 0x484], 1
mov dword [esp + 0x488], 0x3ca4604
mov dword [esp + 0x48c], 0
mov dword [esp + 0x490], 0
mov dword [esp + 0x494], esi
mov dword [esp + 0x498], 0
mov dword [esp + 0x49c], 0
mov dword [esp + 0x4a0], 0x1000
je 0x10048d95
movzx eax, byte [esp + 0x1f31]
lea ecx, [esp + 0x46c]
mov dword [esp + 8], eax
call fcn.100289e0
mov edx, 8
mov ecx, 8
push 0
call fcn.100078c0
add esp, 4
test eax, eax
je 0x10048720
mov ecx, dword [0x3ca7000]
push edx
push eax
push 8
push 0x3ca6800
call dword [ecx + 0x10]
add esp, 0x10
xor edi, edi
lea esi, [0x3ca51bb]
lea edx, [0x3ca51bc]
mov eax, 0xfffffff9
mov dword [esp + 0x10], 0
nop dword [eax + eax]
movzx ebx, byte [esi]
mov esi, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x10048765
or bl, 0x20
mov edx, ebx
add dl, 0x9f
cmp dl, 6
jae 0x1004a711
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 0x10048786
shld dword [esp + 0x10], edi, 4
inc eax
test esi, esi
mov edi, ebx
jne 0x10048740
mov eax, dword [esp + 8]
mov edx, 0xa
xor ebx, 0x139
mov ecx, dword [eax*4 + 0x3c9ef50]
mov edi, dword [eax*4 + 0x3c9ef70]
mov dword [esp + 0x10], ecx
mov ecx, 0x3c9edeb
call fcn.100091f0
mov edx, dword [esp + 0x10]
mov ecx, edi
mov esi, eax
call fcn.100091f0
test eax, eax
mov ecx, 1
movd xmm1, ebx
cmove eax, ecx
test esi, esi
movd xmm0, eax
cmove esi, ecx
punpckldq xmm0, xmm1
mov dword [esp + 0x10], esi
jmp 0x100497e2
mov ebx, dword [ebp + 0x14]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
lea edi, [esp + 0x460]
test al, al
jne 0x100485a1
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x40], 3
dec dword [edx]
jne 0x100488b4
mov eax, dword [edx + 4]
mov esi, ecx
inc eax
mov dword [edx + 4], eax
cmp byte [edx + 0x15], 0
je 0x1004888d
mov eax, dword [edx + 0x10]
mov ecx, dword [eax]
push dword [edx + 0xc]
push dword [eax + 8]
call dword [ecx + 0x2d8]
mov edx, dword [esp + 0x14]
add esp, 8
mov ecx, dword [edx]
mov eax, dword [edx + 4]
jmp 0x1004888f
mov esi, dword [esp + 0x34]
mov eax, dword [esi + 4]
mov edx, dword [eax]
lea ecx, [eax + 0x68]
push ecx
push 0
push 0
push 0
push dword [esi]
push dword [eax + 8]
call dword [edx + 0x2cc]
add esp, 0x18
add eax, 4
cmp eax, 4
ja 0x10049c71
mov eax, dword [eax*4 + 0x3c79c9c]
add eax, dword [esp + 0x54]
jmp eax
xor ecx, ecx
dec eax
mov dword [edx + 4], eax
or eax, ecx
mov ecx, esi
jne 0x100488b4
mov eax, dword [0x3ca7000]
push 4
push 0x18
push edx
push 0x3ca6800
call dword [eax + 0x10]
mov edx, dword [esp + 0x1c]
mov ecx, esi
add esp, 0x10
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x40]
mov eax, edx
and al, 7
cmp al, 3
je 0x10048972
mov eax, edx
and eax, 7
cmp eax, 4
jne 0x1004898a
mov dword [esp + 8], ecx
mov ecx, 0x3c9f6a7
mov edx, 0xd
call fcn.100091f0
mov edi, eax
test eax, eax
mov esi, 1
mov ecx, 0x3c9f6b4
mov edx, 0xb
cmove edi, esi
call fcn.100091f0
mov edx, dword [esp + 0x38]
movzx ecx, byte [esp + 0x10]
test eax, eax
cmove eax, esi
shl edx, 8
or ecx, edx
mov edx, dword [esp + 0x2c]
cmp edx, edi
jne 0x10048cc7
cmp ecx, eax
jne 0x10048cc7
mov ecx, dword [esp + 0x34]
lea edi, [esp + 0x460]
mov byte [esp + 0x1f34], 1
mov dword [esp + 0x1f30], 0
test ecx, ecx
je 0x10049412
mov esi, ecx
call fcn.10004080
mov eax, dword [0x3ca7000]
push 4
push 8
push esi
push 0x3ca6800
call dword [eax + 0x10]
add esp, 0x10
jmp 0x10049412
mov byte [esp + 0x1f34], 1
mov dword [esp + 0x1f30], 0
jmp 0x10049412
mov eax, dword [esp + 0x30]
mov dword [esp + 0x460], edx
lea edi, [esp + 0x478]
lea esi, [esp + 0x1eb8]
mov dword [esp + 0x464], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x468], eax
mov eax, dword [esp + 0x10]
mov byte [esp + 0x46c], al
mov eax, dword [esp + 0x38]
mov word [esp + 0x46d], ax
shr eax, 0x10
mov byte [esp + 0x46f], al
mov eax, dword [esp + 0x34]
mov dword [esp + 0x470], ecx
mov ecx, 0x1e
mov dword [esp + 0x474], eax
lea eax, [esp + 0x4f4]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x4f0], 0
push 0xdc
lea ecx, [esp + 0x294]
push ecx
push eax
call 0x1006d650
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0xc]
movzx ecx, word [esp + 0x90]
mov dword [esp + 0x5d0], eax
mov dword [esp + 0x5d4], esi
mov dword [esp + 0x5d8], edx
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x5dc], esi
mov word [esp + 0x5e0], 0
mov dword [esp + 0x5e2], edx
mov word [esp + 0x5e6], cx
jmp 0x10048a81
movzx ecx, byte [esp + 0x1f34]
cmp cl, 1
jne 0x10048c00
lea edx, [esp + 0x460]
lea eax, [esp + 0xa4]
lea ecx, [esp + 0x1f30]
push eax
call fcn.1005d910
add esp, 4
xor edx, edx
mov eax, 0xfffffff9
lea ebx, [0x3ca4078]
lea esi, [0x3ca4077]
mov dword [esp + 0x10], 0
nop word [eax + eax]
movzx ecx, byte [esi]
mov esi, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10048ae5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1004a711
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 0x10048b06
shld dword [esp + 0x10], edx, 4
inc eax
test esi, esi
mov edx, edi
jne 0x10048ac0
mov eax, dword [esp + 0x1f30]
test eax, eax
je 0x10048a70
movsd xmm0, qword [esp + 0x1f34]
mov esi, dword [esp + 0x1f3c]
mov dword [esp + 0x3738], eax
mov eax, dword [0x3ca7000]
movsd qword [esp + 0x373c], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0xd8], xmm0
movaps xmmword [esp + 0x10], xmm0
mov dword [esp + 0xdc], esi
push 4
push 8
push 0x3ca6800
lea ecx, [esp + 0x1c0]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x1b4], 0
je 0x10048b84
lea ecx, [esp + 0xd8]
call fcn.10004080
xor eax, eax
jmp 0x10048b9a
movdqa xmm0, xmmword [esp + 0x10]
mov eax, dword [esp + 0x1b8]
movd ecx, xmm0
mov dword [eax], ecx
mov dword [eax + 4], esi
movq xmm0, qword [esp + 0x3738]
movd edx, xmm0
pextrw ecx, xmm0, 2
movq qword [esp + 0x290], xmm0
test edx, edx
je 0x10048a78
movzx ebx, byte [esp + 0x297]
movzx esi, word [esp + 0x295]
xor edi, 0x94
mov byte [esp + 0x1f37], bl
mov word [esp + 0x1f35], si
mov dword [esp + 0x1f38], edi
mov dword [esp + 0x1f3c], eax
mov dword [esp + 0x1f30], edx
mov byte [esp + 0x1f34], cl
jmp 0x10048c13
mov byte [esp + 0x1f34], 0
mov dword [esp + 0x1f30], 0
mov esi, dword [esp + 0x5d0]
mov ebx, dword [ebp + 0x14]
lea edi, [esp + 0x460]
dec dword [esi]
jne 0x10048c53
inc dword [esi + 4]
lea ecx, [esi + 8]
call fcn.1002cfc0
mov eax, dword [esi + 4]
dec eax
mov dword [esi + 4], eax
or eax, dword [esi]
jne 0x10048c53
mov eax, dword [0x3ca7000]
push 8
push 0x30
push esi
push 0x3ca6800
call dword [eax + 0x10]
add esp, 0x10
mov esi, dword [esp + 0x5d4]
dec dword [esi]
jne 0x10048c89
inc dword [esi + 4]
lea ecx, [esi + 8]
call fcn.1002cfc0
mov eax, dword [esi + 4]
dec eax
mov dword [esi + 4], eax
or eax, dword [esi]
jne 0x10048c89
mov eax, dword [0x3ca7000]
push 8
push 0x30
push esi
push 0x3ca6800
call dword [eax + 0x10]
add esp, 0x10
mov esi, dword [esp + 0x5d8]
dec dword [esi]
jne 0x10049267
mov eax, dword [esi + 4]
inc eax
mov dword [esi + 4], eax
cmp byte [esi + 0x15], 0
je 0x10049248
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
push dword [esi + 0xc]
push dword [eax + 8]
call dword [ecx + 0x2d8]
add esp, 8
mov ecx, dword [esi]
mov eax, dword [esi + 4]
jmp 0x1004924a
movd xmm1, edx
movd xmm0, ecx
xor esi, esi
lea edx, [0x3ca4077]
lea ebx, [0x3ca4078]
mov eax, 0xfffffff9
mov dword [esp + 0x10], 0
punpckldq xmm1, xmm0
nop
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10048d15
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1004a711
add cl, 0xa9
mov ch, cl
mov ebx, esi
movzx edi, ch
shl ebx, 4
or edi, ebx
lea ebx, [edx + 1]
test eax, eax
cmove ebx, edx
je 0x10048d36
shld dword [esp + 0x10], esi, 4
inc eax
test edx, edx
mov esi, edi
jne 0x10048cf0
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x34]
mov eax, dword [0x3ca7000]
xor edi, 0x8f
movdqa xmmword [esp + 0x10], xmm1
mov dword [esp + 0x1f30], esi
mov dword [esp + 0x1f34], ebx
push 4
push 8
push 0x3ca6800
lea ecx, [esp + 0x46c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x460], 0
je 0x10049210
lea ecx, [esp + 0x1f30]
call fcn.10004080
xor eax, eax
jmp 0x1004921c
mov edi, dword [esp + 0x1f34]
lea esi, [esp + 0x460]
mov ecx, 0x11
lea edx, [0x3ca51bc]
mov eax, 0xfffffff9
mov dword [esp + 0x10], edi
rep movsd dword es:[edi], dword [esi]
lea ecx, [0x3ca51bb]
nop
movzx ebx, byte [ecx]
mov ecx, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x10048dde
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1004a711
lea edx, [ecx + 1]
test eax, eax
cmove edx, ecx
je 0x10048ded
inc eax
test ecx, ecx
jne 0x10048dc0
mov ebx, dword [esp + 0x10]
cmp dword [ebx + 8], 0x7fffffff
jae 0x1004a806
mov eax, 0xffffe800
lea ecx, [esp + 0x460]
nop word [eax + eax]
mov dword [esp + eax + 0x1c60], 0
mov dword [esp + eax + 0x1c64], 0x3ca5270
mov dword [esp + eax + 0x1c6c], 0
mov dword [esp + eax + 0x1c68], 0
mov dword [esp + eax + 0x1c74], 0
mov dword [esp + eax + 0x1c70], 0
add eax, 0x18
jne 0x10048e10
lea esi, [esp + 0x3738]
push 0x1800
push ecx
push esi
call 0x1006d650
add esp, 0xc
lea eax, [esp + 0x1f34]
push 0x1800
push esi
push eax
call 0x1006d650
add esp, 0xc
mov esi, 1
lea eax, [esp + 0x56c]
lock xadd dword [0x3ca700c], esi
push 0x1804
lea edi, [esp + 0x1f34]
push edi
push eax
call 0x1006d650
add esp, 0xc
mov eax, dword [0x3ca7000]
pxor xmm0, xmm0
mov dword [esp + 0x1d94], 0
mov dword [esp + 0x1d90], 0
mov dword [esp + 0x1d9c], 0
mov dword [esp + 0x1d98], 0
movdqu xmmword [esp + 0x468], xmm0
movdqu xmmword [esp + 0x478], xmm0
movdqu xmmword [esp + 0x488], xmm0
movdqu xmmword [esp + 0x498], xmm0
movdqu xmmword [esp + 0x4a8], xmm0
movdqu xmmword [esp + 0x4b8], xmm0
movdqu xmmword [esp + 0x4c8], xmm0
movdqu xmmword [esp + 0x4d8], xmm0
movdqu xmmword [esp + 0x4e8], xmm0
movdqu xmmword [esp + 0x4f8], xmm0
movdqu xmmword [esp + 0x508], xmm0
movdqu xmmword [esp + 0x518], xmm0
movdqu xmmword [esp + 0x528], xmm0
movdqu xmmword [esp + 0x538], xmm0
movdqu xmmword [esp + 0x548], xmm0
movdqu xmmword [esp + 0x558], xmm0
movdqu xmmword [esp + 0x1da4], xmm0
movdqu xmmword [esp + 0x1db4], xmm0
movdqu xmmword [esp + 0x1dc4], xmm0
movdqu xmmword [esp + 0x1dd4], xmm0
movdqu xmmword [esp + 0x1de4], xmm0
movdqu xmmword [esp + 0x1df4], xmm0
movdqu xmmword [esp + 0x1e04], xmm0
movdqu xmmword [esp + 0x1e14], xmm0
movdqu xmmword [esp + 0x1e24], xmm0
mov dword [esp + 0x1e34], 0
mov dword [esp + 0x1e38], 0
movdqu xmmword [esp + 0x1e3c], xmm0
movdqu xmmword [esp + 0x1e4c], xmm0
movdqu xmmword [esp + 0x1e5c], xmm0
movdqu xmmword [esp + 0x1e6c], xmm0
movdqu xmmword [esp + 0x1e7c], xmm0
movdqu xmmword [esp + 0x1e8c], xmm0
mov dword [esp + 0x1e9c], 0
mov dword [esp + 0x1ea0], 0
push 8
push 0x1a50
push 0x3ca6800
push edi
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x1f30], 0
mov dword [esp + 0x460], 1
mov dword [esp + 0x464], 0
mov dword [esp + 0x568], 0
mov dword [esp + 0x1d70], 0
mov dword [esp + 0x1d78], 0
mov dword [esp + 0x1d7c], 4
mov dword [esp + 0x1d80], 0
mov dword [esp + 0x1d84], 0
mov dword [esp + 0x1d8c], 0
mov dword [esp + 0x1d88], 1
mov dword [esp + 0x1da0], 0
mov dword [esp + 0x1ea4], 0
mov dword [esp + 0x1ea8], esi
mov dword [esp + 0x1eac], ebx
je 0x1004977b
movzx eax, byte [esp + 0x1f31]
lea ecx, [esp + 0x568]
mov dword [esp + 8], eax
call fcn.1002d340
mov edi, 0xffffff00
jmp 0x10049105
add edi, 4
je 0x10049141
mov esi, dword [esp + edi + 0x1ea4]
test esi, esi
je 0x10049100
dec dword [esi]
jne 0x10049100
inc dword [esi + 4]
lea ecx, [esi + 8]
call fcn.1002cfc0
mov eax, dword [esi + 4]
dec eax
mov dword [esi + 4], eax
or eax, dword [esi]
jne 0x10049100
mov eax, dword [0x3ca7000]
push 8
push 0x30
push esi
push 0x3ca6800
call dword [eax + 0x10]
add esp, 0x10
jmp 0x10049100
lea ecx, [esp + 0x1d7c]
call fcn.10028840
mov ecx, ebx
call fcn.100295e0
xor edi, edi
lea esi, [0x3ca0f15]
lea edx, [0x3ca0f16]
mov eax, 0xfffffff9
mov dword [esp + 0x10], 0
nop
movzx ebx, byte [esi]
mov esi, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x10049195
or bl, 0x20
mov edx, ebx
add dl, 0x9f
cmp dl, 6
jae 0x1004a711
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 0x100491b6
shld dword [esp + 0x10], edi, 4
inc eax
test esi, esi
mov edi, ebx
jne 0x10049170
mov eax, dword [esp + 8]
mov edx, 0xa
xor ebx, 0xd4
mov ecx, dword [eax*4 + 0x3c9ef50]
mov edi, dword [eax*4 + 0x3c9ef70]
mov dword [esp + 0x40], ecx
mov ecx, 0x3c9edeb
call fcn.100091f0
mov edx, dword [esp + 0x40]
test eax, eax
mov esi, 1
mov ecx, edi
cmove eax, esi
mov dword [esp + 0x10], eax
call fcn.100091f0
test eax, eax
movd xmm1, ebx
cmove eax, esi
movd xmm0, eax
punpckldq xmm0, xmm1
jmp 0x100497e2
mov eax, dword [esp + 0x464]
mov dword [eax], esi
mov dword [eax + 4], ebx
movdqa xmm0, xmmword [esp + 0x10]
mov ebx, dword [ebp + 0x14]
movq qword [esp + 0x1f30], xmm0
mov dword [esp + 0x1f38], edi
mov dword [esp + 0x1f3c], eax
lea edi, [esp + 0x460]
jmp 0x10049412
xor ecx, ecx
dec eax
mov dword [esi + 4], eax
or eax, ecx
jne 0x10049267
mov eax, dword [0x3ca7000]
push 4
push 0x18
push esi
push 0x3ca6800
call dword [eax + 0x10]
add esp, 0x10
mov ecx, dword [esp + 0x4f0]
test ecx, ecx
je 0x10049406
call fcn.1002db30
cmp dword [esp + 0x4fc], 0
je 0x10049335
mov edx, 4
mov ecx, 0x14
push dword [esp + 0x504]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x100492c0
mov ecx, dword [0x3ca7000]
push edx
push eax
push dword [esp + 0x504]
push 0x3ca6800
call dword [ecx + 0x10]
add esp, 0x10
mov edi, dword [esp + 0x50c]
mov ebx, dword [esp + 0x510]
mov eax, dword [esp + 0x508]
cmp edi, ebx
mov dword [esp + 0x10], eax
cmovae edi, ebx
test edi, edi
je 0x100492fd
mov esi, dword [esp + 0x10]
nop word cs:[eax + eax]
mov ecx, esi
call fcn.100273e0
add esi, 0x10
dec edi
jne 0x100492f0
mov edx, 4
mov ecx, 0x10
push ebx
call fcn.100078c0
add esp, 4
mov ebx, dword [ebp + 0x14]
test eax, eax
lea edi, [esp + 0x460]
je 0x10049335
mov ecx, dword [0x3ca7000]
push edx
push eax
push dword [esp + 0x18]
push 0x3ca6800
call dword [ecx + 0x10]
add esp, 0x10
cmp byte [esp + 0x59e], 2
je 0x10049382
lea ecx, [esp + 0x57c]
call fcn.10028a80
mov edx, 1
mov ecx, 1
push dword [esp + 0x590]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x10049382
mov ecx, dword [0x3ca7000]
push edx
push eax
push dword [esp + 0x590]
push 0x3ca6800
call dword [ecx + 0x10]
add esp, 0x10
cmp byte [esp + 0x5cd], 2
je 0x100493fa
mov edx, 1
mov ecx, 1
push dword [esp + 0x5bc]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x100493c3
mov ecx, dword [0x3ca7000]
push edx
push eax
push dword [esp + 0x5bc]
push 0x3ca6800
call dword [ecx + 0x10]
add esp, 0x10
mov edx, 4
mov ecx, 0x2c
push dword [esp + 0x5c8]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x100493fa
mov ecx, dword [0x3ca7000]
push edx
push eax
push dword [esp + 0x5c8]
push 0x3ca6800
call dword [ecx + 0x10]
add esp, 0x10
mov ecx, dword [esp + 0x4f4]
call fcn.1002d9e0
mov ecx, dword [esp + 0x5dc]
call fcn.1002d9e0
mov edx, 1
mov ecx, 1
push dword [esp + 0xb0]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x10049449
mov ecx, dword [0x3ca7000]
push edx
push eax
push dword [esp + 0xb0]
push 0x3ca6800
call dword [ecx + 0x10]
add esp, 0x10
mov ecx, dword [esp + 0x58]
call fcn.1002d9e0
cmp byte [esp + 0x60], 0
je 0x1004957d
xor eax, eax
cmp byte [ebx + 0x11], 2
cmovne eax, ebx
je 0x1004957d
cmp dword [esp + 0x1f30], 0
je 0x100494ea
lea ecx, [esp + 0x1f30]
mov dword [esp + 0x1b4], eax
lea eax, [esp + 0x3738]
mov dword [esp + 0x460], 0x3ca4104
mov dword [esp + 0x464], 2
mov dword [esp + 0xd8], ecx
lea ecx, [esp + 0xd8]
mov dword [esp + 0x468], eax
mov dword [esp + 0x46c], 1
mov dword [esp + 0x470], 0
mov dword [esp + 0x3738], ecx
lea ecx, [esp + 0x1b4]
mov dword [esp + 0x373c], 0x3c32f10
jmp 0x1004956f
movzx ecx, byte [esp + 0x1f34]
mov dword [esp + 0xd8], eax
lea eax, [esp + 0x1b4]
mov dword [esp + 0x460], 0x3ca40e0
mov dword [esp + 0x464], 2
mov dword [esp + 0x468], eax
mov dword [esp + 0x46c], 1
mov dword [esp + 0x470], 0
mov edx, dword [ecx*4 + 0x3c9f810]
mov ecx, dword [ecx*4 + 0x3c9f828]
mov dword [esp + 0x3738], ecx
lea ecx, [esp + 0x3738]
mov dword [esp + 0x373c], edx
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x1b8], 0x3c47760
lea ecx, [esp + 0xd8]
mov edx, 0x3c9db74
push edi
call fcn.10005570
add esp, 4
movq xmm0, qword [esp + 0x1f30]
movq xmm1, qword [esp + 0x1f38]
movq qword [esp + 0xd8], xmm0
movq qword [esp + 0xe0], xmm1
mov edi, dword [esp + 0xd8]
test edi, edi
jne 0x100471b9
cmp byte [ebx + 0x28], 2
jb 0x10049751
movzx eax, byte [esp + 0xdc]
cmp byte [ebx + 0x2a], 0
mov esi, dword [eax*4 + 0x3c9f810]
mov edi, dword [eax*4 + 0x3c9f828]
je 0x100495dc
mov byte [ebx + 0x2a], 0
jmp 0x10049636
lea eax, [esp + 0x460]
mov dword [esp + 0x460], 0x3ca36fc
mov dword [esp + 0x464], 1
mov dword [esp + 0x468], 0x3ca6800
mov dword [esp + 0x46c], 0
mov dword [esp + 0x1f30], ebx
mov dword [esp + 0x470], 0
lea ecx, [esp + 0x1f30]
mov edx, 0x3ca34cc
push eax
call fcn.10005570
add esp, 4
lea eax, [esp + 0x1f30]
mov dword [esp + 0x3738], 0x3ca3710
mov dword [esp + 0x373c], 3
mov dword [esp + 0x1f30], 0x3ca3fe0
mov dword [esp + 0x1f34], 0xb
mov dword [esp + 0x460], edi
mov dword [esp + 0x464], esi
mov dword [esp + 0x290], ebx
mov dword [esp + 0x1f44], 0x7fffffff
mov dword [esp + 0x1f40], 0xefffffff
mov dword [esp + 0x1f3c], 0xffffffdf
mov dword [esp + 0x1f38], 0
mov byte [esp + 0x1f48], 0
mov dword [esp + 0x474], 0x7fffffff
mov dword [esp + 0x470], 0xefffffff
mov dword [esp + 0x46c], 0xffffffdf
mov dword [esp + 0x468], 0
mov byte [esp + 0x478], 0
lea ecx, [esp + 0x290]
mov edx, 0x3ca34cc
mov dword [esp + 0x1b4], eax
lea eax, [esp + 0x460]
mov dword [esp + 0x1b8], 0x3c37930
mov dword [esp + 0x1bc], eax
lea eax, [esp + 0x1b4]
mov dword [esp + 0x1c0], 0x3c37930
mov dword [esp + 0x3740], eax
lea eax, [esp + 0x3738]
mov dword [esp + 0x3744], 2
mov dword [esp + 0x3748], 0
push eax
call fcn.10005570
add esp, 4
movsd xmm0, qword [esp + 0xd8]
mov eax, dword [esp + 0xa0]
movsd xmm1, qword [esp + 0xe0]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [esp + 0x1f34]
push 0x1a50
lea eax, [esp + 0x464]
push eax
push esi
call 0x1006d650
add esp, 0xc
lea ecx, [0x3ca0f15]
lea edx, [0x3ca0f16]
mov eax, 0xfffffff9
movzx ebx, byte [ecx]
mov ecx, edx
mov edx, ebx
add dl, 0xd0
cmp dl, 0xa
jb 0x100497c7
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x1004a711
lea edx, [ecx + 1]
test eax, eax
cmove edx, ecx
je 0x100497d6
inc eax
test ecx, ecx
jne 0x100497a9
movd xmm0, esi
mov dword [esp + 0x10], 0
xor esi, esi
lea edx, [0x3ca45a4]
lea ebx, [0x3ca45a5]
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 0x10049825
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1004a711
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 0x10049844
shld edi, esi, 4
inc eax
test edx, edx
mov esi, ecx
jne 0x10049800
mov eax, dword [esp + 0x10]
test eax, eax
je 0x100498f7
mov dword [esp + 0x460], eax
mov eax, dword [0x3ca7000]
mov esi, ecx
movq qword [esp + 0x464], xmm0
pshufd xmm0, xmm0, 0x55
movd dword [esp + 0x3738], xmm0
movdqa xmmword [esp + 0x10], xmm0
mov dword [esp + 0x373c], 0
push 4
push 8
push 0x3ca6800
lea ecx, [esp + 0x1f3c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x1f30], 0
je 0x100498b7
lea ecx, [esp + 0x3738]
call fcn.10004080
xor ebx, ebx
jmp 0x100498d1
movdqa xmm0, xmmword [esp + 0x10]
mov ebx, dword [esp + 0x1f34]
movd eax, xmm0
mov dword [ebx], eax
mov dword [ebx + 4], 0
movq xmm0, qword [esp + 0x460]
mov edx, dword [esp + 0xc]
movd eax, xmm0
test eax, eax
je 0x100498f2
xor esi, 0x46
mov dword [esp + 8], esi
jmp 0x1004a28d
pshufd xmm0, xmm0, 0x55
movd edx, xmm0
lea ecx, [esp + 0x460]
mov dword [esp + 0x40], edx
call fcn.1002e5f0
xor esi, esi
lea edx, [0x3ca45a4]
lea ebx, [0x3ca45a5]
mov eax, 0xfffffff9
xor edi, edi
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10049945
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1004a711
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 0x10049964
shld edi, esi, 4
inc eax
test edx, edx
mov esi, ecx
jne 0x10049920
mov eax, dword [esp + 0x460]
test eax, eax
je 0x100499d7
movsd xmm0, qword [esp + 0x464]
mov edi, dword [esp + 0x46c]
mov dword [esp + 0x1f30], eax
mov eax, dword [0x3ca7000]
mov esi, ecx
lea ecx, [esp + 0x3738]
movsd qword [esp + 0x1f34], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x74], xmm0
movaps xmmword [esp + 0x10], xmm0
mov dword [esp + 0x78], edi
push 4
push 8
push 0x3ca6800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x3738], 0
je 0x100499f9
lea ecx, [esp + 0x74]
call fcn.10004080
xor ebx, ebx
jmp 0x10049a0f
movd xmm0, dword [esp + 0x464]
mov esi, dword [esp + 0x468]
mov ebx, dword [esp + 0x46c]
mov edi, dword [esp + 0x40]
pshufd xmm0, xmm0, 0x50
jmp 0x10049a2b
movdqa xmm0, xmmword [esp + 0x10]
mov ebx, dword [esp + 0x373c]
movd eax, xmm0
mov dword [ebx], eax
mov dword [ebx + 4], edi
movq xmm0, qword [esp + 0x1f30]
mov edi, dword [esp + 0x40]
xor esi, 0x47
movd eax, xmm0
test eax, eax
jne 0x1004a245
pshufd xmm0, xmm0, 0x55
lea ecx, [esp + 0x460]
mov edx, edi
movd dword [esp + 0x7c], xmm0
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], ebx
call fcn.1002dc70
xor esi, esi
lea edx, [0x3ca45a4]
lea ebx, [0x3ca45a5]
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 0x10049a95
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1004a711
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 0x10049ab4
shld edi, esi, 4
inc eax
test edx, edx
mov esi, ecx
jne 0x10049a70
mov eax, dword [esp + 0x460]
test eax, eax
je 0x10049b27
movsd xmm0, qword [esp + 0x464]
mov edi, dword [esp + 0x46c]
mov dword [esp + 0x1f30], eax
mov eax, dword [0x3ca7000]
mov esi, ecx
lea ecx, [esp + 0x3738]
movsd qword [esp + 0x1f34], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x74], xmm0
movaps xmmword [esp + 0x10], xmm0
mov dword [esp + 0x78], edi
push 4
push 8
push 0x3ca6800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x3738], 0
je 0x10049b34
lea ecx, [esp + 0x74]
call fcn.10004080
xor ebx, ebx
jmp 0x10049b4a
mov eax, dword [esp + 0x464]
mov dword [esp + 0x3c], eax
jmp 0x10049b74
movdqa xmm0, xmmword [esp + 0x10]
mov ebx, dword [esp + 0x373c]
movd eax, xmm0
mov dword [ebx], eax
mov dword [ebx + 4], edi
movq xmm0, qword [esp + 0x1f30]
movd eax, xmm0
test eax, eax
je 0x10049b69
movdqa xmmword [esp + 0x10], xmm0
xor esi, 0x49
jmp 0x1004a1ef
pshufd xmm0, xmm0, 0x55
movd dword [esp + 0x3c], xmm0
mov edx, dword [esp + 0x40]
lea ecx, [esp + 0x460]
call fcn.1002dc70
xor esi, esi
lea edx, [0x3ca45a4]
lea ebx, [0x3ca45a5]
mov eax, 0xfffffff9
xor edi, edi
nop dword [eax]
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10049bc5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1004a711
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 0x10049be4
shld edi, esi, 4
inc eax
test edx, edx
mov esi, ecx
jne 0x10049ba0
mov eax, dword [esp + 0x460]
test eax, eax
je 0x10049c5e
movsd xmm0, qword [esp + 0x464]
mov edi, dword [esp + 0x46c]
mov dword [esp + 0x1f30], eax
mov eax, dword [0x3ca7000]
mov esi, ecx
lea ecx, [esp + 0x3738]
movsd qword [esp + 0x1f34], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x74], xmm0
movaps xmmword [esp + 0x10], xmm0
mov dword [esp + 0x78], edi
push 4
push 8
push 0x3ca6800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x3738], 0
je 0x10049def
lea ecx, [esp + 0x74]
call fcn.10004080
xor ebx, ebx
jmp 0x10049e05
movd xmm0, dword [esp + 0x464]
pshufd xmm0, xmm0, 0x51
jmp 0x10049e22
mov al, 4
jmp 0x10049c8b
mov dword [esp + 0x10], 0
mov byte [esi + 8], al
xor edi, edi
lea ecx, [0x3c9d869]
lea esi, [0x3c9d86a]
mov eax, 0xfffffff9
xor ebx, ebx
nop dword [eax + eax]
movzx edx, byte [ecx]
mov ecx, esi
mov dh, dl
add dh, 0xd0
cmp dh, 0xa
jb 0x10049cd5
or dl, 0x20
mov dh, dl
add dh, 0x9f
cmp dh, 6
jae 0x1004a711
add dl, 0xa9
mov dh, dl
mov esi, edi
movzx edx, dh
shl esi, 4
or edx, esi
lea esi, [ecx + 1]
test eax, eax
cmove esi, ecx
je 0x10049cf4
shld ebx, edi, 4
inc eax
test ecx, ecx
mov edi, edx
jne 0x10049cb0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], edx
cmp al, 0xc
jne 0x10049d24
movzx eax, word [esp + 0x460]
mov dword [esp + 0x10], 0
cmp eax, 0x5a4d
je 0x10049d31
mov dword [esp + 0x40], 0
jmp 0x10048447
xor dword [esp + 0x30], 0x35
movzx eax, al
jmp 0x1004840a
mov eax, dword [esp + 0x49c]
xor ecx, ecx
mov edx, eax
add edx, 0x1a
setb cl
cmp dword [esp + 0x3c], edx
sbb dword [esp + 0x40], ecx
mov dword [esp + 0x40], 0
jb 0x10048447
mov edi, dword [esp + 0x34]
pxor xmm0, xmm0
mov dword [esp + 0x1f44], 0
mov dword [esp + 0x1f40], 0
mov word [esp + 0x1f48], 0
movdqa xmmword [esp + 0x1f30], xmm0
mov ecx, dword [edi + 4]
mov esi, dword [ecx]
lea edx, [ecx + 0x68]
push edx
push 0
push 0
push eax
push dword [edi]
push dword [ecx + 8]
call dword [esi + 0x2cc]
add esp, 0x18
add eax, 4
cmp eax, 4
ja 0x1004a5a4
mov ecx, dword [esp + 0x54]
add ecx, dword [eax*4 + 0x3c79cb0]
jmp ecx
movdqa xmm0, xmmword [esp + 0x10]
mov ebx, dword [esp + 0x373c]
movd eax, xmm0
mov dword [ebx], eax
mov dword [ebx + 4], edi
movq xmm0, qword [esp + 0x1f30]
movd eax, xmm0
test eax, eax
je 0x10049e22
mov eax, dword [esp + 0x3c]
xor esi, 0x4a
jmp 0x1004a1b8
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x84]
pshufd xmm0, xmm0, 0x55
movd dword [esp + 0x5c], xmm0
sub esp, 8
lea ecx, [esp + 0x468]
movd dword [esp + 4], xmm0
mov dword [esp], eax
call fcn.10031c90
add esp, 8
xor esi, esi
lea edx, [0x3ca45a4]
lea ebx, [0x3ca45a5]
mov eax, 0xfffffff9
xor edi, edi
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10049e8d
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1004a711
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 0x10049eac
shld edi, esi, 4
inc eax
test edx, edx
mov esi, ecx
jne 0x10049e68
cmp dword [esp + 0x460], 0
je 0x10049f1e
mov esi, dword [esp + 0x46c]
movq xmm0, qword [esp + 0x464]
mov edi, dword [esp + 0x470]
mov eax, dword [0x3ca7000]
xor ecx, 0x4b
mov dword [esp + 8], ecx
mov dword [esp + 0x3738], esi
movdqa xmmword [esp + 0x10], xmm0
mov dword [esp + 0x373c], edi
push 4
push 8
push 0x3ca6800
lea ecx, [esp + 0x1f3c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x1f30], 0
je 0x10049f72
lea ecx, [esp + 0x3738]
call fcn.10004080
xor ebx, ebx
jmp 0x10049f80
mov edi, dword [esp + 0x470]
mov eax, dword [edi + 0x2c]
cmp eax, dword [esp + 0x84]
jne 0x1004a82c
mov eax, dword [esp + 0x468]
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x46c]
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x34], eax
mov eax, dword [edi + 0x18]
cmp dword [ecx], 0
mov dword [esp + 0x54], eax
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
je 0x10049f8d
xor eax, eax
mov byte [esp + 0x464], 6
jmp 0x10049f9e
mov eax, dword [esp + 0x1f34]
mov ebx, eax
mov dword [eax], esi
mov dword [eax + 4], edi
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x5c]
jmp 0x1004a16f
mov dword [eax + 8], 0xffffffff
add eax, 0xc
mov dword [esp + 0x464], ecx
lea ecx, [esp + 0x460]
mov dword [esp + 0x460], eax
call fcn.1005d8d0
mov dword [esp + 0x2c], edx
lea ecx, [esp + 0x460]
mov edx, eax
push 0
push 0
push 0
push 2
call fcn.1000ac60
add esp, 0x10
mov ecx, 0x3ca45a3
mov edx, 0x4f
call fcn.10007f70
cmp byte [esp + 0x460], 0
mov dword [esp + 0x30], ebx
je 0x1004a01f
movzx ecx, byte [esp + 0x461]
mov dword [esp + 8], eax
call fcn.100080a0
test eax, eax
je 0x1004a033
mov ecx, dword [esp + 0x2c]
movd xmm1, eax
movd xmm0, edx
xor ebx, ebx
punpckldq xmm1, xmm0
movdqa xmmword [esp + 0x10], xmm1
inc dword [ecx]
jmp 0x1004a153
mov dword [esp + 0x38], edi
mov esi, dword [esp + 0x468]
mov edi, dword [esp + 0x46c]
jmp 0x1004a03d
mov esi, dword [esp + 8]
mov dword [esp + 0x38], edi
xor edi, edi
lea ecx, [esp + 0xc8]
mov edx, esi
push 0
push 0x1000
push edi
call fcn.10003310
add esp, 0xc
cmp dword [esp + 0xc8], 0
je 0x1004a845
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0xd4]
mov eax, dword [esp + 0xd0]
mov edx, dword [esp + 0x54]
inc dword [ecx]
mov ecx, dword [esp + 0xc]
inc dword [ecx]
mov dword [esp + 0x478], ecx
mov dword [esp + 0x464], 0
mov dword [esp + 0x460], 0
mov dword [esp + 0x46c], edi
mov dword [esp + 0x468], esi
lea esi, [esp + 0x1f30]
lea edi, [esp + 0x460]
mov dword [esp + 0x474], 0
mov dword [esp + 0x470], 0
mov byte [esp + 0x47c], 1
mov ecx, esi
push edi
push ebx
push eax
lea eax, [esp + 0x88]
push eax
push dword [esp + 0x20]
call fcn.10035fa0
add esp, 0x14
mov ecx, 0x3ca45a3
mov edx, 0x58
call fcn.10007f70
lea ecx, [esp + 0x3738]
mov edx, esi
push eax
call fcn.1005d820
add esp, 4
mov eax, dword [esp + 0x3738]
test eax, eax
je 0x1004a522
movd xmm0, dword [esp + 0x373c]
mov ecx, dword [esp + 0x3740]
mov ebx, dword [esp + 0x3744]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x38]
movd xmm1, eax
punpckldq xmm1, xmm0
mov dword [esp + 8], ecx
movdqa xmmword [esp + 0x10], xmm1
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
push edi
call fcn.100373a0
add esp, 4
mov ecx, edi
call fcn.1002d9a0
mov eax, dword [esp + 0x3c]
dec dword [esi]
mov edi, esi
mov esi, dword [esp + 8]
movdqa xmm0, xmmword [esp + 0x10]
jne 0x1004a1b8
inc dword [edi + 4]
lea ecx, [edi + 8]
call fcn.1002cfc0
mov eax, dword [edi + 4]
dec eax
mov dword [edi + 4], eax
or eax, dword [edi]
jne 0x1004a1aa
mov eax, dword [0x3ca7000]
push 8
push 0x30
push edi
push 0x3ca6800
call dword [eax + 0x10]
add esp, 0x10
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x3c]
movdqa xmm0, xmmword [esp + 0x10]
dec dword [eax]
movdqa xmmword [esp + 0x10], xmm0
jne 0x1004a1ef
inc dword [eax + 4]
lea ecx, [eax + 8]
mov edi, eax
call fcn.1002cfc0
mov eax, dword [edi + 4]
dec eax
mov dword [edi + 4], eax
or eax, dword [edi]
jne 0x1004a1ef
mov eax, dword [0x3ca7000]
push 8
push 0x30
push edi
push 0x3ca6800
call dword [eax + 0x10]
add esp, 0x10
mov eax, dword [esp + 0x80]
inc dword [eax]
mov edi, dword [esp + 0x84]
mov ecx, edi
call fcn.1002d690
cmp dword [edi], 0
je 0x1004a217
mov edi, dword [esp + 0x40]
movdqa xmm0, xmmword [esp + 0x10]
jmp 0x1004a245
cmp dword [edi + 4], 0
movdqa xmm0, xmmword [esp + 0x10]
jne 0x1004a241
mov eax, dword [0x3ca7000]
push 8
push 0x1a50
push edi
push 0x3ca6800
call dword [eax + 0x10]
movdqa xmm0, xmmword [esp + 0x20]
add esp, 0x10
mov edi, dword [esp + 0x40]
mov ecx, edi
movdqa xmmword [esp + 0x10], xmm0
mov dword [esp + 8], esi
call fcn.1002d690
cmp dword [edi], 0
je 0x1004a261
mov edx, dword [esp + 0xc]
jmp 0x1004a287
cmp dword [edi + 4], 0
mov edx, dword [esp + 0xc]
jne 0x1004a287
mov eax, dword [0x3ca7000]
push 8
push 0x1a50
push edi
push 0x3ca6800
call dword [eax + 0x10]
mov edx, dword [esp + 0x1c]
add esp, 0x10
movdqa xmm0, xmmword [esp + 0x10]
dec dword [edx]
mov al, 1
mov dword [esp + 0x40], 3
mov dword [esp + 0x54], ebx
mov dword [esp + 0x2c], eax
jne 0x1004a2ea
mov eax, dword [edx + 4]
mov ecx, 0
movdqa xmmword [esp + 0x10], xmm0
inc eax
mov dword [edx + 4], eax
cmp byte [edx + 0x15], 0
je 0x1004a2de
mov eax, dword [edx + 0x10]
mov ecx, dword [eax]
push dword [edx + 0xc]
push dword [eax + 8]
call dword [ecx + 0x2d8]
movdqa xmm0, xmmword [esp + 0x18]
mov edx, dword [esp + 0x14]
add esp, 8
mov ecx, dword [edx]
mov eax, dword [edx + 4]
dec eax
mov dword [edx + 4], eax
or eax, ecx
je 0x1004a4fa
mov dword [esp + 0x30], 0
xor esi, esi
lea edx, [0x3c9d869]
lea ebx, [0x3c9d86a]
mov eax, 0xfffffff9
mov dword [esp + 0x10], 0
nop dword [eax]
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x1004a335
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x1004a711
add cl, 0xa9
mov ch, cl
mov ebx, esi
movzx edi, ch
shl ebx, 4
or edi, ebx
lea ebx, [edx + 1]
test eax, eax
cmove ebx, edx
je 0x1004a356
shld dword [esp + 0x10], esi, 4
inc eax
test edx, edx
mov esi, edi
jne 0x1004a310
cmp byte [esp + 0x2c], 0
movdqa xmmword [esp + 0x10], xmm0
je 0x1004a3bf
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x1f30], esi
mov dword [esp + 0x1f34], eax
mov eax, dword [0x3ca7000]
push 4
push 8
push 0x3ca6800
lea ecx, [esp + 0x46c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x460], 0
mov ebx, dword [ebp + 0x14]
je 0x1004a49c
lea ecx, [esp + 0x1f30]
call fcn.10004080
mov dword [esp + 0x34], 0
jmp 0x1004a4b0
lea edi, [esp + 0x370]
lea esi, [esp + 0x3e8]
mov ecx, 0x1e
lea eax, [esp + 0x1b4]
rep movsd dword es:[edi], dword [esi]
push 0xdc
push eax
lea ebx, [esp + 0xe0]
push ebx
call 0x1006d650
add esp, 0xc
mov eax, dword [esp + 0xc2]
movdqa xmm1, xmmword [esp + 0x10]
lea edi, [esp + 0x1eb8]
lea esi, [esp + 0x370]
mov dword [esp + 0x94], eax
movzx eax, word [esp + 0xc6]
pshufd xmm0, xmm1, 0x55
movd dword [esp + 0x2c], xmm1
movd ecx, xmm0
shr ecx, 8
mov dword [esp + 0x38], ecx
mov ecx, 0x1e
mov word [esp + 0x98], ax
pextrw eax, xmm1, 2
mov dword [esp + 0x10], eax
rep movsd dword es:[edi], dword [esi]
push 0xdc
push ebx
lea eax, [esp + 0x298]
push eax
call 0x1006d650
add esp, 0xc
movzx edx, word [esp + 0x98]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x94]
mov ebx, dword [ebp + 0x14]
lea edi, [esp + 0x460]
mov word [esp + 0x90], dx
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0x8c], eax
jmp 0x10048810
mov eax, dword [esp + 0x464]
mov ecx, dword [esp + 0x54]
mov dword [eax], esi
mov dword [esp + 0x34], eax
mov dword [eax + 4], ecx
movdqa xmm1, xmmword [esp + 0x10]
mov edx, dword [esp + 0xc]
xor edi, 0x1e
mov dword [esp + 0x30], 0
mov dword [esp + 0x40], 4
pshufd xmm0, xmm1, 0x55
pextrw eax, xmm1, 2
movd dword [esp + 0x2c], xmm1
movd ecx, xmm0
mov dword [esp + 0x10], eax
shr ecx, 8
mov dword [esp + 0x38], ecx
mov ecx, edi
lea edi, [esp + 0x460]
jmp 0x10048810
mov eax, dword [0x3ca7000]
mov dword [esp + 0x30], 0
push 4
push 0x18
push edx
push 0x3ca6800
call dword [eax + 0x10]
movdqa xmm0, xmmword [esp + 0x20]
add esp, 0x10
jmp 0x1004a2f2
mov ecx, dword [esp + 0x373c]
call fcn.1002dbb0
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
inc dword [eax]
push esi
call fcn.100373a0
add esp, 4
mov ecx, esi
call fcn.1002d9a0
mov eax, dword [esp + 0x80]
inc dword [eax]
mov ecx, dword [esp + 0x84]
call fcn.1002daf0
mov ecx, dword [esp + 0x40]
call fcn.1002daf0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x40], 2
mov dword [esp + 0x30], 0
jmp 0x1004a2f2
mov ecx, 0x3c9db20
mov edx, 0x39
push 0x3c9db08
call fcn.100053c0
add esp, 4
ud2
mov dword [esp + 0x40], 0
mov al, 4
jmp 0x1004a5de
mov dword [esp + 0x10], 0
mov byte [edi + 8], al
xor edi, edi
lea ecx, [0x3c9d869]
lea ebx, [0x3c9d86a]
mov eax, 0xfffffff9
xor esi, esi
movzx edx, byte [ecx]
mov ecx, ebx
mov dh, dl
add dh, 0xd0
cmp dh, 0xa
jb 0x1004a623
or dl, 0x20
mov dh, dl
add dh, 0x9f
cmp dh, 6
jae 0x1004a711
add dl, 0xa9
mov dh, dl
mov ebx, edi
movzx edx, dh
shl ebx, 4
or edx, ebx
lea ebx, [ecx + 1]
test eax, eax
cmove ebx, ecx
je 0x1004a642
shld esi, edi, 4
inc eax
test ecx, ecx
mov edi, edx
jne 0x1004a5fe
mov eax, dword [esp + 0x10]
mov esi, edx
cmp al, 0xc
je 0x1004a669
mov ecx, dword [esp + 0x40]
movzx edx, al
call fcn.10008100
test eax, eax
mov dword [esp + 0x40], eax
je 0x1004a669
mov dword [esp + 0x10], edx
jmp 0x1004a705
cmp dword [esp + 0x1f30], 0x4550
mov ebx, dword [ebp + 0x14]
jne 0x1004a6f5
cmp word [esp + 0x1f44], 0
mov dword [esp + 0x10], 0
je 0x1004a6fd
movzx eax, word [esp + 0x1f48]
mov dword [esp + 0x40], 0
cmp eax, 0x20b
jne 0x1004a705
mov eax, dword [esp + 8]
mov ecx, 0x3c9d868
mov edx, 0x19
inc dword [eax]
call fcn.10007f70
mov edx, dword [esp + 0xc]
mov eax, 1
lea edi, [esp + 0x460]
test al, al
jne 0x100485a1
jmp 0x100487fc
mov dword [esp + 0x10], 0
mov dword [esp + 0x40], 0
xor esi, 0x45
mov dword [esp + 0x30], esi
jmp 0x10048447
mov ecx, 0x3ca51ac
mov edx, 0xe
push 0x3c9ed4c
call fcn.100053c0
add esp, 4
ud2
movzx ebx, byte [esp + 0x461]
mov edx, 1
mov ecx, 1
push 0
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1004a75f
mov ecx, dword [0x3ca7000]
push edx
push eax
push 1
push 0x3ca6800
call dword [ecx + 0x10]
add esp, 0x10
mov ecx, 0x3ca67d4
mov edx, 0x2b
mov byte [esp + 0x460], bl
push 0x3c9f77c
push 0x3c9f76c
lea eax, [esp + 0x468]
push eax
call fcn.10005c10
add esp, 0xc
ud2
lea ecx, [esp + 0x1f30]
lea eax, [esp + 0x3738]
mov dword [esp + 0x460], 0x3c9f7e8
mov dword [esp + 0x464], 1
mov dword [esp + 0x470], 0
mov edx, 0x3c9f7f0
mov dword [esp + 0x468], ecx
lea ecx, [esp + 0x460]
mov dword [esp + 0x1f30], eax
mov dword [esp + 0x1f34], 0x3c47760
mov dword [esp + 0x46c], 1
call fcn.10004990
ud2
mov edx, dword [ebp + 0xc]
push 0x3c9f7d0
push edx
push eax
call fcn.10006740
add esp, 0xc
ud2
mov ecx, 0x3ca5230
mov edx, 0x18
push 0x3ca5248
push 0x3ca67b4
lea eax, [esp + 0x1f38]
push eax
call fcn.10005c10
add esp, 0xc
ud2
mov ecx, 0x3ca100c
mov edx, 0x41
push 0x3ca1050
call fcn.100053c0
add esp, 4
ud2
mov ecx, 0x3ca69e4
mov edx, 0x2b
push 0x3ca4664
call fcn.100053c0
add esp, 4
ud2