Function at 0x1004e360
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x3ef4
call fcn.10148270
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x74], 0x1312d00
xor eax, eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x68], eax
mov ebp, edx
push edi
mov eax, dword [esi + 0xb0]
lea ebx, [esi + 4]
mov ecx, dword [esi + 0x34]
mov edi, dword [esi]
mov dword [esp + 0x30], eax
mov eax, dword [eax + 0x218]
push 0x80
mov dword [esp + 0x68], ebx
mov dword [esp + 0x9c], ecx
mov eax, dword [eax + 0x220]
shl eax, 0x10
mov dword [esp + 0x98], eax
xor eax, eax
push eax
mov dword [esp + 0x60], eax
mov byte [esp + 0x64], al
mov byte [esp + 0x3f], al
mov dword [esp + 0x68], eax
lea eax, [esp + 0x160]
push eax
call fcn.10120e50
xor eax, eax
mov dword [esp + 0x98], 0
add esp, 0xc
mov dword [esp + 0x70], eax
xorps xmm0, xmm0
mov dword [esp + 0x120], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf8], eax
push 0x2e08
push eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
lea eax, [esp + 0x1e0]
push eax
movq qword [esp + 0x90], xmm0
movups xmmword [esp + 0x130], xmm0
mov dword [esp + 0x110], edi
movq qword [esp + 0x140], xmm0
mov dword [esp + 0x114], ebx
mov dword [esp + 0x118], 0x10
mov dword [esp + 0x11c], 0
mov dword [esp + 0x120], 0xa
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0xf0], edi
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], 0x14
mov dword [esp + 0x100], 0xa
mov dword [esp + 0xd0], edi
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], 0x14
mov dword [esp + 0xe0], 0xa
movlpd qword [esp + 0xb8], xmm0
movlpd qword [esp + 0xc0], xmm0
movlpd qword [esp + 0xc8], xmm0
mov dword [esp + 0xb4], ebx
call fcn.10120e50
mov eax, dword [esp + 0x3f14]
add esp, 0xc
movaps xmm0, xmmword [0x10184b90]
mov dword [esp + 0x1d8], esi
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x2f34], edi
mov dword [esp + 0x2f38], ebx
push 0xf1c
lea eax, [esp + 0x201c]
mov dword [esp + 0x2f50], 0
push 0
push eax
movups xmmword [esp + 0x2f48], xmm0
mov dword [esp + 0x2f5c], 0
call fcn.10120e50
mov eax, dword [esp + 0xa4]
add esp, 0xc
mov bl, byte [esi + 0xb8]
mov dword [esp + 0x2028], eax
lea eax, [esp + 0x2018]
mov dword [esp + 0x201c], eax
lea eax, [esp + 0x2f34]
push 0xf1c
mov dword [esp + 0x2024], eax
lea eax, [esp + 0x1100]
push 0
push eax
mov byte [esp + 0x2031], bl
mov dword [esp + 0x2024], esi
call fcn.10120e50
mov eax, dword [esp + 0xa4]
add esp, 0xc
mov dword [esp + 0x110c], eax
lea eax, [esp + 0x2018]
mov dword [esp + 0x1100], eax
lea eax, [esp + 0x2f34]
mov dword [esp + 0x1104], eax
lea eax, [esp + 0x1e0]
push 0xf1c
push 0
push eax
mov byte [esp + 0x1115], bl
mov dword [esp + 0x1108], esi
call fcn.10120e50
mov ecx, dword [esp + 0xa4]
lea eax, [esp + 0x2024]
mov dword [esp + 0x1f0], eax
add esp, 0xc
mov dword [esp + 0x1f0], ecx
lea eax, [esp + 0x2f34]
mov dword [esp + 0x1e8], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x2f54], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 0x2f58], eax
mov dword [esp + 0x2f5c], ecx
mov ecx, dword [esp + 0x3f0c]
mov byte [esp + 0x1ed], bl
mov dword [esp + 0x1e0], esi
mov eax, dword [ecx]
mov dword [esp + 0x2f60], eax
lea eax, [esp + 0xe4]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x2f6c], eax
lea eax, [esp + 0xc4]
mov dword [esp + 0x2f70], eax
lea eax, [esp + 0xa8]
mov dword [esp + 0x2f74], eax
mov eax, dword [esp + 0x3f18]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2f78], eax
lea eax, [esi + 0xf0]
mov dword [esp + 0x2f7c], eax
mov al, byte [esi + 0xb9]
mov esi, dword [esi + 0xe4]
mov byte [esp + 0x2f6a], al
mov eax, dword [esp + 0x44]
mov dword [esp + 0x2f64], ecx
mov dword [esp + 0x2f80], esi
mov ebx, dword [eax + 0xe8]
mov eax, ebx
cdq
mov ecx, eax
mov dword [esp + 0x2f84], ebx
xor ecx, edx
mov eax, esi
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jle 0x1004e70d
test esi, esi
jmp 0x1004e711
mov esi, ebx
test ebx, ebx
jns 0x1004e715
neg esi
mov ecx, dword [esp + 0x30]
lea eax, [esi + esi]
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x3f1c]
mov dword [esp + 0x2f88], eax
mov dword [esp + 0x2f8c], 0x199a
cmp byte [edx + 9], 0
mov byte [esp + 0x2f6b], 1
mov byte [esp + 0x2f68], 0
setne byte [esp + 0x2b]
mov byte [esp + 0x2f69], 0
mov byte [esp + 0x2fb8], 0
mov eax, dword [ecx + 0x218]
mov eax, dword [eax + 0x21c]
shl eax, 0x10
mov dword [esi], eax
cmp byte [edx + 9], 0
je 0x1004e787
mov eax, dword [ecx + 0x214]
mov esi, dword [eax + 0x614]
jmp 0x1004e78c
mov esi, 0x30
mov eax, dword [edi + 4]
mov edx, 0x14
mov ecx, edi
mov dword [esp + 0x68], esi
call eax
mov ebx, eax
mov dword [esp + 0x74], ebx
test ebx, ebx
je 0x10053791
mov eax, dword [esp + 0x64]
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [ebx], edi
mov dword [ebx + 4], eax
test esi, esi
js 0x10053781
je 0x1004e8cb
cmp esi, 0xfffffff
jg 0x10053781
mov eax, dword [edi + 4]
lea edx, [esi*8]
mov ecx, edi
call eax
mov esi, eax
mov ecx, 0x40
xor eax, eax
test esi, esi
cmovne ecx, eax
mov eax, esi
je 0x1004e82a
mov edx, dword [esp + 0x68]
test edx, edx
jle 0x1004e82a
lea eax, [edx*8]
push eax
push 0
push esi
call fcn.10120e50
lea edi, [ebx + 8]
add esp, 0xc
mov dword [edi], esi
mov eax, esi
mov dword [esp + 0x20], edi
jmp 0x1004e83f
mov dword [ebx + 8], eax
lea edx, [ebx + 8]
mov dword [esp + 0x20], edx
test ecx, ecx
jne 0x10053788
lea edi, [ebx + 8]
mov esi, dword [esp + 0x68]
mov dword [ebx + 0x10], esi
lea ecx, [esp + 0x104]
mov esi, 0x11
mov dword [ebx + 0xc], eax
mov edx, esi
call fcn.1004adf0
mov ecx, dword [esp + 0x118]
test al, al
mov eax, dword [esp + 0x120]
mov edx, eax
cmovne ecx, esi
mov dword [esp + 0x70], eax
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x14], edx
cmp dword [ecx], 0
jne 0x100532c9
movups xmm0, xmmword [ebp]
mov ebp, dword [esp + 0x3f14]
xor ecx, ecx
mov esi, dword [esp + 0x1c]
movups xmmword [eax], xmm0
mov eax, dword [esp + 0x10c]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x7c], edi
mov dword [esp + 0xa4], eax
mov dword [esp + 0x24], ebp
jmp 0x1004e8ee
lea edi, [ebx + 8]
xor eax, eax
mov dword [esp + 0x20], edi
mov dword [edi], eax
jmp 0x1004e843
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
jmp 0x1004e8ee
mov edi, dword [esp + 0x20]
mov eax, dword [edx + 0xc]
cmp eax, dword [edx + 8]
jb 0x1004e90b
test ecx, ecx
mov edx, 0xb
mov eax, 0xe
cmove edx, eax
mov dword [esp + 0x2c], edx
jmp 0x1004e93a
mov cl, byte [eax]
inc eax
mov dword [edx + 0xc], eax
mov dl, cl
mov dword [esp + 0x2c], edx
cmp cl, 0xb
je 0x1004e921
cmp cl, 0xe
jne 0x1004e936
mov ecx, dword [esp + 0x44]
movzx eax, dl
xor edx, edx
cmp byte [ecx + 9], dl
cmovne eax, edx
mov dl, al
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x44]
mov al, byte [eax + 8]
mov ah, byte [esp + 0x37]
test al, al
je 0x1004e9e4
test ah, ah
jne 0x1004e987
cmp dl, 1
je 0x1004e987
cmp dl, 3
je 0x1004e987
cmp dl, 0xd
je 0x1004e987
cmp dl, 0xa
je 0x1004e987
cmp dl, 0xb
je 0x1004e987
cmp dl, 0xc
je 0x1004e987
cmp dl, 0xe
je 0x1004e987
cmp dl, 0x20
jae 0x1004e987
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
cmp dword [esp + 0x60], 0
mov edi, dword [esp + 0x20]
jle 0x1004e9bd
cmp dl, 0xa
je 0x1004e9bd
cmp dl, 0xb
je 0x1004e9bd
cmp dl, 0xc
je 0x1004e9bd
mov ebx, dword [esp + 0x60]
cmp dl, 0x20
mov dword [esp + 0x50], 0
cmovb ebx, dword [esp + 0x50]
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x74]
cmp byte [esp + 0x5c], 0
je 0x1004e9e4
cmp dl, 0x20
jae 0x1004e9e4
mov ecx, dword [esp + 0x5c]
cmp dl, 0xc
movzx ecx, cl
mov dword [esp + 0x50], 0
cmovne ecx, dword [esp + 0x50]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x64]
cmp dword [ecx], 0
mov ecx, dword [esp + 0x18]
jne 0x100532c9
sub dword [esp + 0x78], 1
je 0x10053180
movzx edx, dl
cmp edx, 0x1f
ja case.default.0x1004ea0c
jmp dword [edx*4 + 0x100538c0]
mov edx, dword [esp + 0x44]
cmp byte [edx + 9], 0
je case.0x1004ea0c.0
cmp byte [edx + 0x5d], 0
jne 0x10053180
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1004ea53
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004ea40
cmp dword [eax], 0
jne 0x1004ea40
mov dword [eax], 0xa1
xor eax, eax
mov dword [edx + 0x78], eax
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
cmp dword [eax - 4], 2
je 0x1004ea7e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004ea6b
cmp dword [eax], 0
jne 0x1004ea6b
mov dword [eax], 0xa0
xor eax, eax
mov dword [edx + 0x78], eax
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
test eax, eax
js case.0x1004ea0c.0
mov dword [edx + 0x78], eax
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
mov edx, dword [esp + 0x44]
cmp byte [edx + 9], 0
je case.0x1004ea0c.0
cmp dword [edx + 0x60], 0
je 0x10053180
mov eax, dword [edx + 0x224]
lea esi, [edx + 0x5c]
push dword [edx + 0x80]
mov ecx, esi
push dword [edx + 0x7c]
mov edx, dword [edx + 0x78]
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x1004eaf8
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 0x224]
push dword [ecx + 0x80]
mov edx, dword [ecx + 0x78]
push dword [ecx + 0x7c]
mov eax, dword [eax + 0x10]
mov ecx, esi
call eax
mov dword [esp + 0x6c], eax
test eax, eax
jne 0x100532c9
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1004eb15
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x1004eb11
cmp dword [ecx], 0
jne 0x1004eb11
mov dword [ecx], 0xa1
xor eax, eax
jmp 0x1004eb39
cmp dword [eax - 4], 2
je 0x1004eb31
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004eb2d
cmp dword [eax], 0
jne 0x1004eb2d
mov dword [eax], 0xa0
xor eax, eax
jmp 0x1004eb39
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
cmp eax, dword [esp + 0x68]
ja 0x10053180
push eax
mov edx, ebx
mov ecx, esi
call fcn.1004e170
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov byte [eax + 0x5d], 1
jmp 0x1004e8ee
test al, al
jne 0x1004eb7b
cmp byte [esp + 0xac], al
jne case.0x1004ea0c.0
xor eax, eax
jmp 0x1004eb85
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x20]
mov eax, dword [eax + 4]
push eax
lea eax, [esp + 0x2f]
push eax
lea eax, [esp + 0xec]
push dword [esp + 0x3f24]
mov ecx, dword [esp + 0x50]
mov edx, ebx
push eax
call fcn.1004dc70
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x224], 0
jne 0x100532c9
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
test al, al
jne 0x1004ebea
cmp byte [esp + 0xac], al
jne case.0x1004ea0c.0
xor eax, eax
push eax
lea eax, [esp + 0x2f]
push eax
lea eax, [esp + 0xcc]
jmp 0x1004eb92
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x20]
mov eax, dword [eax]
push eax
lea eax, [esp + 0x2f]
push eax
lea eax, [esp + 0xcc]
jmp 0x1004eb92
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi]
sub eax, ecx
sar eax, 3
cmp eax, 1
jbe 0x1004ec4e
cmp byte [esp + 0x2b], 0
jne 0x1004ec4e
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1004ec2c
sub eax, 1
jne 0x1004ec3c
shl ecx, 0x10
jmp 0x1004ec3c
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x94]
add eax, ecx
mov ecx, dword [esp + 0x3f1c]
mov dword [ecx], eax
mov eax, dword [esp + 0x30]
mov byte [esp + 0x2b], 1
cmp byte [eax + 0x224], 0
jne 0x100532c9
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1004ec91
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004ec7d
cmp dword [eax], 0
jne 0x1004ec7d
mov dword [eax], 0xa1
xor ecx, ecx
add esi, ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3f18], esi
jmp 0x10051fb6
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1004ecbb
sub eax, 1
jne 0x1004eccb
shl ecx, 0x10
add esi, ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3f18], esi
jmp 0x10051fb6
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
add esi, ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3f18], esi
jmp 0x10051fb6
mov ebp, dword [ebx + 0xc]
sub ebp, dword [edi]
xor edi, edi
sar ebp, 3
test ebp, ebp
je 0x1004edcc
nop
mov esi, dword [esp + 0x20]
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov edx, dword [esi]
sub eax, edx
sar eax, 3
cmp edi, eax
jb 0x1004ed1f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004ed1b
cmp dword [eax], 0
jne 0x1004ed1b
mov dword [eax], 0x82
mov ecx, dword [ebx + 0xc]
mov edx, dword [esi]
xor esi, esi
jmp 0x1004ed45
mov eax, dword [edx + edi*8 + 4]
mov esi, dword [edx + edi*8]
sub eax, 1
je 0x1004ed35
sub eax, 1
jne 0x1004ed45
shl esi, 0x10
jmp 0x1004ed45
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov eax, dword [esp + 0x24]
sub ecx, edx
add eax, esi
sar ecx, 3
mov dword [esp + 0x24], eax
mov dword [esp + 0x3f14], eax
lea eax, [edi + 1]
cmp eax, ecx
jb 0x1004ed78
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004ed74
cmp dword [eax], 0
jne 0x1004ed74
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004ed9f
mov eax, dword [edx + edi*8 + 0xc]
mov ecx, dword [edx + edi*8 + 8]
sub eax, 1
je 0x1004ed8f
sub eax, 1
jne 0x1004ed9f
shl ecx, 0x10
jmp 0x1004ed9f
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
add esi, ecx
push esi
lea ecx, [esp + 0x1dc]
mov dword [esp + 0x20], esi
mov dword [esp + 0x3f1c], esi
call fcn.1004d800
add edi, 2
cmp edi, ebp
jb 0x1004ecf0
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [edi]
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
mov eax, dword [esp + 0x20]
mov edi, dword [ebx + 0xc]
sub edi, dword [eax]
sar edi, 3
cmp byte [esp + 0x2c], 6
sete dl
xor esi, esi
test edi, edi
je 0x100528ee
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x1004ee28
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004ee24
cmp dword [eax], 0
jne 0x1004ee24
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004ee4e
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x1004ee3e
sub eax, 1
jne 0x1004ee4e
shl ecx, 0x10
jmp 0x1004ee4e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
test dl, dl
je 0x1004ee61
add ebp, ecx
mov dword [esp + 0x3f14], ebp
jmp 0x1004ee6e
add eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3f18], eax
xor dl, 1
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x43], dl
mov edx, ebp
push eax
call fcn.1004d800
mov dl, byte [esp + 0x43]
inc esi
mov eax, dword [esp + 0x20]
cmp esi, edi
jb 0x1004ee04
mov dword [esp + 0x24], ebp
jmp 0x100528ee
mov eax, dword [ebx + 0xc]
xor ebp, ebp
sub eax, dword [edi]
sar eax, 3
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ebp
cmp eax, 6
jb 0x1004f12d
lea edi, [ebp + 2]
nop dword [eax]
mov ecx, dword [esp + 0x20]
mov esi, dword [ebx + 0xc]
mov eax, esi
mov edx, dword [ecx]
sub eax, edx
sar eax, 3
cmp ebp, eax
jb 0x1004eeef
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004eeeb
cmp dword [eax], 0
jne 0x1004eeeb
mov dword [eax], 0x82
mov esi, dword [ebx + 0xc]
mov edx, dword [ecx]
xor ecx, ecx
jmp 0x1004ef16
mov eax, dword [edx + edi*8 - 0xc]
mov ecx, dword [edx + edi*8 - 0x10]
sub eax, 1
je 0x1004ef06
sub eax, 1
jne 0x1004ef16
shl ecx, 0x10
jmp 0x1004ef16
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x24]
add eax, ecx
mov ecx, esi
sub ecx, edx
mov dword [esp + 0x48], eax
sar ecx, 3
lea eax, [edi - 1]
cmp eax, ecx
jb 0x1004ef4e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004ef4a
cmp dword [eax], 0
jne 0x1004ef4a
mov ebp, dword [esp + 0x20]
mov dword [eax], 0x82
mov esi, dword [ebx + 0xc]
mov edx, dword [ebp]
xor ecx, ecx
jmp 0x1004ef75
mov eax, dword [edx + edi*8 - 4]
mov ecx, dword [edx + edi*8 - 8]
sub eax, 1
je 0x1004ef65
sub eax, 1
jne 0x1004ef75
shl ecx, 0x10
jmp 0x1004ef75
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebp, dword [esp + 0x1c]
mov eax, esi
sub eax, edx
add ebp, ecx
sar eax, 3
mov dword [esp + 0x50], ebp
cmp edi, eax
jb 0x1004efa9
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004efa5
cmp dword [eax], 0
jne 0x1004efa5
mov dword [eax], 0x82
mov eax, dword [esp + 0x20]
mov esi, dword [ebx + 0xc]
mov edx, dword [eax]
xor ecx, ecx
jmp 0x1004efcf
mov eax, dword [edx + edi*8 + 4]
mov ecx, dword [edx + edi*8]
sub eax, 1
je 0x1004efbf
sub eax, 1
jne 0x1004efcf
shl ecx, 0x10
jmp 0x1004efcf
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x48]
add eax, ecx
mov ecx, esi
sub ecx, edx
mov dword [esp + 0x4c], eax
sar ecx, 3
lea eax, [edi + 1]
cmp eax, ecx
jb 0x1004f006
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004f002
cmp dword [eax], 0
jne 0x1004f002
mov dword [eax], 0x82
mov eax, dword [esp + 0x20]
mov esi, dword [ebx + 0xc]
mov edx, dword [eax]
xor ecx, ecx
jmp 0x1004f02d
mov eax, dword [edx + edi*8 + 0xc]
mov ecx, dword [edx + edi*8 + 8]
sub eax, 1
je 0x1004f01d
sub eax, 1
jne 0x1004f02d
shl ecx, 0x10
jmp 0x1004f02d
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
add ebp, ecx
lea eax, [edi + 2]
mov ecx, esi
sub ecx, edx
sar ecx, 3
cmp eax, ecx
jb 0x1004f05c
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004f058
cmp dword [eax], 0
jne 0x1004f058
mov dword [eax], 0x82
mov eax, dword [esp + 0x20]
mov esi, dword [ebx + 0xc]
mov edx, dword [eax]
xor ecx, ecx
jmp 0x1004f083
mov eax, dword [edx + edi*8 + 0x14]
mov ecx, dword [edx + edi*8 + 0x10]
sub eax, 1
je 0x1004f073
sub eax, 1
jne 0x1004f083
shl ecx, 0x10
jmp 0x1004f083
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x4c]
sub esi, edx
add eax, ecx
sar esi, 3
mov dword [esp + 0x24], eax
lea eax, [edi + 3]
cmp eax, esi
jb 0x1004f0af
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004f0ab
cmp dword [eax], 0
jne 0x1004f0ab
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004f0d6
mov eax, dword [edx + edi*8 + 0x1c]
mov ecx, dword [edx + edi*8 + 0x18]
sub eax, 1
je 0x1004f0c6
sub eax, 1
jne 0x1004f0d6
shl ecx, 0x10
jmp 0x1004f0d6
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov esi, dword [esp + 0x24]
lea eax, [ecx + ebp]
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x1d8]
push eax
push esi
push ebp
push dword [esp + 0x58]
mov dword [esp + 0x2c], eax
push dword [esp + 0x60]
call fcn.1004d980
mov ebp, dword [esp + 0x3c]
add edi, 6
add ebp, 6
mov dword [esp + 0x3f14], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3f18], esi
lea eax, [edi + 4]
mov dword [esp + 0x3c], ebp
cmp eax, dword [esp + 0x38]
jbe 0x1004eec0
mov edi, dword [esp + 0x20]
cmp byte [esp + 0x2c], 0x18
jne 0x1004f219
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov esi, dword [edi]
sub eax, esi
sar eax, 3
cmp ebp, eax
jb 0x1004f164
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004f160
cmp dword [eax], 0
jne 0x1004f160
mov dword [eax], 0x82
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebx + 8]
xor edx, edx
jmp 0x1004f18a
mov eax, dword [esi + ebp*8 + 4]
mov edx, dword [esi + ebp*8]
sub eax, 1
je 0x1004f17a
sub eax, 1
jne 0x1004f18a
shl edx, 0x10
jmp 0x1004f18a
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esp + 0x24]
sub ecx, esi
add eax, edx
sar ecx, 3
mov dword [esp + 0x24], eax
mov dword [esp + 0x3f14], eax
lea eax, [ebp + 1]
cmp eax, ecx
jb 0x1004f1bd
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004f1b9
cmp dword [eax], 0
jne 0x1004f1b9
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004f1e3
mov ecx, dword [esi + eax*8]
mov eax, dword [esi + eax*8 + 4]
sub eax, 1
je 0x1004f1d3
sub eax, 1
jne 0x1004f1e3
shl ecx, 0x10
jmp 0x1004f1e3
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x24]
add esi, ecx
push esi
mov edx, ebp
mov dword [esp + 0x20], esi
lea ecx, [esp + 0x1dc]
mov dword [esp + 0x3f1c], esi
call fcn.1004d800
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
mov eax, dword [edi]
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
test al, al
je case.0x1004ea0c.0
cmp byte [esp + 0x2f68], 0
je 0x1004f2b8
push dword [esp + 0x2fb4]
mov edx, dword [esp + 0x2fb4]
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x2f6d], 1
call fcn.1004d800
cmp byte [esp + 0x2fb8], 0
je 0x1004f298
push 1
push dword [esp + 0x2fa0]
lea eax, [esp + 0x2f98]
push dword [esp + 0x2fa0]
lea edx, [esp + 0x1ec]
push eax
lea ecx, [esp + 0x1e8]
call fcn.1004d2a0
mov byte [esp + 0x2f6b], 1
mov byte [esp + 0x2f68], 0
mov byte [esp + 0x2f69], 0
mov byte [esp + 0x2fb8], 0
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x2b], 1
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
cmp ecx, 0x10
jg 0x10053180
lea eax, [ecx + 1]
cmp eax, dword [esp + 0x9c]
jb 0x1004f2fc
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x1004f2fa
cmp dword [eax], 0
jne 0x1004f2fa
mov dword [eax], 0x82
xor eax, eax
imul eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x70]
add edx, eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x14], edx
cmp eax, dword [edi]
jne 0x1004f32b
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004f327
cmp dword [eax], 0
jne 0x1004f327
mov dword [eax], 0xa1
xor eax, eax
jmp 0x1004f34f
cmp dword [eax - 4], 2
je 0x1004f347
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004f343
cmp dword [eax], 0
jne 0x1004f343
mov dword [eax], 0xa0
xor eax, eax
jmp 0x1004f34f
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
mov ecx, dword [esp + 0x44]
cmp byte [ecx + 8], 0
je 0x1004f37c
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + 0x268]
test ecx, ecx
je 0x1004f37c
push eax
call fcn.1003a960
mov edx, dword [esp + 0x14]
test eax, eax
je 0x1004f379
mov eax, dword [eax]
jmp 0x1004f37c
or eax, 0xffffffff
cmp byte [esp + 0x2c], 0x1d
xorps xmm0, xmm0
mov ecx, dword [esp + 0x30]
movups xmmword [edx], xmm0
je 0x1004f445
mov ecx, dword [ecx + 0x234]
add ecx, eax
mov eax, dword [esp + 0x30]
cmp ecx, dword [eax + 0x22c]
jae 0x10053180
mov eax, dword [eax + 0x23c]
lea edx, [ecx*4]
mov ecx, dword [edx + eax]
mov eax, dword [esp + 0x14]
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x30], 0
je 0x1004f413
mov eax, dword [eax + 0x264]
test eax, eax
je 0x1004f3eb
test ecx, ecx
je 0x1004f3e3
mov eax, dword [eax + edx]
add eax, ecx
mov ecx, dword [esp + 0x14]
jmp 0x1004f421
mov ecx, dword [esp + 0x14]
xor eax, eax
jmp 0x1004f421
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], 0
mov eax, dword [eax + 0x260]
test eax, eax
cmovs eax, dword [esp + 0x50]
add eax, ecx
mov ecx, dword [esp + 0x14]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x30]
jmp 0x1004f417
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x23c]
mov eax, dword [edx + eax + 4]
mov edx, 8
mov dword [esp + 0x20], edi
mov dword [ecx + edx], eax
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x18], ecx
mov eax, dword [edx + 4]
mov dword [edx + 0xc], eax
jmp 0x1004e8ee
mov ecx, dword [ecx + 0x238]
add ecx, eax
mov eax, dword [esp + 0x30]
cmp ecx, dword [eax + 0x230]
jae 0x10053180
mov eax, dword [eax + 0x240]
mov eax, dword [eax + ecx*4]
mov dword [edx + 0xc], eax
mov dword [edx + 4], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x240]
mov eax, dword [eax + ecx*4 + 4]
mov ecx, dword [esp + 0x18]
inc ecx
mov dword [edx + 8], eax
mov dword [esp + 0x18], ecx
jmp 0x1004e8ee
cmp ecx, 1
jl 0x10053180
dec ecx
mov eax, ecx
mov dword [esp + 0x18], ecx
cmp ecx, dword [esp + 0x9c]
jb 0x1004f4bc
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x1004f4ba
cmp dword [eax], 0
jne 0x1004f4ba
mov dword [eax], 0x82
xor eax, eax
mov edx, dword [esp + 0xa0]
imul edx, eax
add edx, dword [esp + 0x70]
mov dword [esp + 0x14], edx
jmp 0x1004e8ee
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xc]
cmp eax, dword [edx + 8]
jae 0x1004f4e7
mov cl, byte [eax]
inc eax
mov dword [edx + 0xc], eax
jmp 0x1004f4fa
mov eax, dword [edx]
test eax, eax
je 0x1004f4f8
cmp dword [eax], 0
jne 0x1004f4f8
mov dword [eax], 0x55
xor cl, cl
movzx eax, cl
add eax, 0xfffffff8
mov byte [esp + 0x43], cl
cmp eax, 0x1d
ja case.0x1004f514.9
movzx eax, byte [eax + 0x10053958]
jmp dword [eax*4 + 0x10053940]
push 0
push 0x10168c10
jmp 0x1004f581
push 0
push 0x10168ab0
lea eax, [esp + 0x1e0]
mov ecx, ebx
push eax
lea eax, [esp + 0x3f24]
push eax
lea edx, [esp + 0x3f24]
call fcn.1004de90
mov esi, dword [esp + 0x3f18]
mov ebp, dword [esp + 0x3f14]
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], ebp
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
push 0
push 0x10168c3c
jmp 0x1004f581
push 1
push 0x10168dd4
lea eax, [esp + 0x1e0]
mov ecx, ebx
push eax
lea eax, [esp + 0x3f24]
push eax
lea edx, [esp + 0x3f24]
call fcn.1004de90
mov esi, dword [esp + 0x3f18]
mov ebp, dword [esp + 0x3f14]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], ebp
jmp 0x1004e8ee
mov eax, dword [esp + 0x44]
cmp byte [eax + 9], 0
jne case.0x1004f60e.0
cmp cl, 0x26
jae case.0x1004f60e.0
mov al, byte [eax + 8]
test al, al
je 0x1004f602
cmp dword [esp + 0x60], 0
jle 0x1004f602
cmp cl, 0x11
je 0x1004f602
mov eax, dword [edi]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x60], 0
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
movzx ecx, cl
cmp ecx, 0x21
ja case.0x1004f60e.0
jmp dword [ecx*4 + 0x10053978]
test al, al
je case.0x1004f60e.0
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi]
sub eax, ecx
sar eax, 3
test eax, eax
jne 0x1004f641
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004f63d
cmp dword [eax], 0
jne 0x1004f63d
mov dword [eax], 0x82
xor esi, esi
jmp 0x1004f665
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
sub eax, 1
je 0x1004f655
sub eax, 1
jne 0x1004f665
shl esi, 0x10
jmp 0x1004f665
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi]
sub eax, ecx
sar eax, 3
cmp eax, 2
ja 0x1004f68a
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004f686
cmp dword [eax], 0
jne 0x1004f686
mov dword [eax], 0x82
xor edi, edi
jmp 0x1004f6af
mov eax, dword [ecx + 0x14]
mov edi, dword [ecx + 0x10]
sub eax, 1
je 0x1004f69f
sub eax, 1
jne 0x1004f6af
shl edi, 0x10
jmp 0x1004f6af
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov ebp, dword [esp + 0x20]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp]
sub eax, ecx
sar eax, 3
cmp eax, 4
ja 0x1004f6d9
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004f6d5
cmp dword [eax], 0
jne 0x1004f6d5
mov dword [eax], 0x82
xor edx, edx
jmp 0x1004f6fe
mov eax, dword [ecx + 0x24]
mov edx, dword [ecx + 0x20]
sub eax, 1
je 0x1004f6ee
sub eax, 1
jne 0x1004f6fe
shl edx, 0x10
jmp 0x1004f6fe
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [ebx + 0xc]
mov ebp, dword [ebp]
sub eax, ebp
sar eax, 3
cmp eax, 1
ja 0x1004f724
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004f720
cmp dword [eax], 0
jne 0x1004f720
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004f749
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub eax, 1
je 0x1004f739
sub eax, 1
jne 0x1004f749
shl ecx, 0x10
jmp 0x1004f749
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x20]
mov ebp, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ebp
sar eax, 3
cmp eax, 2
jae 0x1004f770
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004f786
cmp dword [eax], 0
jne 0x1004f786
mov dword [eax], 0x82
jmp 0x1004f786
mov eax, edi
sub eax, ecx
sub eax, esi
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov dword [eax + 0x14], 0
mov eax, dword [esp + 0x20]
mov esi, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, esi
sar eax, 3
cmp eax, 3
ja 0x1004f7af
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004f7ab
cmp dword [eax], 0
jne 0x1004f7ab
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004f7d4
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
sub eax, 1
je 0x1004f7c4
sub eax, 1
jne 0x1004f7d4
shl ecx, 0x10
jmp 0x1004f7d4
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x20]
mov esi, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, esi
sar eax, 3
cmp eax, 4
jae 0x1004f7fb
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004f80f
cmp dword [eax], 0
jne 0x1004f80f
mov dword [eax], 0x82
jmp 0x1004f80f
mov eax, dword [esp + 0x20]
sub edx, ecx
sub edx, edi
mov dword [esi + 0x20], edx
mov eax, dword [eax]
mov dword [eax + 0x24], 0
cmp byte [esp + 0x43], 1
mov ebp, dword [esp + 0x30]
mov eax, dword [ebp + 0x20]
jne 0x1004f821
mov eax, dword [eax]
jmp 0x1004f824
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0xe4]
push eax
lea eax, [esp + 0x2f]
push eax
push dword [esp + 0x3f24]
lea eax, [esp + 0xd0]
cmovne eax, edx
mov edx, ebx
push eax
call fcn.1004dc70
cmp byte [ebp + 0x224], 0
jne 0x100532c9
mov ebp, dword [esp + 0x24]
jmp 0x100520b4
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1004f881
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004f87d
cmp dword [eax], 0
jne 0x1004f87d
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1004f8ab
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1004f89b
sub eax, 1
jne 0x1004f8ab
shl edx, 0x10
jmp 0x1004f8ab
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1004f908
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004f8c4
cmp dword [eax], 0
jne 0x1004f8c4
mov dword [eax], 0xa1
xor edx, edx
mov ecx, dword [ebx + 0x10]
mov eax, dword [edi]
mov esi, dword [ebx + 0xc]
lea eax, [eax + ecx*8]
cmp esi, eax
jne 0x10052e1a
mov eax, dword [ebx + 4]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x1004e8ee
cmp dword [eax], 0
jne 0x1004e8ee
mov dword [eax], 0x82
mov esi, dword [esp + 0x1c]
jmp 0x1004e8ee
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1004f922
sub eax, 1
jne 0x1004f932
shl ecx, 0x10
jmp 0x1004f932
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test ecx, ecx
je 0x1004f8c4
test edx, edx
je 0x1004f8c4
mov edx, 1
jmp 0x1004f8c6
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1004f95e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004f95a
cmp dword [eax], 0
jne 0x1004f95a
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1004f988
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1004f978
sub eax, 1
jne 0x1004f988
shl edx, 0x10
jmp 0x1004f988
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1004f9a3
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004f9d5
cmp dword [eax], 0
jne 0x1004f9d5
mov dword [eax], 0xa1
jmp 0x1004f9d5
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1004f9bd
sub eax, 1
jne 0x1004f9cd
shl ecx, 0x10
jmp 0x1004f9cd
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test ecx, ecx
jne 0x1004f93a
test edx, edx
jne 0x1004f93a
jmp 0x1004f8c4
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1004f9ff
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004f9fb
cmp dword [eax], 0
jne 0x1004f9fb
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1004fa29
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1004fa19
sub eax, 1
jne 0x1004fa29
shl edx, 0x10
jmp 0x1004fa29
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov ecx, dword [ebx + 0x10]
mov eax, dword [edi]
mov esi, dword [ebx + 0xc]
lea eax, [eax + ecx*8]
cmp esi, eax
je 0x1004f8d9
mov ecx, dword [esp + 0x18]
xor eax, eax
test edx, edx
mov edx, dword [esp + 0x14]
sete al
mov dword [esi], eax
mov eax, dword [ebx + 0xc]
mov esi, dword [esp + 0x1c]
mov dword [eax + 4], 2
add dword [ebx + 0xc], 8
jmp 0x1004e8ee
test al, al
je case.0x1004f60e.0
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
mov dword [esp + 0x50], eax
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jne 0x10053030
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004fa95
cmp dword [eax], 0
jne 0x1004fa95
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10053054
test al, al
je case.0x1004f60e.0
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1004fac1
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004fabd
cmp dword [eax], 0
jne 0x1004fabd
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004faeb
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1004fadb
sub eax, 1
jne 0x1004faeb
shl ecx, 0x10
jmp 0x1004faeb
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov esi, dword [esp + 0x30]
mov eax, dword [esi + 0x24]
mov dword [eax + 4], ecx
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1004fb12
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004fb0e
cmp dword [eax], 0
jne 0x1004fb0e
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004fb3c
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1004fb2c
sub eax, 1
jne 0x1004fb3c
shl ecx, 0x10
jmp 0x1004fb3c
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esi + 0x24]
mov dword [eax], ecx
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1004fb5e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004fb5a
cmp dword [eax], 0
jne 0x1004fb5a
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1004fb88
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1004fb78
sub eax, 1
jne 0x1004fb88
shl edx, 0x10
jmp 0x1004fb88
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1004fba5
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004fba1
cmp dword [eax], 0
jne 0x1004fba1
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004fbcf
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1004fbbf
sub eax, 1
jne 0x1004fbcf
shl ecx, 0x10
jmp 0x1004fbcf
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov esi, dword [esp + 0x30]
mov byte [esp + 0x2b], 1
mov eax, dword [esi + 0x20]
add dword [eax], ecx
mov eax, dword [esi + 0x20]
add dword [eax + 4], edx
cmp byte [esi + 0x2f], 0
jne 0x100532c9
cmp byte [esp + 0x37], 0
mov esi, dword [esp + 0x1c]
je 0x100520bc
mov eax, dword [edi]
add ebp, ecx
mov ecx, dword [esp + 0x18]
add esi, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x3f14], ebp
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3f18], esi
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1004fca3
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004fc41
cmp dword [eax], 0
jne 0x1004fc41
mov dword [eax], 0xa1
mov edi, dword [ebx + 0x10]
xor ecx, ecx
mov ebp, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
mov eax, ecx
lea ecx, [edi*8]
mov edi, dword [esp + 0x20]
add ecx, ebp
mov ebp, dword [esp + 0x24]
cdq
xor eax, edx
sub eax, edx
cmp esi, ecx
jne 0x10050056
mov esi, dword [esp + 0x1c]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x1004e8ee
cmp dword [eax], 0
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
jne 0x1004e8ee
mov dword [eax], 0x82
jmp 0x1004e8ee
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1004fcbd
sub eax, 1
jne 0x1004fccd
shl ecx, 0x10
jmp 0x1004fccd
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edi, dword [ebx + 0x10]
mov ebp, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
cmp ecx, 0x80000001
jge 0x1004fc4c
lea eax, [edi*8]
mov edi, dword [esp + 0x20]
add eax, ebp
mov ebp, dword [esp + 0x24]
cmp esi, eax
jne 0x1004fd1e
mov eax, dword [ebx + 4]
test eax, eax
je 0x100518cc
cmp dword [eax], 0
jne 0x100518cc
mov dword [eax], 0x82
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
jmp 0x1004e8ee
mov ecx, dword [esp + 0x18]
mov dword [esi], 0x7fffffff
mov eax, dword [ebx + 0xc]
mov esi, dword [esp + 0x1c]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1004e8ee
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1004fd5c
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004fd58
cmp dword [eax], 0
jne 0x1004fd58
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1004fd86
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1004fd76
sub eax, 1
jne 0x1004fd86
shl esi, 0x10
jmp 0x1004fd86
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1004fda3
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004fd9f
cmp dword [eax], 0
jne 0x1004fd9f
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1004fdcd
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1004fdbd
sub eax, 1
jne 0x1004fdcd
shl edx, 0x10
jmp 0x1004fdcd
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0x10]
mov edi, dword [ebx + 0xc]
mov eax, dword [eax]
lea eax, [eax + ecx*8]
cmp edi, eax
jne 0x1004fe0f
mov eax, dword [ebx + 4]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x1004e8ee
cmp dword [eax], 0
jne 0x1004e8ee
mov dword [eax], 0x82
jmp 0x1004e8ee
mov ecx, dword [esp + 0x18]
lea eax, [edx + esi]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [edi], eax
mov eax, dword [ebx + 0xc]
mov edi, dword [esp + 0x20]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1004e8ee
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1004fe54
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004fe50
cmp dword [eax], 0
jne 0x1004fe50
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1004fe7e
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1004fe6e
sub eax, 1
jne 0x1004fe7e
shl esi, 0x10
jmp 0x1004fe7e
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1004fe9b
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004fe97
cmp dword [eax], 0
jne 0x1004fe97
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1004fec5
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1004feb5
sub eax, 1
jne 0x1004fec5
shl edx, 0x10
jmp 0x1004fec5
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0x10]
mov edi, dword [ebx + 0xc]
mov eax, dword [eax]
lea eax, [eax + ecx*8]
cmp edi, eax
je 0x1004fde0
mov ecx, dword [esp + 0x18]
sub edx, esi
mov esi, dword [esp + 0x1c]
mov dword [edi], edx
mov eax, dword [ebx + 0xc]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1004e8ee
test al, al
je 0x1004ffb0
cmp byte [esp + 0x5c], 0
je 0x1004ffb0
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1004ff33
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004ff2f
cmp dword [eax], 0
jne 0x1004ff2f
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1004ff57
cmp dword [eax - 4], 2
je 0x1004ff4f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004ff4b
cmp dword [eax], 0
jne 0x1004ff4b
mov dword [eax], 0xa0
xor edx, edx
jmp 0x1004ff57
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1004ff7b
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004ff70
cmp dword [eax], 0
jne 0x1004ff70
mov dword [eax], 0xa1
xor ecx, ecx
mov byte [esp + 0x5c], cl
jmp 0x1005003e
cmp dword [eax - 4], 2
je 0x1004ff9e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004ff93
cmp dword [eax], 0
jne 0x1004ff93
mov dword [eax], 0xa0
xor ecx, ecx
mov byte [esp + 0x5c], cl
jmp 0x1005003e
add eax, 0xfffffff8
mov byte [esp + 0x5c], 0
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
jmp 0x1005003e
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1004ffcd
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004ffc9
cmp dword [eax], 0
jne 0x1004ffc9
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1004fff7
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1004ffe7
sub eax, 1
jne 0x1004fff7
shl edx, 0x10
jmp 0x1004fff7
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x10050014
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050010
cmp dword [eax], 0
jne 0x10050010
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005003e
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005002e
sub eax, 1
jne 0x1005003e
shl ecx, 0x10
jmp 0x1005003e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.10039a90
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov esi, dword [ebx + 0xc]
lea ecx, [ecx + edx*8]
cmp esi, ecx
je 0x1004f8d9
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esi], eax
mov eax, dword [ebx + 0xc]
mov esi, dword [esp + 0x1c]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1004e8ee
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x100500c9
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050090
cmp dword [eax], 0
jne 0x10050090
mov dword [eax], 0xa1
mov eax, dword [ebx + 0x10]
xor ecx, ecx
mov esi, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
lea eax, [esi + eax*8]
cmp edx, eax
je 0x1004f8d9
mov esi, dword [esp + 0x1c]
neg ecx
mov dword [edx], ecx
mov eax, dword [ebx + 0xc]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1004e8ee
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x100500e3
sub eax, 1
jne 0x100500f3
shl ecx, 0x10
jmp 0x100500f3
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [ebx + 0x10]
mov esi, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
cmp ecx, 0x80000001
jge 0x1005009b
lea eax, [esi + eax*8]
cmp edx, eax
jne 0x10050136
mov eax, dword [ebx + 4]
test eax, eax
je 0x100518c8
cmp dword [eax], 0
jne 0x100518c8
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax], 0x82
mov esi, dword [esp + 0x1c]
jmp 0x1004e8ee
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [edx], 0x7fffffff
mov eax, dword [ebx + 0xc]
mov edx, dword [esp + 0x14]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1004e8ee
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x10050178
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050174
cmp dword [eax], 0
jne 0x10050174
mov dword [eax], 0xa1
xor esi, esi
jmp 0x100501a2
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x10050192
sub eax, 1
jne 0x100501a2
shl esi, 0x10
jmp 0x100501a2
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x100501bf
mov eax, dword [ebx + 4]
test eax, eax
je 0x100501bb
cmp dword [eax], 0
jne 0x100501bb
mov dword [eax], 0xa1
xor edx, edx
jmp 0x100501e9
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x100501d9
sub eax, 1
jne 0x100501e9
shl edx, 0x10
jmp 0x100501e9
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0x10]
mov edi, dword [ebx + 0xc]
mov eax, dword [eax]
lea eax, [eax + ecx*8]
cmp edi, eax
je 0x1004fde0
mov ecx, dword [esp + 0x18]
xor eax, eax
cmp edx, esi
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
sete al
mov dword [edi], eax
mov eax, dword [ebx + 0xc]
mov edi, dword [esp + 0x20]
mov dword [eax + 4], 2
add dword [ebx + 0xc], 8
jmp 0x1004e8ee
mov ecx, dword [esp + 0x18]
test al, al
je 0x1004e8ee
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x10050255
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050251
cmp dword [eax], 0
jne 0x10050251
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10050279
cmp dword [eax - 4], 2
je 0x10050271
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005026d
cmp dword [eax], 0
jne 0x1005026d
mov dword [eax], 0xa0
xor esi, esi
jmp 0x10050279
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x10050296
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050292
cmp dword [eax], 0
jne 0x10050292
mov dword [eax], 0xa1
xor edi, edi
jmp 0x100502ba
cmp dword [eax - 4], 2
je 0x100502b2
mov eax, dword [ebx + 4]
test eax, eax
je 0x100502ae
cmp dword [eax], 0
jne 0x100502ae
mov dword [eax], 0xa0
xor edi, edi
jmp 0x100502ba
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edi, dword [eax]
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0xc]
mov ebp, ecx
mov dword [esp + 0x38], edi
mov edx, dword [eax]
sub ebp, edx
sar ebp, 3
xor eax, eax
sub ebp, edi
mov dword [esp + 0x58], eax
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x60], eax
cmp esi, 0x1c
ja case.0x100502ee.4
movzx eax, byte [esi + 0x10053a40]
jmp dword [eax*4 + 0x10053a00]
cmp edi, 3
jne 0x10053180
cmp byte [esp + 0x37], 0
je 0x10050323
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x1d4], 0
je 0x10053180
cmp dword [eax + 0x1d8], 7
jne 0x10053180
mov eax, dword [ebx + 0x10]
mov ebp, dword [esp + 0x24]
lea eax, [edx + eax*8]
cmp ecx, eax
jne 0x10050345
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050355
cmp dword [eax], 0
jne 0x10050355
mov dword [eax], 0x82
jmp 0x10050355
mov dword [ecx], ebp
mov eax, dword [ebx + 0xc]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
mov edi, dword [esp + 0x20]
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov esi, dword [esp + 0x1c]
mov eax, dword [edi]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x10050393
mov eax, dword [ebx + 4]
test eax, eax
je 0x100503a3
cmp dword [eax], 0
jne 0x100503a3
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax], 0x82
mov dword [esp + 0x58], 2
jmp 0x1004e8ee
mov dword [edx], esi
mov eax, dword [ebx + 0xc]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x58], 2
jmp 0x1004e8ee
test edi, edi
jne 0x10053180
cmp byte [esp + 0x37], 0
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
je 0x1004e8ee
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0xc]
movsx eax, word [ecx + 0x16]
movsx edx, word [ecx + 0x3a]
add eax, 6
add eax, edx
cmp eax, dword [ecx + 4]
jbe 0x1005040c
push 0
mov edx, 6
call fcn.1003a160
test eax, eax
jne 0x100532c9
mov ecx, dword [esp + 0x30]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [ecx + 0x1d4], 1
mov dword [ecx + 0x1d8], 0
mov ecx, dword [esp + 0x18]
jmp 0x1004e8ee
test edi, edi
jne 0x10053180
cmp byte [esp + 0x37], 0
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
je 0x1004e8ee
mov ecx, dword [esp + 0x30]
cmp dword [ecx + 0x1d4], 0
je 0x10053180
mov esi, dword [ecx + 0x1d8]
lea eax, [esi + 1]
mov dword [ecx + 0x1d8], eax
lea eax, [esi - 1]
cmp eax, 5
ja 0x100518c0
mov ecx, dword [ecx + 0xc]
movsx eax, word [ecx + 0x16]
movsx edx, word [ecx + 0x3a]
inc eax
add eax, edx
cmp eax, dword [ecx + 4]
jbe 0x100504b7
push 0
mov edx, 1
call fcn.1003a160
test eax, eax
jne 0x10053180
lea eax, [esi - 3]
cmp esi, 3
jg 0x100504c1
mov eax, esi
mov ebp, dword [esp + 0x24]
add eax, eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x11c], ebp
mov dword [esp + eax*4 + 0x120], ecx
cmp esi, 3
je 0x100504e7
cmp esi, 6
jne 0x100518c4
push dword [esp + 0x138]
mov edx, dword [esp + 0x128]
lea ecx, [esp + 0x1dc]
push dword [esp + 0x138]
push dword [esp + 0x138]
push dword [esp + 0x138]
push dword [esp + 0x138]
call fcn.1004d980
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x1004e8ee
cmp edi, 1
jne 0x10053180
cmp byte [esp + 0x37], 0
je 0x10050592
mov eax, dword [esp + 0x64]
xorps xmm0, xmm0
movups xmmword [esp + 0xa8], xmm0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xf8], 0
movq qword [esp + 0xb8], xmm0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xa8], eax
mov byte [esp + 0xac], 0
mov byte [esp + 0xad], 1
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x58], 1
jmp 0x1004e8ee
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0xc], edx
mov edx, dword [esp + 0x14]
jmp 0x1004e8ee
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x284]
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x10053180
xor eax, eax
cmp esi, 0x12
sete al
lea edx, [eax - 0xd]
mov eax, dword [ecx]
add edx, esi
imul eax, edx
mov dword [esp + 0x58], edx
cmp edi, eax
jne 0x10053180
lea edi, [edx + ebp]
test edx, edx
je 0x10050740
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x20]
mov esi, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, esi
sar eax, 3
cmp ebp, eax
jb 0x1005063a
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050636
cmp dword [eax], 0
jne 0x10050636
mov dword [eax], 0x82
xor esi, esi
jmp 0x10050660
mov eax, dword [esi + ebp*8 + 4]
mov esi, dword [esi + ebp*8]
sub eax, 1
je 0x10050650
sub eax, 1
jne 0x10050660
shl esi, 0x10
jmp 0x10050660
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
cmp dword [ecx], 1
jbe 0x100506f3
mov ebp, 1
mov dword [esp + 0x3c], 4
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, edx
sar eax, 3
cmp edi, eax
jb 0x1005069e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005069a
cmp dword [eax], 0
jne 0x1005069a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100506c4
mov eax, dword [edx + edi*8 + 4]
mov ecx, dword [edx + edi*8]
sub eax, 1
je 0x100506b4
sub eax, 1
jne 0x100506c4
shl ecx, 0x10
jmp 0x100506c4
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
mov edx, dword [edx + 0x88]
mov edx, dword [edx + eax]
call fcn.100313d0
mov ecx, dword [esp + 0x2c]
inc ebp
add dword [esp + 0x3c], 4
add esi, eax
inc edi
cmp ebp, dword [ecx]
jb 0x10050676
mov ebp, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp ebp, eax
jbe 0x10050719
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005072a
cmp dword [eax], 0
jne 0x1005072a
mov dword [eax], 0x82
jmp 0x1005072a
mov eax, dword [esp + 0x20]
mov dword [ecx + ebp*8], esi
mov eax, dword [eax]
mov dword [eax + ebp*8 + 4], 0
mov ecx, dword [esp + 0x2c]
inc ebp
sub edx, 1
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], edx
jne 0x10050612
mov edi, dword [esp + 0x20]
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov edx, dword [esp + 0x38]
sub edx, dword [esp + 0x58]
sub eax, dword [edi]
sar eax, 3
cmp edx, eax
jbe 0x10050781
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005078d
cmp dword [eax], 0
jne 0x1005078d
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax], 0xa1
jmp 0x1004e8ee
lea eax, [edx*8]
sub ecx, eax
mov dword [ebx + 0xc], ecx
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x1004e8ee
mov ebp, dword [esp + 0x30]
mov esi, dword [ebp + 0x284]
cmp edi, 1
jne 0x10053180
test esi, esi
je 0x10053180
cmp ecx, edx
jne 0x100507d7
mov eax, dword [ebx + 4]
test eax, eax
je 0x100507d3
cmp dword [eax], 0
jne 0x100507d3
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10050803
cmp dword [ecx - 4], 2
je 0x100507f3
mov eax, dword [ebx + 4]
test eax, eax
je 0x100507ef
cmp dword [eax], 0
jne 0x100507ef
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x10050803
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
test ecx, ecx
js 0x10053180
mov edx, dword [esi]
lea eax, [edx + ecx]
cmp eax, dword [ebp + 0x28c]
ja 0x10053180
lea eax, [edx*4]
push eax
mov eax, dword [ebp + 0x288]
push dword [esi + 0x88]
lea eax, [eax + ecx*4]
push eax
call fcn.101214b0
mov ebp, dword [esp + 0x30]
add esp, 0xc
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x1004e8ee
cmp edi, 2
jne 0x10053180
cmp ecx, edx
jne 0x10050870
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005086c
cmp dword [eax], 0
jne 0x1005086c
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005089a
lea esi, [ecx - 8]
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005088a
sub eax, 1
jne 0x1005089a
shl esi, 0x10
jmp 0x1005089a
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov ebp, dword [esp + 0x20]
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [ebp]
jne 0x100508bc
mov eax, dword [ebx + 4]
test eax, eax
je 0x100508b8
cmp dword [eax], 0
jne 0x100508b8
mov dword [eax], 0xa1
xor edx, edx
jmp 0x100508e6
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x100508d6
sub eax, 1
jne 0x100508e6
shl edx, 0x10
jmp 0x100508e6
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebp]
mov edi, dword [ebx + 0xc]
lea eax, [eax + ecx*8]
cmp edi, eax
jne 0x10050929
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005093c
cmp dword [eax], 0
jne 0x1005093c
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax], 0x82
mov dword [esp + 0x58], 1
jmp 0x1004e8ee
lea eax, [edx + esi]
mov dword [edi], eax
mov eax, dword [ebx + 0xc]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x58], 1
jmp 0x1004e8ee
cmp edi, 2
jne 0x10053180
cmp ecx, edx
jne 0x10050980
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005097c
cmp dword [eax], 0
jne 0x1005097c
mov dword [eax], 0xa1
xor esi, esi
jmp 0x100509aa
lea esi, [ecx - 8]
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005099a
sub eax, 1
jne 0x100509aa
shl esi, 0x10
jmp 0x100509aa
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov ebp, dword [esp + 0x20]
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [ebp]
jne 0x100509cc
mov eax, dword [ebx + 4]
test eax, eax
je 0x100509c8
cmp dword [eax], 0
jne 0x100509c8
mov dword [eax], 0xa1
xor edx, edx
jmp 0x100509f6
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x100509e6
sub eax, 1
jne 0x100509f6
shl edx, 0x10
jmp 0x100509f6
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebp]
mov edi, dword [ebx + 0xc]
lea eax, [eax + ecx*8]
cmp edi, eax
jne 0x10050a25
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005093c
cmp dword [eax], 0
jne 0x1005093c
mov dword [eax], 0x82
jmp 0x1005093c
sub edx, esi
mov dword [edi], edx
jmp 0x1005092e
cmp edi, 2
jne 0x10053180
cmp ecx, edx
jne 0x10050a51
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050a4d
cmp dword [eax], 0
jne 0x10050a4d
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10050a7b
lea edx, [ecx - 8]
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x10050a6b
sub eax, 1
jne 0x10050a7b
shl edx, 0x10
jmp 0x10050a7b
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov edi, dword [esp + 0x20]
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x10050a9c
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050a98
cmp dword [eax], 0
jne 0x10050a98
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10050ac6
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x10050ab6
sub eax, 1
jne 0x10050ac6
shl ecx, 0x10
jmp 0x10050ac6
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.100313d0
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov esi, dword [ebx + 0xc]
lea ecx, [ecx + edx*8]
cmp esi, ecx
jne 0x10050b09
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050b19
cmp dword [eax], 0
jne 0x10050b19
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax], 0x82
mov dword [esp + 0x58], 1
jmp 0x1004e8ee
mov dword [esi], eax
mov eax, dword [ebx + 0xc]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x58], 1
jmp 0x1004e8ee
cmp edi, 2
jne 0x10053180
cmp ecx, edx
jne 0x10050b59
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050b55
cmp dword [eax], 0
jne 0x10050b55
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10050b83
lea edx, [ecx - 8]
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x10050b73
sub eax, 1
jne 0x10050b83
shl edx, 0x10
jmp 0x10050b83
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov edi, dword [esp + 0x20]
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x10050ba4
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050ba0
cmp dword [eax], 0
jne 0x10050ba0
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10050bce
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x10050bbe
sub eax, 1
jne 0x10050bce
shl ecx, 0x10
jmp 0x10050bce
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test edx, edx
je 0x10053180
call fcn.10039a90
jmp 0x10050acb
cmp edi, 2
jne 0x10053180
mov ebp, dword [esp + 0x30]
cmp dword [ebp + 0x284], 0
je 0x10053180
cmp ecx, edx
jne 0x10050c14
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050c10
cmp dword [eax], 0
jne 0x10050c10
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10050c40
cmp dword [ecx - 4], 2
je 0x10050c30
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050c2c
cmp dword [eax], 0
jne 0x10050c2c
mov dword [eax], 0xa0
xor edx, edx
jmp 0x10050c40
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
test edx, edx
js 0x10053180
cmp edx, dword [ebp + 0x28c]
jae 0x10053180
mov edi, dword [esp + 0x20]
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x10050c89
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050c69
cmp dword [eax], 0
jne 0x10050c69
mov dword [eax], 0xa1
mov eax, dword [ebp + 0x288]
xor ecx, ecx
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov dword [eax + edx*4], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x1004e8ee
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x10050cbf
sub eax, 1
jne 0x10050ccf
mov eax, dword [ebp + 0x288]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
shl ecx, 0x10
mov dword [eax + edx*4], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x1004e8ee
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [ebp + 0x288]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov dword [eax + edx*4], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x1004e8ee
cmp edi, 1
jne 0x10053180
mov ebp, dword [esp + 0x30]
cmp dword [ebp + 0x284], 0
je 0x10053180
cmp ecx, edx
jne 0x10050d21
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050d1d
cmp dword [eax], 0
jne 0x10050d1d
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10050d4d
cmp dword [ecx - 4], 2
je 0x10050d3d
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050d39
cmp dword [eax], 0
jne 0x10050d39
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x10050d4d
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
test ecx, ecx
js 0x10053180
cmp ecx, dword [ebp + 0x28c]
jae 0x10053180
mov eax, dword [ebp + 0x288]
mov edi, dword [esp + 0x20]
mov edx, dword [ebx + 0xc]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebx + 0x10]
mov eax, dword [edi]
lea eax, [eax + ecx*8]
cmp edx, eax
je 0x10050ada
mov dword [edx], esi
jmp 0x10050b0b
cmp edi, 4
jne 0x10053180
cmp ecx, edx
jne 0x10050da3
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050d9f
cmp dword [eax], 0
jne 0x10050d9f
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x10050dcd
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebp, dword [ecx]
sub eax, 1
je 0x10050dbd
sub eax, 1
jne 0x10050dcd
shl ebp, 0x10
jmp 0x10050dcd
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
mov esi, dword [esp + 0x20]
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [esi]
jne 0x10050dee
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050dea
cmp dword [eax], 0
jne 0x10050dea
mov dword [eax], 0xa1
xor edi, edi
jmp 0x10050e18
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x10050e08
sub eax, 1
jne 0x10050e18
shl edi, 0x10
jmp 0x10050e18
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [esi]
jne 0x10050e35
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050e31
cmp dword [eax], 0
jne 0x10050e31
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10050e5f
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x10050e4f
sub eax, 1
jne 0x10050e5f
shl edx, 0x10
jmp 0x10050e5f
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [esi]
jne 0x10050e7c
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050e78
cmp dword [eax], 0
jne 0x10050e78
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10050ea6
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
sub eax, 1
je 0x10050e96
sub eax, 1
jne 0x10050ea6
shl esi, 0x10
jmp 0x10050ea6
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0x10]
mov eax, dword [eax]
lea eax, [eax + ecx*8]
mov ecx, dword [ebx + 0xc]
cmp ecx, eax
jne 0x10050ed8
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005093c
cmp dword [eax], 0
jne 0x1005093c
mov dword [eax], 0x82
jmp 0x1005093c
cmp edi, ebp
cmovle edx, esi
mov dword [ecx], edx
jmp 0x1005092e
test edi, edi
jne 0x10053180
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x20]
mov edx, dword [eax + 0x218]
mov ecx, dword [edx + 0x288]
mov eax, ecx
shl eax, 0xd
movzx esi, cx
xor ecx, eax
mov eax, ecx
inc esi
shr eax, 0x11
xor ecx, eax
mov eax, ecx
shl eax, 5
xor eax, ecx
mov dword [edx + 0x288], eax
mov ecx, dword [ebx + 0x10]
mov eax, dword [edi]
mov edx, dword [ebx + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x10050d79
jmp 0x10050ada
test edi, edi
js 0x10053180
test esi, esi
js 0x10053180
cmp edi, 3
jle 0x10050f57
mov edi, 3
mov dword [esp + 0x60], edi
jmp 0x10050f74
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x60], edi
cmp edi, 1
jl 0x1004e8ea
mov ebp, dword [esp + 0x20]
lea edx, [esp + edi*4 + 0x80]
nop
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebp]
jne 0x10050f9e
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050f9a
cmp dword [eax], 0
jne 0x10050f9a
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10050fc8
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x10050fb8
sub eax, 1
jne 0x10050fc8
shl ecx, 0x10
jmp 0x10050fc8
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov dword [edx], ecx
sub edx, 4
sub edi, 1
jne 0x10050f80
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x1004e8ee
mov ecx, dword [esp + 0x18]
test al, al
je 0x1004e8ee
mov eax, dword [esp + 0x58]
test eax, eax
jle 0x10051009
dec eax
mov dword [esp + 0x58], eax
jmp 0x1004e8ee
mov eax, dword [esp + 0x60]
test eax, eax
je 0x10053180
mov esi, dword [esp + eax*4 + 0x80]
dec eax
mov dword [esp + 0x60], eax
mov ecx, dword [ebx + 0x10]
mov eax, dword [edi]
mov edx, dword [ebx + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
je 0x1004f8d9
mov ecx, dword [esp + 0x18]
mov dword [edx], esi
mov eax, dword [ebx + 0xc]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1004e8ee
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005107f
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x1004e8ee
cmp dword [eax], 0
jne 0x1004e8ee
mov dword [eax], 0xa1
jmp 0x1004e8ee
mov ecx, dword [esp + 0x18]
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x100510ab
mov eax, dword [ebx + 4]
test eax, eax
je 0x100510a7
cmp dword [eax], 0
jne 0x100510a7
mov dword [eax], 0xa1
xor esi, esi
jmp 0x100510cf
cmp dword [eax - 4], 2
je 0x100510c7
mov eax, dword [ebx + 4]
test eax, eax
je 0x100510c3
cmp dword [eax], 0
jne 0x100510c3
mov dword [eax], 0xa0
xor esi, esi
jmp 0x100510cf
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x100510ec
mov eax, dword [ebx + 4]
test eax, eax
je 0x100510e8
cmp dword [eax], 0
jne 0x100510e8
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10051116
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10051106
sub eax, 1
jne 0x10051116
shl ecx, 0x10
jmp 0x10051116
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x14]
cmp esi, 0x1f
ja 0x1004fd11
mov dword [esp + esi*4 + 0x158], ecx
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
jmp 0x1004e8ee
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005115e
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051150
cmp dword [eax], 0
jne 0x10051150
mov dword [eax], 0xa1
xor eax, eax
mov esi, dword [esp + eax*4 + 0x158]
jmp 0x10051021
cmp dword [eax - 4], 2
je 0x10051184
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051176
cmp dword [eax], 0
jne 0x10051176
mov dword [eax], 0xa0
xor eax, eax
mov esi, dword [esp + eax*4 + 0x158]
jmp 0x10051021
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
test eax, eax
js 0x100518cc
cmp eax, 0x20
jge 0x100518cc
mov esi, dword [esp + eax*4 + 0x158]
jmp 0x10051021
mov ebp, dword [ebx + 0xc]
cmp ebp, dword [edi]
jne 0x100511c6
mov eax, dword [ebx + 4]
test eax, eax
je 0x100511c2
cmp dword [eax], 0
jne 0x100511c2
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x100511f1
add ebp, 0xfffffff8
mov dword [ebx + 0xc], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
sub eax, 1
je 0x100511e1
sub eax, 1
jne 0x100511f1
shl ebp, 0x10
jmp 0x100511f1
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005120e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005120a
cmp dword [eax], 0
jne 0x1005120a
mov dword [eax], 0xa1
xor edi, edi
jmp 0x10051238
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x10051228
sub eax, 1
jne 0x10051238
shl edi, 0x10
jmp 0x10051238
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov esi, dword [esp + 0x20]
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [esi]
jne 0x10051259
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051255
cmp dword [eax], 0
jne 0x10051255
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10051283
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x10051273
sub eax, 1
jne 0x10051283
shl edx, 0x10
jmp 0x10051283
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [esi]
jne 0x100512a0
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005129c
cmp dword [eax], 0
jne 0x1005129c
mov dword [eax], 0xa1
xor esi, esi
jmp 0x100512ca
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
sub eax, 1
je 0x100512ba
sub eax, 1
jne 0x100512ca
shl esi, 0x10
jmp 0x100512ca
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0x10]
mov eax, dword [eax]
lea eax, [eax + ecx*8]
mov ecx, dword [ebx + 0xc]
cmp ecx, eax
jne 0x100512ea
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
jmp 0x1004fc6c
cmp edi, ebp
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
cmovle edx, esi
mov esi, dword [esp + 0x1c]
mov dword [ecx], edx
mov eax, dword [ebx + 0xc]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1004e8ee
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0x218]
mov ecx, dword [edx + 0x288]
mov eax, ecx
shl eax, 0xd
movzx esi, cx
xor ecx, eax
mov eax, ecx
inc esi
shr eax, 0x11
xor ecx, eax
mov eax, ecx
shl eax, 5
xor eax, ecx
mov dword [edx + 0x288], eax
mov ecx, dword [ebx + 0x10]
mov eax, dword [edi]
mov edx, dword [ebx + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x10051034
mov eax, dword [ebx + 4]
test eax, eax
je 0x100518c8
cmp dword [eax], 0
jne 0x100518c8
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax], 0x82
mov esi, dword [esp + 0x1c]
jmp 0x1004e8ee
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x100513a2
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005139e
cmp dword [eax], 0
jne 0x1005139e
mov dword [eax], 0xa1
xor edx, edx
jmp 0x100513cc
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x100513bc
sub eax, 1
jne 0x100513cc
shl edx, 0x10
jmp 0x100513cc
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x100513e9
mov eax, dword [ebx + 4]
test eax, eax
je 0x100513e5
cmp dword [eax], 0
jne 0x100513e5
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10051413
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x10051403
sub eax, 1
jne 0x10051413
shl ecx, 0x10
jmp 0x10051413
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.100313d0
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov esi, dword [ebx + 0xc]
lea ecx, [ecx + edx*8]
cmp esi, ecx
jne 0x10050056
mov eax, dword [ebx + 4]
test eax, eax
je 0x100518c8
cmp dword [eax], 0
jne 0x100518c8
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax], 0x82
mov esi, dword [esp + 0x1c]
jmp 0x1004e8ee
mov ebp, dword [ebx + 0xc]
cmp ebp, dword [edi]
jne 0x10051495
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005146f
cmp dword [eax], 0
jne 0x1005146f
mov dword [eax], 0xa1
xor edi, edi
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov ebp, dword [esp + 0x24]
mov eax, dword [eax]
mov esi, dword [esp + 0x1c]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x100514fd
mov edi, dword [esp + 0x20]
jmp 0x1004fc70
add ebp, 0xfffffff8
mov dword [ebx + 0xc], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
sub eax, 1
je 0x100514b0
sub eax, 1
jne 0x100514c0
shl ebp, 0x10
jmp 0x100514c0
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
test ebp, ebp
jle 0x1005146f
mov eax, ebp
mov esi, ebp
sar eax, 1
mov ecx, ebp
cmp ebp, 0xa
cmovge esi, eax
mov edx, esi
call fcn.10039a90
lea edi, [esi + 1]
add edi, eax
sar edi, 1
cmp edi, esi
je 0x10051471
mov edx, edi
mov ecx, ebp
mov esi, edi
call fcn.10039a90
inc edi
add edi, eax
sar edi, 1
cmp edi, esi
jne 0x100514e4
jmp 0x10051471
mov ecx, dword [esp + 0x18]
mov dword [edx], edi
mov eax, dword [ebx + 0xc]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1004e8ee
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005153b
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051537
cmp dword [eax], 0
jne 0x10051537
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10051565
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x10051555
sub eax, 1
jne 0x10051565
shl edx, 0x10
jmp 0x10051565
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov ecx, dword [ebx + 0x10]
mov eax, dword [edi]
mov esi, dword [ebx + 0xc]
lea eax, [eax + ecx*8]
cmp esi, eax
jne 0x10051588
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051598
cmp dword [eax], 0
jne 0x10051598
mov dword [eax], 0x82
jmp 0x10051598
mov dword [esi], edx
mov eax, dword [ebx + 0xc]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
mov ecx, dword [ebx + 0x10]
mov eax, dword [edi]
mov esi, dword [ebx + 0xc]
lea eax, [eax + ecx*8]
cmp esi, eax
jne 0x1005300f
jmp 0x1004f8d9
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x100515cd
mov eax, dword [ebx + 4]
test eax, eax
je 0x100515c9
cmp dword [eax], 0
jne 0x100515c9
mov dword [eax], 0xa1
xor esi, esi
jmp 0x100515f7
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x100515e7
sub eax, 1
jne 0x100515f7
shl esi, 0x10
jmp 0x100515f7
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x10051614
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051610
cmp dword [eax], 0
jne 0x10051610
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005163e
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005162e
sub eax, 1
jne 0x1005163e
shl edx, 0x10
jmp 0x1005163e
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0x10]
mov edi, dword [ebx + 0xc]
mov eax, dword [eax]
lea eax, [eax + ecx*8]
cmp edi, eax
jne 0x10051665
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051675
cmp dword [eax], 0
jne 0x10051675
mov dword [eax], 0x82
jmp 0x10051675
mov dword [edi], esi
mov eax, dword [ebx + 0xc]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
mov edi, dword [esp + 0x20]
mov ecx, dword [ebx + 0x10]
mov esi, dword [ebx + 0xc]
mov eax, dword [edi]
lea eax, [eax + ecx*8]
cmp esi, eax
jne 0x1005300f
jmp 0x1004f8d9
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x100516ae
mov eax, dword [ebx + 4]
test eax, eax
je 0x100516aa
cmp dword [eax], 0
jne 0x100516aa
mov dword [eax], 0xa1
xor edx, edx
jmp 0x100516d2
cmp dword [eax - 4], 2
je 0x100516ca
mov eax, dword [ebx + 4]
test eax, eax
je 0x100516c6
cmp dword [eax], 0
jne 0x100516c6
mov dword [eax], 0xa0
xor edx, edx
jmp 0x100516d2
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
mov eax, dword [ebx + 0xc]
mov esi, dword [edi]
sub eax, esi
mov ecx, dword [esp + 0x18]
sar eax, 3
test eax, eax
je 0x1004e8e0
test edx, edx
jns 0x100516f1
lea ecx, [eax - 1]
jmp 0x10051719
cmp edx, eax
jb 0x10051714
xor ecx, ecx
mov eax, dword [esi + ecx*8 + 4]
mov edx, dword [esi + ecx*8]
sub eax, 1
je 0x10051736
sub eax, 1
jne 0x10051598
shl edx, 0x10
jmp 0x10051598
mov ecx, eax
sub ecx, edx
dec ecx
cmp ecx, eax
jb 0x100516f7
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005172f
cmp dword [eax], 0
jne 0x1005172f
mov dword [eax], 0x82
xor edx, edx
jmp 0x10051598
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
jmp 0x10051598
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x10051768
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051764
cmp dword [eax], 0
jne 0x10051764
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005178c
cmp dword [eax - 4], 2
je 0x10051784
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051780
cmp dword [eax], 0
jne 0x10051780
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x1005178c
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x100517be
mov eax, dword [ebx + 4]
test eax, eax
je 0x100517a5
cmp dword [eax], 0
jne 0x100517a5
mov dword [eax], 0xa1
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 2
jmp 0x1004e8ee
cmp dword [eax - 4], 2
je 0x100517ef
mov eax, dword [ebx + 4]
test eax, eax
je 0x100517d6
cmp dword [eax], 0
jne 0x100517d6
mov dword [eax], 0xa0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 2
jmp 0x1004e8ee
add eax, 0xfffffff8
mov dword [esp + 0x2c], 0
mov dword [ebx + 0xc], eax
mov dword [esp + 0x38], 2
mov edx, dword [eax]
mov dword [esp + 0x3c], edx
cmp edx, 2
jl 0x100518c8
sub eax, dword [edi]
sar eax, 3
cmp edx, eax
jbe 0x10051844
mov eax, dword [ebx + 4]
test eax, eax
je 0x100518c8
cmp dword [eax], 0
jne 0x100518c8
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax], 0x82
jmp 0x1004e8ee
test ecx, ecx
jns 0x10051857
neg ecx
mov eax, ecx
mov ecx, dword [esp + 0x3c]
cdq
idiv ecx
neg edx
jmp 0x10051860
mov eax, ecx
mov ecx, dword [esp + 0x3c]
cdq
idiv ecx
mov dword [esp + 0x48], edx
test edx, edx
je 0x100518c8
or ebp, 0xffffffff
lea eax, [ecx*8]
mov ebx, ecx
mov dword [esp + 0x4c], eax
or esi, ebp
mov dword [esp + 0x50], ebx
lea edi, [ebp - 7]
cmp ebp, esi
jne 0x100518a8
mov eax, dword [esp + 0x20]
inc ebp
mov esi, ebp
mov eax, dword [eax]
lea edi, [ebp*8]
mov ecx, dword [edi + eax]
mov dword [esp + 0x2c], ecx
mov ecx, dword [edi + eax + 4]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x38], ecx
lea ecx, [edx*8]
add esi, edx
add edi, ecx
cmp esi, ebx
jl 0x100518d9
sub esi, ebx
sub edi, eax
jmp 0x100518e1
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
jmp 0x1004e8ee
test esi, esi
jns 0x100518e1
add esi, ebx
add edi, eax
sub dword [esp + 0x3c], 1
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x2c]
mov eax, dword [eax]
mov edx, dword [edi + eax + 4]
mov ecx, dword [edi + eax]
mov dword [edi + eax], ebx
mov ebx, dword [esp + 0x38]
mov dword [edi + eax + 4], ebx
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x2c], ecx
jne 0x10051881
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x1004e8ee
test al, al
je case.0x1004f60e.0
cmp byte [esp + 0x37], 0
je case.0x1004f60e.0
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x10051969
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051965
cmp dword [eax], 0
jne 0x10051965
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10051997
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
mov dword [esp + 0x1c], esi
sub eax, 1
je 0x10051987
sub eax, 1
jne 0x1005199b
shl esi, 0x10
jmp 0x10051997
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov dword [esp + 0x1c], esi
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x3f18], esi
cmp ecx, dword [edi]
jne 0x100519bf
mov eax, dword [ebx + 4]
test eax, eax
je 0x100519bb
cmp dword [eax], 0
jne 0x100519bb
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x100519ed
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebp, dword [ecx]
mov dword [esp + 0x24], ebp
sub eax, 1
je 0x100519dd
sub eax, 1
jne 0x100519f1
shl ebp, 0x10
jmp 0x100519ed
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
mov dword [esp + 0x24], ebp
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x3f14], ebp
mov dword [eax + 0x1d4], 0
mov eax, dword [edi]
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
mov eax, dword [esp + 0x44]
cmp byte [eax + 8], 0
je case.0x1004ea0c.0
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x10051a3f
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051a3b
cmp dword [eax], 0
jne 0x10051a3b
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10051a69
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x10051a59
sub eax, 1
jne 0x10051a69
shl ecx, 0x10
jmp 0x10051a69
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 0x24]
mov dword [eax], ecx
mov eax, dword [edx + 0x24]
mov dword [eax + 4], 0
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x10051a99
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051a95
cmp dword [eax], 0
jne 0x10051a95
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10051ac3
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10051ab3
sub eax, 1
jne 0x10051ac3
shl ecx, 0x10
jmp 0x10051ac3
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x30]
mov byte [esp + 0x2b], 1
mov eax, dword [edx + 0x20]
add dword [eax], ecx
cmp byte [edx + 0x2f], 0
jne 0x100532c9
cmp byte [esp + 0x37], 0
mov edx, dword [esp + 0x14]
je case.0x1004f60e.0
mov eax, dword [edi]
add ebp, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x3f14], ebp
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
mov edi, dword [esp + 0x44]
cmp byte [edi + 8], 0
je 0x1005346b
test ah, ah
jne 0x1005346b
cmp byte [esp + 0x2f68], ah
je 0x10051b93
push dword [esp + 0x2fb4]
mov edx, dword [esp + 0x2fb4]
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x2f6d], 1
call fcn.1004d800
cmp byte [esp + 0x2fb8], 0
je 0x10051b7b
push 1
push dword [esp + 0x2fa0]
lea eax, [esp + 0x2f98]
push dword [esp + 0x2fa0]
lea edx, [esp + 0x1ec]
push eax
lea ecx, [esp + 0x1e8]
call fcn.1004d2a0
mov byte [esp + 0x2f68], 0
mov byte [esp + 0x2f69], 0
mov byte [esp + 0x2fb8], 0
cmp byte [esp + 0x1ec], 0
mov eax, dword [esp + 0x2f74]
mov dword [esp + 0x2fb0], ebp
mov dword [esp + 0x2fa0], ebp
mov dword [esp + 0x2fb4], esi
mov dword [esp + 0x2fa4], esi
mov byte [esp + 0x2f6b], 1
je 0x10051bce
cmp byte [eax + 5], 0
je 0x10051bf2
mov edx, dword [esp + 0x2f6c]
lea ecx, [esp + 0x1e0]
push 0
push dword [esp + 0x2f7c]
push eax
push dword [esp + 0x2f7c]
call fcn.1004c900
mov eax, dword [esp + 0x64]
lea esi, [esp + 0x1e0]
mov ecx, 0x3c7
mov byte [esp + 0x37], 1
lea edi, [esp + 0x10fc]
mov dword [esp + 0xd8], 0
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x18]
xorps xmm0, xmm0
mov dword [esp + 0xf8], 0
movq qword [esp + 0xb8], xmm0
mov dword [esp + 0xc0], 0
movups xmmword [esp + 0xa8], xmm0
mov dword [esp + 0xa8], eax
mov byte [esp + 0xac], 0
mov byte [esp + 0xad], 1
test ecx, ecx
jle 0x10051cb2
mov ebx, dword [esp + 0xa4]
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
mov esi, dword [esp + 0x70]
nop dword [eax]
lea ebp, [ecx - 1]
cmp ebp, eax
jb 0x10051c98
test ebx, ebx
je 0x10051c96
cmp dword [ebx], 0
jne 0x10051c96
mov dword [ebx], 0x82
xor ebp, ebp
imul ebp, edx
dec ecx
add ebp, esi
mov dword [esp + 0x14], ebp
test ecx, ecx
jg 0x10051c80
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov eax, dword [edx + 4]
mov dword [edx + 0xc], eax
mov eax, dword [edi]
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
mov eax, dword [ebx + 0xc]
sub eax, dword [edi]
sar eax, 3
cmp eax, 1
jbe 0x10051ce9
cmp byte [esp + 0xac], 0
jne case.0x1004ea0c.0
mov ecx, dword [esp + 0x44]
lea eax, [esp + 0x2b]
push 0
push eax
push dword [esp + 0x3f24]
lea eax, [esp + 0xd0]
mov edx, ebx
push eax
call fcn.1004dc70
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x224], 0
jne 0x100532c9
cmp byte [esp + 0x2c], 0x13
jne 0x10051d4f
mov eax, dword [esp + 0xd8]
lea ecx, [esp + 0xa8]
add eax, dword [esp + 0xf8]
mov edx, dword [esp + 0x14]
push eax
call fcn.1004dbf0
mov eax, dword [edi]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
push 0xf1c
lea eax, [esp + 0x2fe4]
push 0
push eax
call fcn.10120e50
mov ecx, dword [esp + 0x50]
add esp, 0xc
mov edx, dword [esp + 0x14]
xorps xmm0, xmm0
mov dword [esp + 0x2fe0], ecx
movlpd qword [esp + 0x140], xmm0
mov al, byte [ecx + 0xb8]
mov byte [esp + 0x2fed], al
mov eax, dword [esp + 0x98]
mov dword [esp + 0x2ff0], eax
lea eax, [esp + 0x2018]
mov dword [esp + 0x2fe4], eax
lea eax, [esp + 0x2f34]
mov dword [esp + 0x2fe8], eax
lea eax, [ecx + 4]
mov dword [esp + 0x13c], eax
lea ecx, [esp + 0x13c]
mov eax, dword [esp + 0xd8]
add eax, dword [esp + 0xf8]
push eax
movlpd qword [esp + 0x14c], xmm0
movlpd qword [esp + 0x154], xmm0
call fcn.1004dbf0
push 0
push 0
lea eax, [esp + 0x144]
push eax
lea eax, [esp + 0xd0]
push eax
lea edx, [esp + 0xf4]
lea ecx, [esp + 0x2ff0]
call fcn.1004c900
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
mov eax, dword [ebx + 0xc]
mov edx, dword [edi]
sub eax, edx
sar eax, 3
cmp eax, 2
jbe 0x10051e74
cmp byte [esp + 0x2b], 0
jne 0x10051e74
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10051e52
sub eax, 1
jne 0x10051e62
shl ecx, 0x10
jmp 0x10051e62
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x94]
add eax, ecx
mov ecx, dword [esp + 0x3f1c]
mov dword [ecx], eax
mov eax, dword [esp + 0x30]
mov byte [esp + 0x2b], 1
cmp byte [eax + 0x224], 0
jne 0x100532c9
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x10051eb7
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051ea3
cmp dword [eax], 0
jne 0x10051ea3
mov dword [eax], 0xa1
xor ecx, ecx
add esi, ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3f18], esi
jmp 0x10051f62
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10051ee1
sub eax, 1
jne 0x10051ef1
shl ecx, 0x10
add esi, ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3f18], esi
jmp 0x10051f62
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
add esi, ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3f18], esi
jmp 0x10051f62
mov eax, dword [ebx + 0xc]
mov edx, dword [edi]
sub eax, edx
sar eax, 3
cmp eax, 1
jbe 0x10051f4c
cmp byte [esp + 0x2b], 0
jne 0x10051f4c
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10051f2a
sub eax, 1
jne 0x10051f3a
shl ecx, 0x10
jmp 0x10051f3a
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x94]
add eax, ecx
mov ecx, dword [esp + 0x3f1c]
mov dword [ecx], eax
mov eax, dword [esp + 0x30]
mov byte [esp + 0x2b], 1
cmp byte [eax + 0x224], 0
jne 0x100532c9
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x10051f7f
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051f7b
cmp dword [eax], 0
jne 0x10051f7b
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10051fa9
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10051f99
sub eax, 1
jne 0x10051fa9
shl ecx, 0x10
jmp 0x10051fa9
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
add ebp, ecx
mov dword [esp + 0x3f14], ebp
mov dword [esp + 0x24], ebp
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x1d4], 0
jne 0x100520bc
cmp byte [esp + 0x2f68], 0
je 0x10052040
push dword [esp + 0x2fb4]
mov edx, dword [esp + 0x2fb4]
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x2f6d], 1
call fcn.1004d800
cmp byte [esp + 0x2fb8], 0
je 0x10052028
push 1
push dword [esp + 0x2fa0]
lea eax, [esp + 0x2f98]
push dword [esp + 0x2fa0]
lea edx, [esp + 0x1ec]
push eax
lea ecx, [esp + 0x1e8]
call fcn.1004d2a0
mov byte [esp + 0x2f68], 0
mov byte [esp + 0x2f69], 0
mov byte [esp + 0x2fb8], 0
cmp byte [esp + 0x1ec], 0
mov eax, dword [esp + 0x2f74]
mov dword [esp + 0x2fb0], ebp
mov dword [esp + 0x2fa0], ebp
mov dword [esp + 0x2fb4], esi
mov dword [esp + 0x2fa4], esi
mov byte [esp + 0x2f6b], 1
je 0x1005207b
cmp byte [eax + 5], 0
je 0x1005209f
mov edx, dword [esp + 0x2f6c]
lea ecx, [esp + 0x1e0]
push 0
push dword [esp + 0x2f7c]
push eax
push dword [esp + 0x2f7c]
call fcn.1004c900
mov ecx, 0x3c7
lea edi, [esp + 0x10fc]
lea esi, [esp + 0x1e0]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov eax, dword [edi]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
mov ebp, dword [ebx + 0xc]
xor esi, esi
sub ebp, dword [edi]
sar ebp, 3
mov dword [esp + 0x48], ebp
cmp ebp, 6
jbe 0x100521d1
lea edi, [esi + 6]
nop dword [eax + eax]
mov edx, dword [esp + 0x20]
mov eax, dword [ebx + 0xc]
mov ecx, dword [edx]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x10052118
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052114
cmp dword [eax], 0
jne 0x10052114
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005213e
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x1005212e
sub eax, 1
jne 0x1005213e
shl ecx, 0x10
jmp 0x1005213e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x24]
mov edx, dword [edx]
add eax, ecx
mov ecx, dword [ebx + 0xc]
sub ecx, edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x3f14], eax
lea eax, [edi - 5]
sar ecx, 3
cmp eax, ecx
jb 0x10052176
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052172
cmp dword [eax], 0
jne 0x10052172
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005219d
mov eax, dword [edx + esi*8 + 0xc]
mov ecx, dword [edx + esi*8 + 8]
sub eax, 1
je 0x1005218d
sub eax, 1
jne 0x1005219d
shl ecx, 0x10
jmp 0x1005219d
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
add eax, ecx
push eax
lea ecx, [esp + 0x1dc]
mov dword [esp + 0x20], eax
mov dword [esp + 0x3f1c], eax
call fcn.1004d800
add edi, 2
add esi, 2
cmp edi, ebp
jb 0x100520f0
mov edi, dword [esp + 0x20]
cmp esi, ebp
mov ebp, dword [esp + 0x24]
jae 0x100528f2
add esi, 2
mov ecx, dword [ebx + 0xc]
lea eax, [esi - 2]
mov edx, dword [edi]
sub ecx, edx
sar ecx, 3
cmp eax, ecx
jb 0x10052207
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052203
cmp dword [eax], 0
jne 0x10052203
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005222e
mov eax, dword [edx + esi*8 - 0xc]
mov ecx, dword [edx + esi*8 - 0x10]
sub eax, 1
je 0x1005221e
sub eax, 1
jne 0x1005222e
shl ecx, 0x10
jmp 0x1005222e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [edi]
lea eax, [esi - 1]
add ebp, ecx
mov ecx, dword [ebx + 0xc]
sub ecx, edx
mov dword [esp + 0x4c], ebp
sar ecx, 3
cmp eax, ecx
jb 0x1005225b
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052257
cmp dword [eax], 0
jne 0x10052257
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10052282
mov eax, dword [edx + esi*8 - 4]
mov ecx, dword [edx + esi*8 - 8]
sub eax, 1
je 0x10052272
sub eax, 1
jne 0x10052282
shl ecx, 0x10
jmp 0x10052282
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov eax, dword [ebx + 0xc]
add edi, ecx
mov dword [esp + 0x50], edi
mov ecx, dword [edx]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x100522b4
mov eax, dword [ebx + 4]
test eax, eax
je 0x100522b0
cmp dword [eax], 0
jne 0x100522b0
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100522da
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x100522ca
sub eax, 1
jne 0x100522da
shl ecx, 0x10
jmp 0x100522da
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [edx]
lea eax, [esi + 1]
add ebp, ecx
mov ecx, dword [ebx + 0xc]
sub ecx, edx
sar ecx, 3
cmp eax, ecx
jb 0x10052303
mov eax, dword [ebx + 4]
test eax, eax
je 0x100522ff
cmp dword [eax], 0
jne 0x100522ff
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005232a
mov eax, dword [edx + esi*8 + 0xc]
mov ecx, dword [edx + esi*8 + 8]
sub eax, 1
je 0x1005231a
sub eax, 1
jne 0x1005232a
shl ecx, 0x10
jmp 0x1005232a
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x20]
add edi, ecx
mov ecx, dword [ebx + 0xc]
mov edx, dword [eax]
sub ecx, edx
sar ecx, 3
lea eax, [esi + 2]
cmp eax, ecx
jb 0x10052357
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052353
cmp dword [eax], 0
jne 0x10052353
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005237e
mov eax, dword [edx + esi*8 + 0x14]
mov ecx, dword [edx + esi*8 + 0x10]
sub eax, 1
je 0x1005236e
sub eax, 1
jne 0x1005237e
shl ecx, 0x10
jmp 0x1005237e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [ecx + ebp]
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
sub ecx, edx
sar ecx, 3
lea eax, [esi + 3]
cmp eax, ecx
jb 0x100523b0
mov eax, dword [ebx + 4]
test eax, eax
je 0x100523ac
cmp dword [eax], 0
jne 0x100523ac
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100523d7
mov eax, dword [edx + esi*8 + 0x1c]
mov ecx, dword [edx + esi*8 + 0x18]
sub eax, 1
je 0x100523c7
sub eax, 1
jne 0x100523d7
shl ecx, 0x10
jmp 0x100523d7
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x4c]
lea eax, [edi + ecx]
push eax
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x1dc]
mov eax, dword [esp + 0x28]
push eax
push edi
push ebp
push dword [esp + 0x60]
call fcn.1004d980
mov eax, dword [esp + 0x1c]
add esi, 6
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x3f18], eax
lea eax, [esi - 2]
mov dword [esp + 0x3f14], ebp
cmp eax, dword [esp + 0x48]
jb 0x100521e0
jmp 0x100528ee
mov esi, dword [ebx + 0xc]
sub esi, dword [edi]
sar esi, 3
mov ecx, esi
and ecx, 0xfffffffd
sub esi, ecx
mov dword [esp + 0x50], ecx
cmp esi, ecx
jae 0x100528f2
lea eax, [esi + 3]
lea edi, [esi + 2]
mov dword [esp + 0x2c], eax
lea edx, [esi + 1]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], edx
nop dword [eax]
sub ecx, esi
test cl, 1
je 0x100524c6
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x1005248f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005248b
cmp dword [eax], 0
jne 0x1005248b
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100524b5
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x100524a5
sub eax, 1
jne 0x100524b5
shl ecx, 0x10
jmp 0x100524b5
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
inc edx
inc edi
add ebp, ecx
mov dword [esp + 0x38], edx
inc esi
mov dword [esp + 0x3c], edi
inc dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x100524ee
mov eax, dword [ebx + 4]
test eax, eax
je 0x100524ea
cmp dword [eax], 0
jne 0x100524ea
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10052514
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x10052504
sub eax, 1
jne 0x10052514
shl ecx, 0x10
jmp 0x10052514
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
add edi, ecx
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp edx, eax
jb 0x10052542
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005253e
cmp dword [eax], 0
jne 0x1005253e
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10052568
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x10052558
sub eax, 1
jne 0x10052568
shl ecx, 0x10
jmp 0x10052568
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x3c]
lea eax, [ecx + ebp]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp edx, eax
jb 0x1005259b
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052597
cmp dword [eax], 0
jne 0x10052597
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100525c1
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x100525b1
sub eax, 1
jne 0x100525c1
shl ecx, 0x10
jmp 0x100525c1
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x20]
lea edx, [edi + ecx]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x2c], eax
jb 0x100525ee
mov eax, dword [ebx + 4]
test eax, eax
je 0x100525ea
cmp dword [eax], 0
jne 0x100525ea
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10052623
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1005260c
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x10052623
shl ecx, 0x10
jmp 0x10052623
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [edx + ecx]
push eax
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x1dc]
mov eax, dword [esp + 0x28]
push eax
push edx
push eax
push edi
mov edx, ebp
call fcn.1004d980
mov edx, dword [esp + 0x38]
add esi, 4
mov edi, dword [esp + 0x3c]
add edx, 4
add dword [esp + 0x2c], 4
add edi, 4
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3f14], ebp
mov dword [esp + 0x3f18], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], edi
cmp esi, ecx
jb 0x10052460
jmp 0x100528ee
mov esi, dword [ebx + 0xc]
sub esi, dword [edi]
sar esi, 3
mov ecx, esi
and ecx, 0xfffffffd
sub esi, ecx
mov dword [esp + 0x50], ecx
cmp esi, ecx
jae 0x100528f2
lea eax, [esi + 3]
lea edi, [esi + 2]
mov dword [esp + 0x2c], eax
lea edx, [esi + 1]
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edx
sub ecx, esi
test cl, 1
je 0x10052722
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x100526e5
mov eax, dword [ebx + 4]
test eax, eax
je 0x100526e1
cmp dword [eax], 0
jne 0x100526e1
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005270b
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x100526fb
sub eax, 1
jne 0x1005270b
shl ecx, 0x10
jmp 0x1005270b
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebp, dword [esp + 0x1c]
inc edx
inc edi
mov dword [esp + 0x3c], edx
add ebp, ecx
mov dword [esp + 0x38], edi
inc esi
inc dword [esp + 0x2c]
jmp 0x10052726
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x1005274e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005274a
cmp dword [eax], 0
jne 0x1005274a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10052774
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x10052764
sub eax, 1
jne 0x10052774
shl ecx, 0x10
jmp 0x10052774
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
add edi, ecx
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp edx, eax
jb 0x100527a2
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005279e
cmp dword [eax], 0
jne 0x1005279e
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100527c8
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x100527b8
sub eax, 1
jne 0x100527c8
shl ecx, 0x10
jmp 0x100527c8
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x20]
lea edx, [edi + ecx]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x38], eax
jb 0x100527f5
mov eax, dword [ebx + 4]
test eax, eax
je 0x100527f1
cmp dword [eax], 0
jne 0x100527f1
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005282a
mov eax, dword [esp + 0x38]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10052813
sub eax, 1
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
jne 0x1005282a
shl ecx, 0x10
jmp 0x1005282a
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [ecx + ebp]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x2c], eax
jb 0x1005285b
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052857
cmp dword [eax], 0
jne 0x10052857
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10052890
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10052879
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x10052890
shl ecx, 0x10
jmp 0x10052890
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [edx + ecx]
mov ecx, dword [esp + 0x1c]
push ecx
push eax
push ecx
push edx
push ebp
mov edx, edi
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x1ec]
call fcn.1004d980
mov edx, dword [esp + 0x3c]
add esi, 4
mov edi, dword [esp + 0x38]
add edx, 4
add dword [esp + 0x2c], 4
add edi, 4
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3f14], ebp
mov dword [esp + 0x3f18], eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], edi
cmp esi, ecx
jb 0x100526b6
mov edi, dword [esp + 0x20]
mov eax, dword [edi]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
mov eax, dword [esp + 0x20]
mov edi, dword [ebx + 0xc]
sub edi, dword [eax]
sar edi, 3
cmp byte [esp + 0x2c], 0x1f
mov eax, edi
sete dl
and eax, 0xfffffffd
sub edi, eax
mov dword [esp + 0x4c], eax
cmp edi, eax
jae 0x10052d9c
lea eax, [edi + 4]
mov dword [esp + 0x2c], eax
lea ebp, [edi + 1]
lea eax, [edi + 3]
mov dword [esp + 0x38], eax
lea eax, [edi + 2]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
test dl, dl
je 0x10052b5b
cmp edi, eax
jb 0x10052977
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052973
cmp dword [eax], 0
jne 0x10052973
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005299d
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x1005298d
sub eax, 1
jne 0x1005299d
shl ecx, 0x10
jmp 0x1005299d
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], edx
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp ebp, eax
jb 0x100529d3
mov eax, dword [ebx + 4]
test eax, eax
je 0x100529cf
cmp dword [eax], 0
jne 0x100529cf
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100529f9
mov eax, dword [ecx + ebp*8 + 4]
mov ecx, dword [ecx + ebp*8]
sub eax, 1
je 0x100529e9
sub eax, 1
jne 0x100529f9
shl ecx, 0x10
jmp 0x100529f9
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x20]
lea esi, [edx + ecx]
mov edx, dword [esp + 0x3c]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp edx, eax
jb 0x10052a28
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052a24
cmp dword [eax], 0
jne 0x10052a24
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10052a4e
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x10052a3e
sub eax, 1
jne 0x10052a4e
shl ecx, 0x10
jmp 0x10052a4e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
add edx, ecx
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x38], eax
jb 0x10052a7e
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052a7a
cmp dword [eax], 0
jne 0x10052a7a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10052ab3
mov eax, dword [esp + 0x38]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10052a9c
sub eax, 1
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
jne 0x10052ab3
shl ecx, 0x10
jmp 0x10052ab3
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [edx + ecx]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x4c]
sub eax, edi
cmp eax, 5
jne 0x10052b4c
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x2c], eax
jb 0x10052af3
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052aef
cmp dword [eax], 0
jne 0x10052aef
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10052b28
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10052b11
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x10052b28
shl ecx, 0x10
jmp 0x10052b28
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x3c]
add ecx, esi
inc dword [esp + 0x38]
inc eax
inc dword [esp + 0x2c]
inc edi
inc ebp
mov dword [esp + 0x3c], eax
xor al, al
mov dword [esp + 0x24], ecx
mov byte [esp + 0x43], al
jmp 0x10052d42
xor al, al
mov dword [esp + 0x24], esi
mov byte [esp + 0x43], al
jmp 0x10052d42
mov edx, dword [esp + 0x24]
mov dword [esp + 0x50], edx
cmp edi, eax
jb 0x10052b7d
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052b79
cmp dword [eax], 0
jne 0x10052b79
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10052ba3
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x10052b93
sub eax, 1
jne 0x10052ba3
shl ecx, 0x10
jmp 0x10052ba3
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [ecx + esi]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp ebp, eax
jb 0x10052bd2
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052bce
cmp dword [eax], 0
jne 0x10052bce
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10052bf8
mov eax, dword [ecx + ebp*8 + 4]
mov ecx, dword [ecx + ebp*8]
sub eax, 1
je 0x10052be8
sub eax, 1
jne 0x10052bf8
shl ecx, 0x10
jmp 0x10052bf8
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x20]
lea esi, [ecx + edx]
mov edx, dword [esp + 0x3c]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp edx, eax
jb 0x10052c27
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052c23
cmp dword [eax], 0
jne 0x10052c23
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10052c4d
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x10052c3d
sub eax, 1
jne 0x10052c4d
shl ecx, 0x10
jmp 0x10052c4d
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x48]
add edx, ecx
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x38], eax
jb 0x10052c7d
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052c79
cmp dword [eax], 0
jne 0x10052c79
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10052cb2
mov eax, dword [esp + 0x38]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10052c9b
sub eax, 1
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
jne 0x10052cb2
shl ecx, 0x10
jmp 0x10052cb2
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [esi + ecx]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x4c]
sub eax, edi
cmp eax, 5
jne 0x10052d39
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x2c], eax
jb 0x10052cee
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052cea
cmp dword [eax], 0
jne 0x10052cea
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10052d23
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10052d0c
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x10052d23
shl ecx, 0x10
jmp 0x10052d23
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
inc dword [esp + 0x3c]
add ecx, edx
inc dword [esp + 0x38]
inc edi
inc ebp
mov dword [esp + 0x1c], ecx
inc dword [esp + 0x2c]
jmp 0x10052d3d
mov dword [esp + 0x1c], edx
mov byte [esp + 0x43], 1
push dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x1dc]
push eax
push edx
mov edx, dword [esp + 0x5c]
push esi
push dword [esp + 0x58]
call fcn.1004d980
add dword [esp + 0x3c], 4
add edi, 4
add dword [esp + 0x38], 4
add ebp, 4
add dword [esp + 0x2c], 4
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov dl, byte [esp + 0x43]
mov dword [esp + 0x3f14], eax
mov dword [esp + 0x3f18], esi
cmp edi, dword [esp + 0x4c]
jb 0x10052947
mov ebp, eax
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [edi]
mov dword [ebx + 0xc], eax
jmp 0x1004e8ee
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x10052dc9
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx edx, cl
jmp 0x10052ddc
mov eax, dword [esi]
test eax, eax
je 0x10052dda
cmp dword [eax], 0
jne 0x10052dda
mov dword [eax], 0x55
xor edx, edx
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x10052dfa
mov cl, byte [eax]
inc eax
shl edx, 8
mov dword [esi + 0xc], eax
movzx eax, cl
movsx edx, dx
or edx, eax
jmp 0x1004f8c6
mov eax, dword [esi]
test eax, eax
je 0x10052e0b
cmp dword [eax], 0
jne 0x10052e0b
mov dword [eax], 0x55
shl edx, 8
xor eax, eax
movsx edx, dx
or edx, eax
jmp 0x1004f8c6
mov ecx, dword [esp + 0x18]
mov dword [esi], edx
mov eax, dword [ebx + 0xc]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [eax + 4], 2
add dword [ebx + 0xc], 8
jmp 0x1004e8ee
cmp byte [esp + 0x2c], 0xf6
ja 0x10052e60
lea esi, [edx - 0x8b]
mov ecx, dword [ebx + 0x10]
mov eax, dword [edi]
mov edx, dword [ebx + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x10052ef0
jmp 0x1004f8d9
cmp byte [esp + 0x2c], 0xfa
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
ja 0x10052ea8
shl edx, 8
cmp eax, ecx
jae 0x10052e8b
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx eax, cl
lea esi, [eax - 0xf694]
add esi, edx
jmp 0x10052e48
mov eax, dword [esi]
test eax, eax
je 0x10052e9c
cmp dword [eax], 0
jne 0x10052e9c
mov dword [eax], 0x55
xor eax, eax
lea esi, [eax - 0xf694]
add esi, edx
jmp 0x10052e48
cmp byte [esp + 0x2c], 0xfe
ja 0x10052f11
shl edx, 8
cmp eax, ecx
jae 0x10052ec1
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx eax, cl
jmp 0x10052ed4
mov eax, dword [esi]
test eax, eax
je 0x10052ed2
cmp dword [eax], 0
jne 0x10052ed2
mov dword [eax], 0x55
xor eax, eax
mov ecx, dword [ebx + 0x10]
mov esi, 0xfa94
sub esi, eax
mov eax, dword [edi]
sub esi, edx
mov edx, dword [ebx + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
je 0x1004f8d9
mov ecx, dword [esp + 0x18]
mov dword [edx], esi
mov eax, dword [ebx + 0xc]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [eax + 4], 2
add dword [ebx + 0xc], 8
jmp 0x1004e8ee
cmp eax, ecx
jae 0x10052f20
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx edx, cl
jmp 0x10052f33
mov eax, dword [esi]
test eax, eax
je 0x10052f31
cmp dword [eax], 0
jne 0x10052f31
mov dword [eax], 0x55
xor edx, edx
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x10052f46
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx edi, cl
jmp 0x10052f59
mov eax, dword [esi]
test eax, eax
je 0x10052f57
cmp dword [eax], 0
jne 0x10052f57
mov dword [eax], 0x55
xor edi, edi
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x10052f6c
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx esi, cl
jmp 0x10052f7f
mov eax, dword [esi]
test eax, eax
je 0x10052f7d
cmp dword [eax], 0
jne 0x10052f7d
mov dword [eax], 0x55
xor esi, esi
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 8]
jae 0x10052f9e
mov ebp, dword [esp + 0x14]
mov cl, byte [eax]
inc eax
mov dword [ebp + 0xc], eax
mov ebp, dword [esp + 0x24]
movzx eax, cl
jmp 0x10052fb1
mov eax, dword [ecx]
test eax, eax
je 0x10052faf
cmp dword [eax], 0
jne 0x10052faf
mov dword [eax], 0x55
xor eax, eax
shl edx, 8
or edx, edi
shl edx, 8
or edx, esi
shl edx, 8
or edx, eax
mov eax, dword [esp + 0x44]
cmp byte [eax + 8], 0
je 0x10052ff8
cmp edx, 0x7d00
jg 0x10052fda
cmp edx, 0xffff8300
jge 0x10052fef
mov ecx, dword [esp + 0x5c]
test cl, cl
movzx eax, cl
mov ecx, 1
cmove eax, ecx
mov byte [esp + 0x5c], al
mov edi, dword [esp + 0x20]
jmp 0x1004f8c6
mov edi, dword [esp + 0x20]
mov ecx, dword [ebx + 0x10]
mov esi, dword [ebx + 0xc]
mov eax, dword [edi]
lea eax, [eax + ecx*8]
cmp esi, eax
je 0x1004f8d9
mov ecx, dword [esp + 0x18]
mov dword [esi], edx
mov eax, dword [ebx + 0xc]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1004e8ee
cmp dword [eax - 4], 2
je 0x1005304c
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053048
cmp dword [eax], 0
jne 0x10053048
mov dword [eax], 0xa0
xor edx, edx
jmp 0x10053054
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x3c], edx
cmp eax, dword [ebx + 8]
jne 0x10053076
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053072
cmp dword [eax], 0
jne 0x10053072
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005309a
cmp dword [eax - 4], 2
je 0x10053092
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005308e
cmp dword [eax], 0
jne 0x1005308e
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x1005309a
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x5c], ecx
cmp eax, dword [ebx + 8]
jne 0x100530bc
mov eax, dword [ebx + 4]
test eax, eax
je 0x100530b8
cmp dword [eax], 0
jne 0x100530b8
mov dword [eax], 0xa1
xor edi, edi
jmp 0x100530e6
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x100530d6
sub eax, 1
jne 0x100530e6
shl edi, 0x10
jmp 0x100530e6
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jne 0x10053104
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053100
cmp dword [eax], 0
jne 0x10053100
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005312e
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1005311e
sub eax, 1
jne 0x1005312e
shl esi, 0x10
jmp 0x1005312e
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jne 0x1005314c
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053148
cmp dword [eax], 0
jne 0x10053148
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x10053176
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ebp, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x10053166
sub eax, 1
jne 0x10053176
shl ebp, 0x10
jmp 0x10053176
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
cmp byte [esp + 0x3f10], 0
je 0x1005318a
mov eax, 0x12
jmp 0x10053796
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x2f], 0
je 0x1005319e
mov eax, 0x12
jmp 0x10053796
cmp dword [eax + 0x244], 0
jne 0x100531c5
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x80]
cmp dword [eax + 0x34], 0
jne 0x100531c1
mov eax, 0x12
jmp 0x10053796
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x20]
add esi, dword [eax]
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x80]
cmp dword [eax + 0x34], 0
jne 0x100531fc
mov edx, ecx
mov ecx, dword [esp + 0x30]
call fcn.1004a490
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x5c], eax
call fcn.1004a490
mov edx, eax
mov dword [esp + 0x3c], edx
cmp dword [esp + 0x5c], 0
jl 0x10053180
test edx, edx
js 0x10053180
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x2e], 0
je 0x100532d2
mov eax, dword [eax + 8]
mov edx, 2
mov dword [esp + 0x7c], eax
mov eax, dword [eax + 0x9c]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x50], eax
call fcn.1003a680
test eax, eax
jne 0x10053796
mov ecx, dword [esp + 0x50]
sub esi, ebp
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x3c]
mov ecx, dword [ecx + 0x58]
mov dword [ecx], eax
mov eax, 0x202
mov word [ecx + 4], ax
mov eax, 2
mov word [ecx + 0x24], ax
mov eax, esi
shr eax, 0x1f
sub esi, eax
mov dword [ecx + 0x20], edx
mov edx, dword [esp + 0x50]
mov eax, edi
shr eax, 0x1f
add esi, 0x8000
sub edi, eax
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
add edi, 0x8000
sar esi, 0x10
mov dword [ecx + 0x28], esi
sar edi, 0x10
mov dword [ecx + 0x2c], edi
mov ecx, dword [esp + 0x7c]
mov dword [ecx + 0x80], 2
mov eax, dword [edx + 0x34]
mov dword [ecx + 0x84], eax
mov dword [ecx + 0x48], 0x636f6d70
mov dword [edx + 0x54], 2
mov eax, dword [esp + 0x6c]
jmp 0x10053796
mov ecx, dword [eax + 0xc]
call fcn.1003a7d0
mov edx, dword [esp + 0x5c]
lea eax, [esp + 0x84]
mov ecx, dword [esp + 0x30]
push eax
call fcn.1004c320
test eax, eax
jne 0x10053796
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 0x20]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x78], eax
mov eax, dword [edx + 0x24]
lea edx, [esp + 0x84]
mov dword [esp + 0x50], ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x48], eax
lea eax, [esp + 0x74]
push eax
push 0
push 0
push 1
push dword [esp + 0x3f1c]
mov dword [esp + 0x60], ecx
push dword [esp + 0x3f1c]
mov ecx, dword [esp + 0x5c]
call fcn.1004e360
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x30]
sub eax, ecx
mov dword [esp + 0x80], eax
mov dword [esp + 0x7c], ecx
mov eax, dword [edx + 4]
mov eax, dword [eax + 0x80]
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x10053385
mov eax, dword [ecx]
lea edx, [esp + 0x7c]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 4]
call eax
mov edx, dword [esp + 0x30]
cmp byte [esp + 0x2b], 0
jne 0x100533ac
mov eax, dword [edx + 0x20]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x78], eax
mov eax, dword [edx + 0x24]
mov dword [esp + 0x50], ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], eax
mov eax, dword [edx + 0x20]
mov ecx, dword [esp + 0x30]
mov dword [eax], 0
mov eax, dword [edx + 0x20]
mov edx, dword [esp + 0x3c]
mov dword [eax + 4], 0
lea eax, [esp + 0x84]
push eax
call fcn.1004c320
test eax, eax
jne 0x10053796
mov ecx, dword [esp + 0x44]
lea eax, [esp + 0x74]
push eax
push edi
sub esi, ebp
lea edx, [esp + 0x8c]
push esi
push 1
push dword [esp + 0x3f1c]
push dword [esp + 0x3f1c]
call fcn.1004e360
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
mov ebp, dword [esp + 0x30]
sub eax, ecx
mov dword [esp + 0x80], eax
mov dword [esp + 0x7c], ecx
mov eax, dword [ebp + 4]
mov eax, dword [eax + 0x80]
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x10053442
mov eax, dword [ecx]
lea edx, [esp + 0x7c]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 4]
call eax
mov eax, dword [ebp + 0x20]
mov ecx, dword [esp + 0x50]
mov dword [eax], ecx
mov ecx, dword [esp + 0x78]
mov dword [eax + 4], ecx
mov eax, dword [ebp + 0x24]
mov ecx, dword [esp + 0x4c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x48]
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x6c]
jmp 0x10053796
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
je 0x10053480
cmp eax, 5
jne 0x100534d7
cmp byte [esp + 0x2b], 0
jne 0x100534d7
test eax, eax
jne 0x100534a1
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005349d
cmp dword [eax], 0
jne 0x1005349d
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100534c5
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x100534b5
sub eax, 1
jne 0x100534c5
shl ecx, 0x10
jmp 0x100534c5
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x94]
add eax, ecx
mov ecx, dword [esp + 0x3f1c]
mov dword [ecx], eax
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x224], 0
jne 0x100532c9
cmp byte [esp + 0x2f68], 0
je 0x10053569
push dword [esp + 0x2fb4]
mov edx, dword [esp + 0x2fb4]
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x2f6d], 1
call fcn.1004d800
cmp byte [esp + 0x2fb8], 0
je 0x10053549
push 1
push dword [esp + 0x2fa0]
lea eax, [esp + 0x2f98]
push dword [esp + 0x2fa0]
lea edx, [esp + 0x1ec]
push eax
lea ecx, [esp + 0x1e8]
call fcn.1004d2a0
mov byte [esp + 0x2f6b], 1
mov byte [esp + 0x2f68], 0
mov byte [esp + 0x2f69], 0
mov byte [esp + 0x2fb8], 0
cmp byte [edi + 9], 0
jne 0x100532c9
cmp byte [edi + 8], 0
jne 0x100532c9
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov edx, dword [ebx + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
jbe 0x100532c9
cmp byte [esp + 0x3f10], 0
je 0x100535a7
mov eax, 0x12
jmp 0x10053796
cmp ecx, edx
jne 0x100535c1
mov eax, dword [ebx + 4]
test eax, eax
je 0x100535bd
cmp dword [eax], 0
jne 0x100535bd
mov dword [eax], 0xa1
xor edx, edx
jmp 0x100535e5
cmp dword [ecx - 4], 2
je 0x100535dd
mov eax, dword [ebx + 4]
test eax, eax
je 0x100535d9
cmp dword [eax], 0
jne 0x100535d9
mov dword [eax], 0xa0
xor edx, edx
jmp 0x100535e5
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jne 0x10053603
mov eax, dword [ebx + 4]
test eax, eax
je 0x100535ff
cmp dword [eax], 0
jne 0x100535ff
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x10053627
cmp dword [eax - 4], 2
je 0x1005361f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005361b
cmp dword [eax], 0
jne 0x1005361b
mov dword [eax], 0xa0
xor ebp, ebp
jmp 0x10053627
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ebp, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jne 0x10053645
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053641
cmp dword [eax], 0
jne 0x10053641
mov dword [eax], 0xa1
xor edi, edi
jmp 0x1005366f
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1005365f
sub eax, 1
jne 0x1005366f
shl edi, 0x10
jmp 0x1005366f
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jne 0x1005368d
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053689
cmp dword [eax], 0
jne 0x10053689
mov dword [eax], 0xa1
xor esi, esi
jmp 0x100536b7
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x100536a7
sub eax, 1
jne 0x100536b7
shl esi, 0x10
jmp 0x100536b7
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x84]
push eax
call fcn.1004c260
test eax, eax
jne 0x10053796
lea eax, [esp + 0x7c]
push eax
push edi
mov edi, dword [esp + 0x4c]
lea edx, [esp + 0x8c]
push esi
push 1
push dword [esp + 0x3f1c]
mov ecx, edi
push dword [esp + 0x3f1c]
call fcn.1004e360
mov eax, dword [esp + 0x8c]
lea edx, [esp + 0x88]
mov esi, dword [esp + 0x30]
sub eax, dword [esp + 0x88]
push eax
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0x258]
call eax
lea eax, [esp + 0x84]
mov edx, ebp
push eax
mov ecx, esi
call fcn.1004c260
test eax, eax
jne 0x10053796
lea eax, [esp + 0x7c]
mov ecx, edi
push eax
push 0
push 0
push 1
push dword [esp + 0x3f1c]
lea edx, [esp + 0x98]
push dword [esp + 0x3f1c]
call fcn.1004e360
mov eax, dword [esp + 0x8c]
lea edx, [esp + 0x88]
sub eax, dword [esp + 0x88]
mov ecx, dword [esi + 4]
push eax
mov eax, dword [esi + 0x258]
call eax
mov eax, dword [esp + 0x6c]
jmp 0x10053796
mov dword [ebx + 8], 0
mov eax, dword [edi + 8]
mov edx, ebx
mov ecx, edi
call eax
xor ebx, ebx
lea eax, [ebx + 0x40]
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x100537a5
cmp dword [ecx], 0
jne 0x100537a5
mov dword [ecx], eax
mov edx, dword [esp + 0x2f50]
mov dword [esp + 0x2f40], 0
mov dword [esp + 0x2f48], 0
mov dword [esp + 0x2f4c], 0
test edx, edx
je 0x100537df
mov eax, dword [esp + 0x2f34]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x2f50], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
test edx, edx
je 0x10053824
mov eax, dword [esp + 0xc4]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
mov edx, dword [esp + 0x100]
mov dword [esp + 0xe0], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
test edx, edx
je 0x10053869
mov eax, dword [esp + 0xe4]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x100], 0
test eax, eax
je 0x1005388c
mov edx, eax
mov eax, dword [esp + 0x104]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
test ebx, ebx
je 0x100538b0
mov edx, dword [ebx + 8]
mov edi, dword [ebx]
test edx, edx
je 0x100538a0
mov eax, dword [edi + 8]
mov ecx, edi
call eax
mov dword [ebx + 8], 0
mov edx, ebx
mov eax, dword [edi + 8]
mov ecx, edi
call eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3ef4
ret 0x18