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

Disassembly:
mov eax, 0x3ef4
call fcn.10127eb0
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x54], 0
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
push 0
mov dword [esp + 0x6c], ebx
mov eax, dword [eax + 0x220]
shl eax, 0x10
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x160]
push eax
mov dword [esp + 0xa4], ecx
mov byte [esp + 0x68], 0
mov byte [esp + 0x43], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x84], 0x1312d00
call fcn.10128f30
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.10128f30
movaps xmm0, xmmword [0x101805b0]
add esp, 0xc
mov eax, dword [esp + 0x3f08]
mov dword [esp + 0x1d8], esi
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x2f34], edi
mov dword [esp + 0x2f38], ebx
movups xmmword [esp + 0x2f3c], xmm0
push 0xf1c
lea eax, [esp + 0x201c]
mov dword [esp + 0x2f50], 0
push 0
push eax
mov dword [esp + 0x2f5c], 0
call fcn.10128f30
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.10128f30
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.10128f30
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 0x1004fd79
test esi, esi
jmp 0x1004fd7d
mov esi, ebx
test ebx, ebx
jns 0x1004fd81
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 0x1004fdf3
mov eax, dword [ecx + 0x214]
mov esi, dword [eax + 0x614]
jmp 0x1004fdf8
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 0x10054e11
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 0x10054e01
je 0x1004ff37
cmp esi, 0xfffffff
jg 0x10054e01
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 0x1004fe96
mov edx, dword [esp + 0x68]
test edx, edx
jle 0x1004fe96
lea eax, [edx*8]
push eax
push 0
push esi
call fcn.10128f30
lea edi, [ebx + 8]
add esp, 0xc
mov dword [edi], esi
mov eax, esi
mov dword [esp + 0x20], edi
jmp 0x1004feab
mov dword [ebx + 8], eax
lea edx, [ebx + 8]
mov dword [esp + 0x20], edx
test ecx, ecx
jne 0x10054e08
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.1004c430
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 0x10054949
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 0x1004ff5e
lea edi, [ebx + 8]
xor eax, eax
mov dword [esp + 0x20], edi
mov dword [edi], eax
jmp 0x1004feaf
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
jmp 0x1004ff5e
mov edi, dword [esp + 0x20]
mov eax, dword [edx + 0xc]
cmp eax, dword [edx + 8]
jb 0x1004ff7b
test ecx, ecx
mov edx, 0xb
mov eax, 0xe
cmove edx, eax
mov dword [esp + 0x2c], edx
jmp 0x1004ffaa
mov cl, byte [eax]
inc eax
mov dword [edx + 0xc], eax
mov dl, cl
mov dword [esp + 0x2c], edx
cmp cl, 0xb
je 0x1004ff91
cmp cl, 0xe
jne 0x1004ffa6
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 0x10050054
test ah, ah
jne 0x1004fff7
cmp dl, 1
je 0x1004fff7
cmp dl, 3
je 0x1004fff7
cmp dl, 0xd
je 0x1004fff7
cmp dl, 0xa
je 0x1004fff7
cmp dl, 0xb
je 0x1004fff7
cmp dl, 0xc
je 0x1004fff7
cmp dl, 0xe
je 0x1004fff7
cmp dl, 0x20
jae 0x1004fff7
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1004ff5e
cmp dword [esp + 0x60], 0
mov edi, dword [esp + 0x20]
jle 0x1005002d
cmp dl, 0xa
je 0x1005002d
cmp dl, 0xb
je 0x1005002d
cmp dl, 0xc
je 0x1005002d
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 0x10050054
cmp dl, 0x20
jae 0x10050054
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 0x10054949
sub dword [esp + 0x78], 1
je 0x10054800
movzx edx, dl
cmp edx, 0x1f
ja case.default.0x1005007c
jmp dword [edx*4 + 0x10054f40]
mov edx, dword [esp + 0x44]
cmp byte [edx + 9], 0
je case.0x1005007c.0
cmp byte [edx + 0x5d], 0
jne 0x10054800
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x100500c3
mov eax, dword [ebx + 4]
test eax, eax
je 0x100500b0
cmp dword [eax], 0
jne 0x100500b0
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 0x1004ff5e
cmp dword [eax - 4], 2
je 0x100500ee
mov eax, dword [ebx + 4]
test eax, eax
je 0x100500db
cmp dword [eax], 0
jne 0x100500db
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 0x1004ff5e
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
test eax, eax
js case.0x1005007c.0
mov dword [edx + 0x78], eax
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1004ff5e
mov edx, dword [esp + 0x44]
cmp byte [edx + 9], 0
je case.0x1005007c.0
cmp dword [edx + 0x60], 0
je 0x10054800
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 0x10050168
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 0x10054949
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x10050185
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x10050181
cmp dword [ecx], 0
jne 0x10050181
mov dword [ecx], 0xa1
xor eax, eax
jmp 0x100501a9
cmp dword [eax - 4], 2
je 0x100501a1
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005019d
cmp dword [eax], 0
jne 0x1005019d
mov dword [eax], 0xa0
xor eax, eax
jmp 0x100501a9
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
cmp eax, dword [esp + 0x68]
ja 0x10054800
push eax
mov edx, ebx
mov ecx, esi
call fcn.1004f7c0
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 0x1004ff5e
test al, al
jne 0x100501eb
cmp byte [esp + 0xac], al
jne case.0x1005007c.0
xor eax, eax
jmp 0x100501f5
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.1004f2c0
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x224], 0
jne 0x10054949
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0xc], eax
jmp 0x1004ff5e
test al, al
jne 0x1005025a
cmp byte [esp + 0xac], al
jne case.0x1005007c.0
xor eax, eax
push eax
lea eax, [esp + 0x2f]
push eax
lea eax, [esp + 0xcc]
jmp 0x10050202
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 0x10050202
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi]
sub eax, ecx
sar eax, 3
cmp eax, 1
jbe 0x100502be
cmp byte [esp + 0x2b], 0
jne 0x100502be
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1005029c
sub eax, 1
jne 0x100502ac
shl ecx, 0x10
jmp 0x100502ac
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 0x10054949
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x10050301
mov eax, dword [ebx + 4]
test eax, eax
je 0x100502ed
cmp dword [eax], 0
jne 0x100502ed
mov dword [eax], 0xa1
xor ecx, ecx
add esi, ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3f18], esi
jmp 0x10053636
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005032b
sub eax, 1
jne 0x1005033b
shl ecx, 0x10
add esi, ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3f18], esi
jmp 0x10053636
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 0x10053636
mov ebp, dword [ebx + 0xc]
sub ebp, dword [edi]
xor edi, edi
sar ebp, 3
test ebp, ebp
je 0x1005043c
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 0x1005038f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005038b
cmp dword [eax], 0
jne 0x1005038b
mov dword [eax], 0x82
mov ecx, dword [ebx + 0xc]
mov edx, dword [esi]
xor esi, esi
jmp 0x100503b5
mov eax, dword [edx + edi*8 + 4]
mov esi, dword [edx + edi*8]
sub eax, 1
je 0x100503a5
sub eax, 1
jne 0x100503b5
shl esi, 0x10
jmp 0x100503b5
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 0x100503e8
mov eax, dword [ebx + 4]
test eax, eax
je 0x100503e4
cmp dword [eax], 0
jne 0x100503e4
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005040f
mov eax, dword [edx + edi*8 + 0xc]
mov ecx, dword [edx + edi*8 + 8]
sub eax, 1
je 0x100503ff
sub eax, 1
jne 0x1005040f
shl ecx, 0x10
jmp 0x1005040f
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.1004ee50
add edi, 2
cmp edi, ebp
jb 0x10050360
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 0x1004ff5e
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 0x10053f6e
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x10050498
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050494
cmp dword [eax], 0
jne 0x10050494
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100504be
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x100504ae
sub eax, 1
jne 0x100504be
shl ecx, 0x10
jmp 0x100504be
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
test dl, dl
je 0x100504d1
add ebp, ecx
mov dword [esp + 0x3f14], ebp
jmp 0x100504de
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.1004ee50
mov dl, byte [esp + 0x43]
inc esi
mov eax, dword [esp + 0x20]
cmp esi, edi
jb 0x10050474
mov dword [esp + 0x24], ebp
jmp 0x10053f6e
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 0x1005079c
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 0x1005055f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005055b
cmp dword [eax], 0
jne 0x1005055b
mov dword [eax], 0x82
mov esi, dword [ebx + 0xc]
mov edx, dword [ecx]
xor ecx, ecx
jmp 0x10050586
mov eax, dword [edx + edi*8 - 0xc]
mov ecx, dword [edx + edi*8 - 0x10]
sub eax, 1
je 0x10050576
sub eax, 1
jne 0x10050586
shl ecx, 0x10
jmp 0x10050586
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 0x100505bd
mov eax, dword [ebx + 4]
test eax, eax
je 0x100505b9
cmp dword [eax], 0
jne 0x100505b9
mov edx, dword [esp + 0x20]
mov dword [eax], 0x82
mov esi, dword [ebx + 0xc]
mov edx, dword [edx]
xor ecx, ecx
jmp 0x100505e4
mov eax, dword [edx + edi*8 - 4]
mov ecx, dword [edx + edi*8 - 8]
sub eax, 1
je 0x100505d4
sub eax, 1
jne 0x100505e4
shl ecx, 0x10
jmp 0x100505e4
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 0x10050618
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050614
cmp dword [eax], 0
jne 0x10050614
mov dword [eax], 0x82
mov eax, dword [esp + 0x20]
mov esi, dword [ebx + 0xc]
mov edx, dword [eax]
xor ecx, ecx
jmp 0x1005063e
mov eax, dword [edx + edi*8 + 4]
mov ecx, dword [edx + edi*8]
sub eax, 1
je 0x1005062e
sub eax, 1
jne 0x1005063e
shl ecx, 0x10
jmp 0x1005063e
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 0x10050675
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050671
cmp dword [eax], 0
jne 0x10050671
mov dword [eax], 0x82
mov eax, dword [esp + 0x20]
mov esi, dword [ebx + 0xc]
mov edx, dword [eax]
xor ecx, ecx
jmp 0x1005069c
mov eax, dword [edx + edi*8 + 0xc]
mov ecx, dword [edx + edi*8 + 8]
sub eax, 1
je 0x1005068c
sub eax, 1
jne 0x1005069c
shl ecx, 0x10
jmp 0x1005069c
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 0x100506cb
mov eax, dword [ebx + 4]
test eax, eax
je 0x100506c7
cmp dword [eax], 0
jne 0x100506c7
mov dword [eax], 0x82
mov eax, dword [esp + 0x20]
mov esi, dword [ebx + 0xc]
mov edx, dword [eax]
xor ecx, ecx
jmp 0x100506f2
mov eax, dword [edx + edi*8 + 0x14]
mov ecx, dword [edx + edi*8 + 0x10]
sub eax, 1
je 0x100506e2
sub eax, 1
jne 0x100506f2
shl ecx, 0x10
jmp 0x100506f2
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 0x1005071e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005071a
cmp dword [eax], 0
jne 0x1005071a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050745
mov eax, dword [edx + edi*8 + 0x1c]
mov ecx, dword [edx + edi*8 + 0x18]
sub eax, 1
je 0x10050735
sub eax, 1
jne 0x10050745
shl ecx, 0x10
jmp 0x10050745
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.1004efd0
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 0x10050530
mov edi, dword [esp + 0x20]
cmp byte [esp + 0x2c], 0x18
jne 0x10050888
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov esi, dword [edi]
sub eax, esi
sar eax, 3
cmp ebp, eax
jb 0x100507d3
mov eax, dword [ebx + 4]
test eax, eax
je 0x100507cf
cmp dword [eax], 0
jne 0x100507cf
mov dword [eax], 0x82
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebx + 8]
xor edx, edx
jmp 0x100507f9
mov eax, dword [esi + ebp*8 + 4]
mov edx, dword [esi + ebp*8]
sub eax, 1
je 0x100507e9
sub eax, 1
jne 0x100507f9
shl edx, 0x10
jmp 0x100507f9
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 0x1005082c
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050828
cmp dword [eax], 0
jne 0x10050828
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050852
mov ecx, dword [esi + eax*8]
mov eax, dword [esi + eax*8 + 4]
sub eax, 1
je 0x10050842
sub eax, 1
jne 0x10050852
shl ecx, 0x10
jmp 0x10050852
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.1004ee50
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0xc], eax
jmp 0x1004ff5e
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 0x1004ff5e
test al, al
je case.0x1005007c.0
cmp byte [esp + 0x2f68], 0
je 0x10050927
push dword [esp + 0x2fb4]
mov edx, dword [esp + 0x2fb4]
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x2f6d], 1
call fcn.1004ee50
cmp byte [esp + 0x2fb8], 0
je 0x10050907
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.1004e8e0
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 0x1004ff5e
cmp ecx, 0x10
jg 0x10054800
lea eax, [ecx + 1]
cmp eax, dword [esp + 0x9c]
jb 0x1005096b
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x10050969
cmp dword [eax], 0
jne 0x10050969
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 0x1005099a
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050996
cmp dword [eax], 0
jne 0x10050996
mov dword [eax], 0xa1
xor eax, eax
jmp 0x100509be
cmp dword [eax - 4], 2
je 0x100509b6
mov eax, dword [ebx + 4]
test eax, eax
je 0x100509b2
cmp dword [eax], 0
jne 0x100509b2
mov dword [eax], 0xa0
xor eax, eax
jmp 0x100509be
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
mov ecx, dword [esp + 0x44]
cmp byte [ecx + 8], 0
je 0x100509eb
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + 0x268]
test ecx, ecx
je 0x100509eb
push eax
call fcn.1003bf80
mov edx, dword [esp + 0x14]
test eax, eax
je 0x100509e8
mov eax, dword [eax]
jmp 0x100509eb
or eax, 0xffffffff
cmp byte [esp + 0x2c], 0x1d
xorps xmm0, xmm0
mov ecx, dword [esp + 0x30]
movups xmmword [edx], xmm0
je 0x10050ab4
mov ecx, dword [ecx + 0x234]
add ecx, eax
mov eax, dword [esp + 0x30]
cmp ecx, dword [eax + 0x22c]
jae 0x10054800
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 0x10050a82
mov eax, dword [eax + 0x264]
test eax, eax
je 0x10050a5a
test ecx, ecx
je 0x10050a52
mov eax, dword [eax + edx]
add eax, ecx
mov ecx, dword [esp + 0x14]
jmp 0x10050a90
mov ecx, dword [esp + 0x14]
xor eax, eax
jmp 0x10050a90
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 0x10050a86
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 0x1004ff5e
mov ecx, dword [ecx + 0x238]
add ecx, eax
mov eax, dword [esp + 0x30]
cmp ecx, dword [eax + 0x230]
jae 0x10054800
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 0x1004ff5e
cmp ecx, 1
jl 0x10054800
dec ecx
mov eax, ecx
mov dword [esp + 0x18], ecx
cmp ecx, dword [esp + 0x9c]
jb 0x10050b2b
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x10050b29
cmp dword [eax], 0
jne 0x10050b29
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 0x1004ff5e
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xc]
cmp eax, dword [edx + 8]
jae 0x10050b56
mov cl, byte [eax]
inc eax
mov dword [edx + 0xc], eax
jmp 0x10050b69
mov eax, dword [edx]
test eax, eax
je 0x10050b67
cmp dword [eax], 0
jne 0x10050b67
mov dword [eax], 0x55
xor cl, cl
movzx eax, cl
add eax, 0xfffffff8
mov byte [esp + 0x43], cl
cmp eax, 0x1d
ja case.0x10050b83.9
movzx eax, byte [eax + 0x10054fd8]
jmp dword [eax*4 + 0x10054fc0]
push 0
push 0x10163a20
jmp 0x10050bf0
push 0
push 0x101638c0
lea eax, [esp + 0x1e0]
mov ecx, ebx
push eax
lea eax, [esp + 0x3f24]
push eax
lea edx, [esp + 0x3f24]
call fcn.1004f4f0
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 0x1004ff5e
push 0
push 0x10163a4c
jmp 0x10050bf0
push 1
push 0x10163be4
lea eax, [esp + 0x1e0]
mov ecx, ebx
push eax
lea eax, [esp + 0x3f24]
push eax
lea edx, [esp + 0x3f24]
call fcn.1004f4f0
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 0x1004ff5e
mov eax, dword [esp + 0x44]
cmp byte [eax + 9], 0
jne case.0x10050c7d.0
cmp cl, 0x26
jae case.0x10050c7d.0
mov al, byte [eax + 8]
test al, al
je 0x10050c71
cmp dword [esp + 0x60], 0
jle 0x10050c71
cmp cl, 0x11
je 0x10050c71
mov eax, dword [edi]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x60], 0
mov dword [ebx + 0xc], eax
jmp 0x1004ff5e
movzx ecx, cl
cmp ecx, 0x21
ja case.0x10050c7d.0
jmp dword [ecx*4 + 0x10054ff8]
test al, al
je case.0x10050c7d.0
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi]
sub eax, ecx
sar eax, 3
test eax, eax
jne 0x10050cb0
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050cac
cmp dword [eax], 0
jne 0x10050cac
mov dword [eax], 0x82
xor esi, esi
jmp 0x10050cd4
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
sub eax, 1
je 0x10050cc4
sub eax, 1
jne 0x10050cd4
shl esi, 0x10
jmp 0x10050cd4
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 0x10050cf9
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050cf5
cmp dword [eax], 0
jne 0x10050cf5
mov dword [eax], 0x82
xor edi, edi
jmp 0x10050d1e
mov eax, dword [ecx + 0x14]
mov edi, dword [ecx + 0x10]
sub eax, 1
je 0x10050d0e
sub eax, 1
jne 0x10050d1e
shl edi, 0x10
jmp 0x10050d1e
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 0x10050d48
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050d44
cmp dword [eax], 0
jne 0x10050d44
mov dword [eax], 0x82
xor edx, edx
jmp 0x10050d6d
mov eax, dword [ecx + 0x24]
mov edx, dword [ecx + 0x20]
sub eax, 1
je 0x10050d5d
sub eax, 1
jne 0x10050d6d
shl edx, 0x10
jmp 0x10050d6d
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 0x10050d93
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050d8f
cmp dword [eax], 0
jne 0x10050d8f
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050db8
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub eax, 1
je 0x10050da8
sub eax, 1
jne 0x10050db8
shl ecx, 0x10
jmp 0x10050db8
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 0x10050ddf
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050df5
cmp dword [eax], 0
jne 0x10050df5
mov dword [eax], 0x82
jmp 0x10050df5
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 0x10050e1e
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050e1a
cmp dword [eax], 0
jne 0x10050e1a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050e43
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
sub eax, 1
je 0x10050e33
sub eax, 1
jne 0x10050e43
shl ecx, 0x10
jmp 0x10050e43
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 0x10050e6a
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050e7e
cmp dword [eax], 0
jne 0x10050e7e
mov dword [eax], 0x82
jmp 0x10050e7e
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 0x10050e90
mov eax, dword [eax]
jmp 0x10050e93
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.1004f2c0
cmp byte [ebp + 0x224], 0
jne 0x10054949
mov ebp, dword [esp + 0x24]
jmp 0x10053734
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x10050ef0
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050eec
cmp dword [eax], 0
jne 0x10050eec
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10050f1a
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x10050f0a
sub eax, 1
jne 0x10050f1a
shl edx, 0x10
jmp 0x10050f1a
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 0x10050f77
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050f33
cmp dword [eax], 0
jne 0x10050f33
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 0x1005449a
mov eax, dword [ebx + 4]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x1004ff5e
cmp dword [eax], 0
jne 0x1004ff5e
mov dword [eax], 0x82
mov esi, dword [esp + 0x1c]
jmp 0x1004ff5e
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x10050f91
sub eax, 1
jne 0x10050fa1
shl ecx, 0x10
jmp 0x10050fa1
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test ecx, ecx
je 0x10050f33
test edx, edx
je 0x10050f33
mov edx, 1
jmp 0x10050f35
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x10050fcd
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050fc9
cmp dword [eax], 0
jne 0x10050fc9
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10050ff7
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x10050fe7
sub eax, 1
jne 0x10050ff7
shl edx, 0x10
jmp 0x10050ff7
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 0x10051012
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051044
cmp dword [eax], 0
jne 0x10051044
mov dword [eax], 0xa1
jmp 0x10051044
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005102c
sub eax, 1
jne 0x1005103c
shl ecx, 0x10
jmp 0x1005103c
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test ecx, ecx
jne 0x10050fa9
test edx, edx
jne 0x10050fa9
jmp 0x10050f33
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005106e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005106a
cmp dword [eax], 0
jne 0x1005106a
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10051098
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x10051088
sub eax, 1
jne 0x10051098
shl edx, 0x10
jmp 0x10051098
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 0x10050f48
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 0x1004ff5e
test al, al
je case.0x10050c7d.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 0x100546b0
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051104
cmp dword [eax], 0
jne 0x10051104
mov dword [eax], 0xa1
xor edx, edx
jmp 0x100546d4
test al, al
je case.0x10050c7d.0
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x10051130
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005112c
cmp dword [eax], 0
jne 0x1005112c
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005115a
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1005114a
sub eax, 1
jne 0x1005115a
shl ecx, 0x10
jmp 0x1005115a
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 0x10051181
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005117d
cmp dword [eax], 0
jne 0x1005117d
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x100511ab
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005119b
sub eax, 1
jne 0x100511ab
shl ecx, 0x10
jmp 0x100511ab
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 0x100511cd
mov eax, dword [ebx + 4]
test eax, eax
je 0x100511c9
cmp dword [eax], 0
jne 0x100511c9
mov dword [eax], 0xa1
xor edx, edx
jmp 0x100511f7
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x100511e7
sub eax, 1
jne 0x100511f7
shl edx, 0x10
jmp 0x100511f7
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 0x10051214
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051210
cmp dword [eax], 0
jne 0x10051210
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005123e
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005122e
sub eax, 1
jne 0x1005123e
shl ecx, 0x10
jmp 0x1005123e
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 0x10054949
cmp byte [esp + 0x37], 0
mov esi, dword [esp + 0x1c]
je 0x1005373c
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 0x1004ff5e
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x10051312
mov eax, dword [ebx + 4]
test eax, eax
je 0x100512b0
cmp dword [eax], 0
jne 0x100512b0
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 0x100516c5
mov esi, dword [esp + 0x1c]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x1004ff5e
cmp dword [eax], 0
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
jne 0x1004ff5e
mov dword [eax], 0x82
jmp 0x1004ff5e
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1005132c
sub eax, 1
jne 0x1005133c
shl ecx, 0x10
jmp 0x1005133c
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 0x100512bb
lea eax, [edi*8]
mov edi, dword [esp + 0x20]
add eax, ebp
mov ebp, dword [esp + 0x24]
cmp esi, eax
jne 0x1005138d
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052f4c
cmp dword [eax], 0
jne 0x10052f4c
mov dword [eax], 0x82
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
jmp 0x1004ff5e
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 0x1004ff5e
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x100513cb
mov eax, dword [ebx + 4]
test eax, eax
je 0x100513c7
cmp dword [eax], 0
jne 0x100513c7
mov dword [eax], 0xa1
xor esi, esi
jmp 0x100513f5
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x100513e5
sub eax, 1
jne 0x100513f5
shl esi, 0x10
jmp 0x100513f5
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 0x10051412
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005140e
cmp dword [eax], 0
jne 0x1005140e
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005143c
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005142c
sub eax, 1
jne 0x1005143c
shl edx, 0x10
jmp 0x1005143c
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 0x1005147e
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 0x1004ff5e
cmp dword [eax], 0
jne 0x1004ff5e
mov dword [eax], 0x82
jmp 0x1004ff5e
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 0x1004ff5e
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x100514c3
mov eax, dword [ebx + 4]
test eax, eax
je 0x100514bf
cmp dword [eax], 0
jne 0x100514bf
mov dword [eax], 0xa1
xor esi, esi
jmp 0x100514ed
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x100514dd
sub eax, 1
jne 0x100514ed
shl esi, 0x10
jmp 0x100514ed
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 0x1005150a
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051506
cmp dword [eax], 0
jne 0x10051506
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10051534
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x10051524
sub eax, 1
jne 0x10051534
shl edx, 0x10
jmp 0x10051534
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 0x1005144f
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 0x1004ff5e
test al, al
je 0x1005161f
cmp byte [esp + 0x5c], 0
je 0x1005161f
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x100515a2
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005159e
cmp dword [eax], 0
jne 0x1005159e
mov dword [eax], 0xa1
xor edx, edx
jmp 0x100515c6
cmp dword [eax - 4], 2
je 0x100515be
mov eax, dword [ebx + 4]
test eax, eax
je 0x100515ba
cmp dword [eax], 0
jne 0x100515ba
mov dword [eax], 0xa0
xor edx, edx
jmp 0x100515c6
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x100515ea
mov eax, dword [ebx + 4]
test eax, eax
je 0x100515df
cmp dword [eax], 0
jne 0x100515df
mov dword [eax], 0xa1
xor ecx, ecx
mov byte [esp + 0x5c], cl
jmp 0x100516ad
cmp dword [eax - 4], 2
je 0x1005160d
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051602
cmp dword [eax], 0
jne 0x10051602
mov dword [eax], 0xa0
xor ecx, ecx
mov byte [esp + 0x5c], cl
jmp 0x100516ad
add eax, 0xfffffff8
mov byte [esp + 0x5c], 0
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
jmp 0x100516ad
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005163c
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051638
cmp dword [eax], 0
jne 0x10051638
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10051666
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x10051656
sub eax, 1
jne 0x10051666
shl edx, 0x10
jmp 0x10051666
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 0x10051683
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005167f
cmp dword [eax], 0
jne 0x1005167f
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x100516ad
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005169d
sub eax, 1
jne 0x100516ad
shl ecx, 0x10
jmp 0x100516ad
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.1003b0b0
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov esi, dword [ebx + 0xc]
lea ecx, [ecx + edx*8]
cmp esi, ecx
je 0x10050f48
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 0x1004ff5e
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x10051738
mov eax, dword [ebx + 4]
test eax, eax
je 0x100516ff
cmp dword [eax], 0
jne 0x100516ff
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 0x10050f48
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 0x1004ff5e
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x10051752
sub eax, 1
jne 0x10051762
shl ecx, 0x10
jmp 0x10051762
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 0x1005170a
lea eax, [esi + eax*8]
cmp edx, eax
jne 0x100517a5
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052f48
cmp dword [eax], 0
jne 0x10052f48
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax], 0x82
mov esi, dword [esp + 0x1c]
jmp 0x1004ff5e
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 0x1004ff5e
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x100517e7
mov eax, dword [ebx + 4]
test eax, eax
je 0x100517e3
cmp dword [eax], 0
jne 0x100517e3
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10051811
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x10051801
sub eax, 1
jne 0x10051811
shl esi, 0x10
jmp 0x10051811
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 0x1005182e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005182a
cmp dword [eax], 0
jne 0x1005182a
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10051858
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x10051848
sub eax, 1
jne 0x10051858
shl edx, 0x10
jmp 0x10051858
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 0x1005144f
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 0x1004ff5e
mov ecx, dword [esp + 0x18]
test al, al
je 0x1004ff5e
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x100518c4
mov eax, dword [ebx + 4]
test eax, eax
je 0x100518c0
cmp dword [eax], 0
jne 0x100518c0
mov dword [eax], 0xa1
xor esi, esi
jmp 0x100518e8
cmp dword [eax - 4], 2
je 0x100518e0
mov eax, dword [ebx + 4]
test eax, eax
je 0x100518dc
cmp dword [eax], 0
jne 0x100518dc
mov dword [eax], 0xa0
xor esi, esi
jmp 0x100518e8
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x10051905
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051901
cmp dword [eax], 0
jne 0x10051901
mov dword [eax], 0xa1
xor edi, edi
jmp 0x10051929
cmp dword [eax - 4], 2
je 0x10051921
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005191d
cmp dword [eax], 0
jne 0x1005191d
mov dword [eax], 0xa0
xor edi, edi
jmp 0x10051929
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 dword [esp + 0x58], 0
mov edx, dword [eax]
sub ebp, edx
sar ebp, 3
sub ebp, edi
mov dword [esp + 0x60], 0
mov dword [esp + 0x4c], ebp
cmp esi, 0x1c
ja case.default.0x10051963
movzx eax, byte [esi + 0x100550c0]
jmp dword [eax*4 + 0x10055080]
cmp edi, 3
jne 0x10054800
cmp byte [esp + 0x37], 0
je 0x10051998
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x1d4], 0
je 0x10054800
cmp dword [eax + 0x1d8], 7
jne 0x10054800
mov eax, dword [ebx + 0x10]
mov ebp, dword [esp + 0x24]
lea eax, [edx + eax*8]
cmp ecx, eax
jne 0x100519ba
mov eax, dword [ebx + 4]
test eax, eax
je 0x100519ca
cmp dword [eax], 0
jne 0x100519ca
mov dword [eax], 0x82
jmp 0x100519ca
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 0x10051a08
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051a18
cmp dword [eax], 0
jne 0x10051a18
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax], 0x82
mov dword [esp + 0x58], 2
jmp 0x1004ff5e
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 0x1004ff5e
test edi, edi
jne 0x10054800
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 0x1004ff5e
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 0x10051a81
push 0
mov edx, 6
call fcn.1003b780
test eax, eax
jne 0x10054949
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 0x1004ff5e
test edi, edi
jne 0x10054800
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 0x1004ff5e
mov ecx, dword [esp + 0x30]
cmp dword [ecx + 0x1d4], 0
je 0x10054800
mov esi, dword [ecx + 0x1d8]
lea eax, [esi + 1]
mov dword [ecx + 0x1d8], eax
lea eax, [esi - 1]
cmp eax, 5
ja 0x10052f40
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 0x10051b2c
push 0
mov edx, 1
call fcn.1003b780
test eax, eax
jne 0x10054800
lea eax, [esi - 3]
cmp esi, 3
jg 0x10051b36
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 0x10051b5c
cmp esi, 6
jne 0x10052f44
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.1004efd0
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x1004ff5e
cmp edi, 1
jne 0x10054800
cmp byte [esp + 0x37], 0
je 0x10051c07
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 0x1004ff5e
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 0x1004ff5e
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x284]
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x10054800
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 0x10054800
lea edi, [edx + ebp]
test edx, edx
je 0x10051dba
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 0x10051caf
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051cab
cmp dword [eax], 0
jne 0x10051cab
mov dword [eax], 0x82
xor esi, esi
jmp 0x10051cd5
mov eax, dword [esi + ebp*8 + 4]
mov esi, dword [esi + ebp*8]
sub eax, 1
je 0x10051cc5
sub eax, 1
jne 0x10051cd5
shl esi, 0x10
jmp 0x10051cd5
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
cmp dword [ecx], 1
jbe 0x10051d6d
mov ebp, 1
mov dword [esp + 0x3c], 4
nop dword [eax + eax]
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, edx
sar eax, 3
cmp edi, eax
jb 0x10051d18
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051d14
cmp dword [eax], 0
jne 0x10051d14
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10051d3e
mov eax, dword [edx + edi*8 + 4]
mov ecx, dword [edx + edi*8]
sub eax, 1
je 0x10051d2e
sub eax, 1
jne 0x10051d3e
shl ecx, 0x10
jmp 0x10051d3e
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.10032a20
mov ecx, dword [esp + 0x2c]
inc ebp
add dword [esp + 0x3c], 4
add esi, eax
inc edi
cmp ebp, dword [ecx]
jb 0x10051cf0
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 0x10051d93
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051da4
cmp dword [eax], 0
jne 0x10051da4
mov dword [eax], 0x82
jmp 0x10051da4
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 0x10051c87
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 0x10051dfb
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051e07
cmp dword [eax], 0
jne 0x10051e07
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 0x1004ff5e
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 0x1004ff5e
mov ebp, dword [esp + 0x30]
mov esi, dword [ebp + 0x284]
cmp edi, 1
jne 0x10054800
test esi, esi
je 0x10054800
cmp ecx, edx
jne 0x10051e51
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051e4d
cmp dword [eax], 0
jne 0x10051e4d
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10051e7d
cmp dword [ecx - 4], 2
je 0x10051e6d
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051e69
cmp dword [eax], 0
jne 0x10051e69
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x10051e7d
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
test ecx, ecx
js 0x10054800
mov edx, dword [esi]
lea eax, [edx + ecx]
cmp eax, dword [ebp + 0x28c]
ja 0x10054800
lea eax, [edx*4]
push eax
mov eax, dword [ebp + 0x288]
push dword [esi + 0x88]
lea eax, [eax + ecx*4]
push eax
call fcn.101289b0
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 0x1004ff5e
cmp edi, 2
jne 0x10054800
cmp ecx, edx
jne 0x10051eea
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051ee6
cmp dword [eax], 0
jne 0x10051ee6
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10051f14
lea esi, [ecx - 8]
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x10051f04
sub eax, 1
jne 0x10051f14
shl esi, 0x10
jmp 0x10051f14
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 0x10051f36
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051f32
cmp dword [eax], 0
jne 0x10051f32
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10051f60
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x10051f50
sub eax, 1
jne 0x10051f60
shl edx, 0x10
jmp 0x10051f60
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 0x10051fa3
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051fb6
cmp dword [eax], 0
jne 0x10051fb6
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 0x1004ff5e
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 0x1004ff5e
cmp edi, 2
jne 0x10054800
cmp ecx, edx
jne 0x10051ffa
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051ff6
cmp dword [eax], 0
jne 0x10051ff6
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10052024
lea esi, [ecx - 8]
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x10052014
sub eax, 1
jne 0x10052024
shl esi, 0x10
jmp 0x10052024
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 0x10052046
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052042
cmp dword [eax], 0
jne 0x10052042
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10052070
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x10052060
sub eax, 1
jne 0x10052070
shl edx, 0x10
jmp 0x10052070
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 0x1005209f
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051fb6
cmp dword [eax], 0
jne 0x10051fb6
mov dword [eax], 0x82
jmp 0x10051fb6
sub edx, esi
mov dword [edi], edx
jmp 0x10051fa8
cmp edi, 2
jne 0x10054800
cmp ecx, edx
jne 0x100520cb
mov eax, dword [ebx + 4]
test eax, eax
je 0x100520c7
cmp dword [eax], 0
jne 0x100520c7
mov dword [eax], 0xa1
xor edx, edx
jmp 0x100520f5
lea edx, [ecx - 8]
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x100520e5
sub eax, 1
jne 0x100520f5
shl edx, 0x10
jmp 0x100520f5
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 0x10052116
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052112
cmp dword [eax], 0
jne 0x10052112
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10052140
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x10052130
sub eax, 1
jne 0x10052140
shl ecx, 0x10
jmp 0x10052140
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.10032a20
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov esi, dword [ebx + 0xc]
lea ecx, [ecx + edx*8]
cmp esi, ecx
jne 0x10052183
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052193
cmp dword [eax], 0
jne 0x10052193
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 0x1004ff5e
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 0x1004ff5e
cmp edi, 2
jne 0x10054800
cmp ecx, edx
jne 0x100521d3
mov eax, dword [ebx + 4]
test eax, eax
je 0x100521cf
cmp dword [eax], 0
jne 0x100521cf
mov dword [eax], 0xa1
xor edx, edx
jmp 0x100521fd
lea edx, [ecx - 8]
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x100521ed
sub eax, 1
jne 0x100521fd
shl edx, 0x10
jmp 0x100521fd
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 0x1005221e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005221a
cmp dword [eax], 0
jne 0x1005221a
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10052248
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x10052238
sub eax, 1
jne 0x10052248
shl ecx, 0x10
jmp 0x10052248
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test edx, edx
je 0x10054800
call fcn.1003b0b0
jmp 0x10052145
cmp edi, 2
jne 0x10054800
mov ebp, dword [esp + 0x30]
cmp dword [ebp + 0x284], 0
je 0x10054800
cmp ecx, edx
jne 0x1005228e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005228a
cmp dword [eax], 0
jne 0x1005228a
mov dword [eax], 0xa1
xor esi, esi
jmp 0x100522ba
cmp dword [ecx - 4], 2
je 0x100522aa
mov eax, dword [ebx + 4]
test eax, eax
je 0x100522a6
cmp dword [eax], 0
jne 0x100522a6
mov dword [eax], 0xa0
xor esi, esi
jmp 0x100522ba
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
test esi, esi
js 0x10054800
cmp esi, dword [ebp + 0x28c]
jae 0x10054800
mov edi, dword [esp + 0x20]
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x10052303
mov eax, dword [ebx + 4]
test eax, eax
je 0x100522e3
cmp dword [eax], 0
jne 0x100522e3
mov dword [eax], 0xa1
mov eax, dword [ebp + 0x288]
xor ecx, ecx
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov dword [eax + esi*4], ecx
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
jmp 0x1004ff5e
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10052339
sub eax, 1
jne 0x10052349
mov eax, dword [ebp + 0x288]
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
shl ecx, 0x10
mov dword [eax + esi*4], ecx
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
jmp 0x1004ff5e
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 edx, dword [esp + 0x14]
mov dword [eax + esi*4], ecx
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
jmp 0x1004ff5e
cmp edi, 1
jne 0x10054800
mov ebp, dword [esp + 0x30]
cmp dword [ebp + 0x284], 0
je 0x10054800
cmp ecx, edx
jne 0x1005239b
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052397
cmp dword [eax], 0
jne 0x10052397
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x100523c7
cmp dword [ecx - 4], 2
je 0x100523b7
mov eax, dword [ebx + 4]
test eax, eax
je 0x100523b3
cmp dword [eax], 0
jne 0x100523b3
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x100523c7
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
test ecx, ecx
js 0x10054800
cmp ecx, dword [ebp + 0x28c]
jae 0x10054800
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 0x10052154
mov dword [edx], esi
jmp 0x10052185
cmp edi, 4
jne 0x10054800
cmp ecx, edx
jne 0x1005241d
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052419
cmp dword [eax], 0
jne 0x10052419
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x10052447
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebp, dword [ecx]
sub eax, 1
je 0x10052437
sub eax, 1
jne 0x10052447
shl ebp, 0x10
jmp 0x10052447
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 0x10052468
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052464
cmp dword [eax], 0
jne 0x10052464
mov dword [eax], 0xa1
xor edi, edi
jmp 0x10052492
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x10052482
sub eax, 1
jne 0x10052492
shl edi, 0x10
jmp 0x10052492
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 0x100524af
mov eax, dword [ebx + 4]
test eax, eax
je 0x100524ab
cmp dword [eax], 0
jne 0x100524ab
mov dword [eax], 0xa1
xor edx, edx
jmp 0x100524d9
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x100524c9
sub eax, 1
jne 0x100524d9
shl edx, 0x10
jmp 0x100524d9
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 0x100524f6
mov eax, dword [ebx + 4]
test eax, eax
je 0x100524f2
cmp dword [eax], 0
jne 0x100524f2
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10052520
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
sub eax, 1
je 0x10052510
sub eax, 1
jne 0x10052520
shl esi, 0x10
jmp 0x10052520
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 0x10052552
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051fb6
cmp dword [eax], 0
jne 0x10051fb6
mov dword [eax], 0x82
jmp 0x10051fb6
cmp edi, ebp
cmovle edx, esi
mov dword [ecx], edx
jmp 0x10051fa8
test edi, edi
jne 0x10054800
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 0x100523f3
jmp 0x10052154
mov eax, dword [esp + 0x20]
test edi, edi
js 0x10054800
test esi, esi
js 0x10054800
cmp edi, 3
jle 0x100525d5
mov edi, 3
mov dword [esp + 0x60], edi
jmp 0x100525f2
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 0x1004ff5a
lea esi, [esp + edi*4 + 0x80]
nop dword [eax]
mov edx, dword [ebx + 0xc]
cmp edx, dword [eax]
jne 0x1005261d
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052619
cmp dword [eax], 0
jne 0x10052619
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10052647
lea eax, [edx - 8]
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [edx - 4]
sub eax, 1
je 0x10052637
sub eax, 1
jne 0x10052647
shl ecx, 0x10
jmp 0x10052647
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x20]
mov dword [esi], ecx
sub esi, 4
sub edi, 1
jne 0x10052600
mov ebp, dword [esp + 0x24]
mov edi, eax
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x1004ff5e
mov ecx, dword [esp + 0x18]
test al, al
je 0x1004ff5e
mov eax, dword [esp + 0x58]
test eax, eax
jle 0x1005268a
dec eax
mov dword [esp + 0x58], eax
jmp 0x1004ff5e
mov eax, dword [esp + 0x60]
test eax, eax
je 0x10054800
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 0x10050f48
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 0x1004ff5e
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x10052700
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x1004ff5e
cmp dword [eax], 0
jne 0x1004ff5e
mov dword [eax], 0xa1
jmp 0x1004ff5e
mov ecx, dword [esp + 0x18]
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
jmp 0x1004ff5e
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005272c
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052728
cmp dword [eax], 0
jne 0x10052728
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10052750
cmp dword [eax - 4], 2
je 0x10052748
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052744
cmp dword [eax], 0
jne 0x10052744
mov dword [eax], 0xa0
xor esi, esi
jmp 0x10052750
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005276d
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052769
cmp dword [eax], 0
jne 0x10052769
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10052797
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10052787
sub eax, 1
jne 0x10052797
shl ecx, 0x10
jmp 0x10052797
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x14]
cmp esi, 0x1f
ja 0x10051380
mov dword [esp + esi*4 + 0x158], ecx
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
jmp 0x1004ff5e
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x100527df
mov eax, dword [ebx + 4]
test eax, eax
je 0x100527d1
cmp dword [eax], 0
jne 0x100527d1
mov dword [eax], 0xa1
xor eax, eax
mov esi, dword [esp + eax*4 + 0x158]
jmp 0x100526a2
cmp dword [eax - 4], 2
je 0x10052805
mov eax, dword [ebx + 4]
test eax, eax
je 0x100527f7
cmp dword [eax], 0
jne 0x100527f7
mov dword [eax], 0xa0
xor eax, eax
mov esi, dword [esp + eax*4 + 0x158]
jmp 0x100526a2
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
test eax, eax
js 0x10052f4c
cmp eax, 0x20
jge 0x10052f4c
mov esi, dword [esp + eax*4 + 0x158]
jmp 0x100526a2
mov ebp, dword [ebx + 0xc]
cmp ebp, dword [edi]
jne 0x10052847
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052843
cmp dword [eax], 0
jne 0x10052843
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x10052872
add ebp, 0xfffffff8
mov dword [ebx + 0xc], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
sub eax, 1
je 0x10052862
sub eax, 1
jne 0x10052872
shl ebp, 0x10
jmp 0x10052872
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 0x1005288f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005288b
cmp dword [eax], 0
jne 0x1005288b
mov dword [eax], 0xa1
xor edi, edi
jmp 0x100528b9
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x100528a9
sub eax, 1
jne 0x100528b9
shl edi, 0x10
jmp 0x100528b9
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 0x100528da
mov eax, dword [ebx + 4]
test eax, eax
je 0x100528d6
cmp dword [eax], 0
jne 0x100528d6
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10052904
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x100528f4
sub eax, 1
jne 0x10052904
shl edx, 0x10
jmp 0x10052904
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 0x10052921
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005291d
cmp dword [eax], 0
jne 0x1005291d
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005294b
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
sub eax, 1
je 0x1005293b
sub eax, 1
jne 0x1005294b
shl esi, 0x10
jmp 0x1005294b
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 0x1005296b
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
jmp 0x100512db
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 0x1004ff5e
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 0x100526b5
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052f48
cmp dword [eax], 0
jne 0x10052f48
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax], 0x82
mov esi, dword [esp + 0x1c]
jmp 0x1004ff5e
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x10052a23
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052a1f
cmp dword [eax], 0
jne 0x10052a1f
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10052a4d
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x10052a3d
sub eax, 1
jne 0x10052a4d
shl edx, 0x10
jmp 0x10052a4d
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 0x10052a6a
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052a66
cmp dword [eax], 0
jne 0x10052a66
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10052a94
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x10052a84
sub eax, 1
jne 0x10052a94
shl ecx, 0x10
jmp 0x10052a94
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.10032a20
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov esi, dword [ebx + 0xc]
lea ecx, [ecx + edx*8]
cmp esi, ecx
jne 0x100516c5
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052f48
cmp dword [eax], 0
jne 0x10052f48
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax], 0x82
mov esi, dword [esp + 0x1c]
jmp 0x1004ff5e
mov ebp, dword [ebx + 0xc]
cmp ebp, dword [edi]
jne 0x10052b16
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052af0
cmp dword [eax], 0
jne 0x10052af0
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 0x10052b7e
mov edi, dword [esp + 0x20]
jmp 0x100512df
add ebp, 0xfffffff8
mov dword [ebx + 0xc], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
sub eax, 1
je 0x10052b31
sub eax, 1
jne 0x10052b41
shl ebp, 0x10
jmp 0x10052b41
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
test ebp, ebp
jle 0x10052af0
mov eax, ebp
mov esi, ebp
sar eax, 1
mov ecx, ebp
cmp ebp, 0xa
cmovge esi, eax
mov edx, esi
call fcn.1003b0b0
lea edi, [esi + 1]
add edi, eax
sar edi, 1
cmp edi, esi
je 0x10052af2
mov edx, edi
mov ecx, ebp
mov esi, edi
call fcn.1003b0b0
inc edi
add edi, eax
sar edi, 1
cmp edi, esi
jne 0x10052b65
jmp 0x10052af2
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 0x1004ff5e
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x10052bbc
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052bb8
cmp dword [eax], 0
jne 0x10052bb8
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10052be6
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x10052bd6
sub eax, 1
jne 0x10052be6
shl edx, 0x10
jmp 0x10052be6
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 0x10052c09
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052c19
cmp dword [eax], 0
jne 0x10052c19
mov dword [eax], 0x82
jmp 0x10052c19
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 0x1005468f
jmp 0x10050f48
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x10052c4e
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052c4a
cmp dword [eax], 0
jne 0x10052c4a
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10052c78
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x10052c68
sub eax, 1
jne 0x10052c78
shl esi, 0x10
jmp 0x10052c78
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 0x10052c95
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052c91
cmp dword [eax], 0
jne 0x10052c91
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10052cbf
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x10052caf
sub eax, 1
jne 0x10052cbf
shl edx, 0x10
jmp 0x10052cbf
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 0x10052ce6
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052cf6
cmp dword [eax], 0
jne 0x10052cf6
mov dword [eax], 0x82
jmp 0x10052cf6
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 0x1005468f
jmp 0x10050f48
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x10052d2f
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052d2b
cmp dword [eax], 0
jne 0x10052d2b
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10052d53
cmp dword [eax - 4], 2
je 0x10052d4b
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052d47
cmp dword [eax], 0
jne 0x10052d47
mov dword [eax], 0xa0
xor edx, edx
jmp 0x10052d53
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 0x1004ff50
test edx, edx
jns 0x10052d72
lea ecx, [eax - 1]
jmp 0x10052d9a
cmp edx, eax
jb 0x10052d95
xor ecx, ecx
mov eax, dword [esi + ecx*8 + 4]
mov edx, dword [esi + ecx*8]
sub eax, 1
je 0x10052db7
sub eax, 1
jne 0x10052c19
shl edx, 0x10
jmp 0x10052c19
mov ecx, eax
sub ecx, edx
dec ecx
cmp ecx, eax
jb 0x10052d78
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052db0
cmp dword [eax], 0
jne 0x10052db0
mov dword [eax], 0x82
xor edx, edx
jmp 0x10052c19
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
jmp 0x10052c19
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x10052de9
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052de5
cmp dword [eax], 0
jne 0x10052de5
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10052e0d
cmp dword [eax - 4], 2
je 0x10052e05
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052e01
cmp dword [eax], 0
jne 0x10052e01
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x10052e0d
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x10052e3f
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052e26
cmp dword [eax], 0
jne 0x10052e26
mov dword [eax], 0xa1
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 2
jmp 0x1004ff5e
cmp dword [eax - 4], 2
je 0x10052e70
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052e57
cmp dword [eax], 0
jne 0x10052e57
mov dword [eax], 0xa0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 2
jmp 0x1004ff5e
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 0x10052f48
sub eax, dword [edi]
sar eax, 3
cmp edx, eax
jbe 0x10052ec5
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052f48
cmp dword [eax], 0
jne 0x10052f48
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax], 0x82
jmp 0x1004ff5e
test ecx, ecx
jns 0x10052ed8
neg ecx
mov eax, ecx
mov ecx, dword [esp + 0x3c]
cdq
idiv ecx
neg edx
jmp 0x10052ee1
mov eax, ecx
mov ecx, dword [esp + 0x3c]
cdq
idiv ecx
mov dword [esp + 0x48], edx
test edx, edx
je 0x10052f48
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 0x10052f29
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 0x10052f59
sub esi, ebx
sub edi, eax
jmp 0x10052f61
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 0x1004ff5e
test esi, esi
jns 0x10052f61
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 0x10052f02
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 0x1004ff5e
test al, al
je case.0x10050c7d.0
cmp byte [esp + 0x37], 0
je case.0x10050c7d.0
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x10052fe9
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052fe5
cmp dword [eax], 0
jne 0x10052fe5
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10053017
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 0x10053007
sub eax, 1
jne 0x1005301b
shl esi, 0x10
jmp 0x10053017
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 0x1005303f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005303b
cmp dword [eax], 0
jne 0x1005303b
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x1005306d
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 0x1005305d
sub eax, 1
jne 0x10053071
shl ebp, 0x10
jmp 0x1005306d
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 0x1004ff5e
mov eax, dword [esp + 0x44]
cmp byte [eax + 8], 0
je case.0x1005007c.0
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x100530bf
mov eax, dword [ebx + 4]
test eax, eax
je 0x100530bb
cmp dword [eax], 0
jne 0x100530bb
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x100530e9
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x100530d9
sub eax, 1
jne 0x100530e9
shl ecx, 0x10
jmp 0x100530e9
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 0x10053119
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053115
cmp dword [eax], 0
jne 0x10053115
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10053143
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10053133
sub eax, 1
jne 0x10053143
shl ecx, 0x10
jmp 0x10053143
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 0x10054949
cmp byte [esp + 0x37], 0
mov edx, dword [esp + 0x14]
je case.0x10050c7d.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 0x1004ff5e
mov edi, dword [esp + 0x44]
cmp byte [edi + 8], 0
je 0x10054aeb
test ah, ah
jne 0x10054aeb
cmp byte [esp + 0x2f68], ah
je 0x10053213
push dword [esp + 0x2fb4]
mov edx, dword [esp + 0x2fb4]
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x2f6d], 1
call fcn.1004ee50
cmp byte [esp + 0x2fb8], 0
je 0x100531fb
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.1004e8e0
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 0x1005324e
cmp byte [eax + 5], 0
je 0x10053272
mov edx, dword [esp + 0x2f6c]
lea ecx, [esp + 0x1e0]
push 0
push dword [esp + 0x2f7c]
push eax
push dword [esp + 0x2f7c]
call fcn.1004df40
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 0x10053332
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 0x10053318
test ebx, ebx
je 0x10053316
cmp dword [ebx], 0
jne 0x10053316
mov dword [ebx], 0x82
xor ebp, ebp
imul ebp, edx
dec ecx
add ebp, esi
mov dword [esp + 0x14], ebp
test ecx, ecx
jg 0x10053300
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 0x1004ff5e
mov eax, dword [ebx + 0xc]
sub eax, dword [edi]
sar eax, 3
cmp eax, 1
jbe 0x10053369
cmp byte [esp + 0xac], 0
jne case.0x1005007c.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.1004f2c0
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x224], 0
jne 0x10054949
cmp byte [esp + 0x2c], 0x13
jne 0x100533cf
mov eax, dword [esp + 0xd8]
lea ecx, [esp + 0xa8]
add eax, dword [esp + 0xf8]
mov edx, dword [esp + 0x14]
push eax
call fcn.1004f240
mov eax, dword [edi]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0xc], eax
jmp 0x1004ff5e
push 0xf1c
lea eax, [esp + 0x2fe4]
push 0
push eax
call fcn.10128f30
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.1004f240
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.1004df40
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0xc], eax
jmp 0x1004ff5e
mov eax, dword [ebx + 0xc]
mov edx, dword [edi]
sub eax, edx
sar eax, 3
cmp eax, 2
jbe 0x100534f4
cmp byte [esp + 0x2b], 0
jne 0x100534f4
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x100534d2
sub eax, 1
jne 0x100534e2
shl ecx, 0x10
jmp 0x100534e2
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 0x10054949
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x10053537
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053523
cmp dword [eax], 0
jne 0x10053523
mov dword [eax], 0xa1
xor ecx, ecx
add esi, ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3f18], esi
jmp 0x100535e2
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10053561
sub eax, 1
jne 0x10053571
shl ecx, 0x10
add esi, ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3f18], esi
jmp 0x100535e2
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 0x100535e2
mov eax, dword [ebx + 0xc]
mov edx, dword [edi]
sub eax, edx
sar eax, 3
cmp eax, 1
jbe 0x100535cc
cmp byte [esp + 0x2b], 0
jne 0x100535cc
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x100535aa
sub eax, 1
jne 0x100535ba
shl ecx, 0x10
jmp 0x100535ba
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 0x10054949
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x100535ff
mov eax, dword [ebx + 4]
test eax, eax
je 0x100535fb
cmp dword [eax], 0
jne 0x100535fb
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10053629
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10053619
sub eax, 1
jne 0x10053629
shl ecx, 0x10
jmp 0x10053629
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 0x1005373c
cmp byte [esp + 0x2f68], 0
je 0x100536c0
push dword [esp + 0x2fb4]
mov edx, dword [esp + 0x2fb4]
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x2f6d], 1
call fcn.1004ee50
cmp byte [esp + 0x2fb8], 0
je 0x100536a8
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.1004e8e0
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 0x100536fb
cmp byte [eax + 5], 0
je 0x1005371f
mov edx, dword [esp + 0x2f6c]
lea ecx, [esp + 0x1e0]
push 0
push dword [esp + 0x2f7c]
push eax
push dword [esp + 0x2f7c]
call fcn.1004df40
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 0x1004ff5e
mov ebp, dword [ebx + 0xc]
xor esi, esi
sub ebp, dword [edi]
sar ebp, 3
mov dword [esp + 0x48], ebp
cmp ebp, 6
jbe 0x10053851
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 0x10053798
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053794
cmp dword [eax], 0
jne 0x10053794
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100537be
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x100537ae
sub eax, 1
jne 0x100537be
shl ecx, 0x10
jmp 0x100537be
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 0x100537f6
mov eax, dword [ebx + 4]
test eax, eax
je 0x100537f2
cmp dword [eax], 0
jne 0x100537f2
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005381d
mov eax, dword [edx + esi*8 + 0xc]
mov ecx, dword [edx + esi*8 + 8]
sub eax, 1
je 0x1005380d
sub eax, 1
jne 0x1005381d
shl ecx, 0x10
jmp 0x1005381d
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.1004ee50
add edi, 2
add esi, 2
cmp edi, ebp
jb 0x10053770
mov edi, dword [esp + 0x20]
cmp esi, ebp
mov ebp, dword [esp + 0x24]
jae 0x10053f72
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 0x10053887
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053883
cmp dword [eax], 0
jne 0x10053883
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100538ae
mov eax, dword [edx + esi*8 - 0xc]
mov ecx, dword [edx + esi*8 - 0x10]
sub eax, 1
je 0x1005389e
sub eax, 1
jne 0x100538ae
shl ecx, 0x10
jmp 0x100538ae
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 0x100538db
mov eax, dword [ebx + 4]
test eax, eax
je 0x100538d7
cmp dword [eax], 0
jne 0x100538d7
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053902
mov eax, dword [edx + esi*8 - 4]
mov ecx, dword [edx + esi*8 - 8]
sub eax, 1
je 0x100538f2
sub eax, 1
jne 0x10053902
shl ecx, 0x10
jmp 0x10053902
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 0x10053934
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053930
cmp dword [eax], 0
jne 0x10053930
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005395a
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x1005394a
sub eax, 1
jne 0x1005395a
shl ecx, 0x10
jmp 0x1005395a
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 0x10053983
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005397f
cmp dword [eax], 0
jne 0x1005397f
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100539aa
mov eax, dword [edx + esi*8 + 0xc]
mov ecx, dword [edx + esi*8 + 8]
sub eax, 1
je 0x1005399a
sub eax, 1
jne 0x100539aa
shl ecx, 0x10
jmp 0x100539aa
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 0x100539d7
mov eax, dword [ebx + 4]
test eax, eax
je 0x100539d3
cmp dword [eax], 0
jne 0x100539d3
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100539fe
mov eax, dword [edx + esi*8 + 0x14]
mov ecx, dword [edx + esi*8 + 0x10]
sub eax, 1
je 0x100539ee
sub eax, 1
jne 0x100539fe
shl ecx, 0x10
jmp 0x100539fe
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 0x10053a30
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053a2c
cmp dword [eax], 0
jne 0x10053a2c
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053a57
mov eax, dword [edx + esi*8 + 0x1c]
mov ecx, dword [edx + esi*8 + 0x18]
sub eax, 1
je 0x10053a47
sub eax, 1
jne 0x10053a57
shl ecx, 0x10
jmp 0x10053a57
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.1004efd0
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 0x10053860
jmp 0x10053f6e
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 0x10053f72
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 0x10053b46
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x10053b0f
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053b0b
cmp dword [eax], 0
jne 0x10053b0b
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053b35
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x10053b25
sub eax, 1
jne 0x10053b35
shl ecx, 0x10
jmp 0x10053b35
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 0x10053b6e
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053b6a
cmp dword [eax], 0
jne 0x10053b6a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053b94
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x10053b84
sub eax, 1
jne 0x10053b94
shl ecx, 0x10
jmp 0x10053b94
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 0x10053bc2
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053bbe
cmp dword [eax], 0
jne 0x10053bbe
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053be8
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x10053bd8
sub eax, 1
jne 0x10053be8
shl ecx, 0x10
jmp 0x10053be8
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 0x10053c1b
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053c17
cmp dword [eax], 0
jne 0x10053c17
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053c41
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x10053c31
sub eax, 1
jne 0x10053c41
shl ecx, 0x10
jmp 0x10053c41
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 0x10053c6e
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053c6a
cmp dword [eax], 0
jne 0x10053c6a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053ca3
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10053c8c
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x10053ca3
shl ecx, 0x10
jmp 0x10053ca3
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.1004efd0
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 0x10053ae0
jmp 0x10053f6e
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 0x10053f72
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 0x10053da2
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x10053d65
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053d61
cmp dword [eax], 0
jne 0x10053d61
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053d8b
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x10053d7b
sub eax, 1
jne 0x10053d8b
shl ecx, 0x10
jmp 0x10053d8b
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 0x10053da6
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 0x10053dce
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053dca
cmp dword [eax], 0
jne 0x10053dca
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053df4
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x10053de4
sub eax, 1
jne 0x10053df4
shl ecx, 0x10
jmp 0x10053df4
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 0x10053e22
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053e1e
cmp dword [eax], 0
jne 0x10053e1e
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053e48
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x10053e38
sub eax, 1
jne 0x10053e48
shl ecx, 0x10
jmp 0x10053e48
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 0x10053e75
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053e71
cmp dword [eax], 0
jne 0x10053e71
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053eaa
mov eax, dword [esp + 0x38]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10053e93
sub eax, 1
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
jne 0x10053eaa
shl ecx, 0x10
jmp 0x10053eaa
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 0x10053edb
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053ed7
cmp dword [eax], 0
jne 0x10053ed7
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053f10
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10053ef9
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x10053f10
shl ecx, 0x10
jmp 0x10053f10
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.1004efd0
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 0x10053d36
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 0x1004ff5e
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 0x1005441c
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 0x100541db
cmp edi, eax
jb 0x10053ff7
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053ff3
cmp dword [eax], 0
jne 0x10053ff3
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005401d
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x1005400d
sub eax, 1
jne 0x1005401d
shl ecx, 0x10
jmp 0x1005401d
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 0x10054053
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005404f
cmp dword [eax], 0
jne 0x1005404f
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10054079
mov eax, dword [ecx + ebp*8 + 4]
mov ecx, dword [ecx + ebp*8]
sub eax, 1
je 0x10054069
sub eax, 1
jne 0x10054079
shl ecx, 0x10
jmp 0x10054079
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 0x100540a8
mov eax, dword [ebx + 4]
test eax, eax
je 0x100540a4
cmp dword [eax], 0
jne 0x100540a4
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100540ce
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x100540be
sub eax, 1
jne 0x100540ce
shl ecx, 0x10
jmp 0x100540ce
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 0x100540fe
mov eax, dword [ebx + 4]
test eax, eax
je 0x100540fa
cmp dword [eax], 0
jne 0x100540fa
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10054133
mov eax, dword [esp + 0x38]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1005411c
sub eax, 1
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
jne 0x10054133
shl ecx, 0x10
jmp 0x10054133
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 0x100541cc
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 0x10054173
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005416f
cmp dword [eax], 0
jne 0x1005416f
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100541a8
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10054191
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x100541a8
shl ecx, 0x10
jmp 0x100541a8
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 0x100543c2
xor al, al
mov dword [esp + 0x24], esi
mov byte [esp + 0x43], al
jmp 0x100543c2
mov edx, dword [esp + 0x24]
mov dword [esp + 0x50], edx
cmp edi, eax
jb 0x100541fd
mov eax, dword [ebx + 4]
test eax, eax
je 0x100541f9
cmp dword [eax], 0
jne 0x100541f9
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10054223
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x10054213
sub eax, 1
jne 0x10054223
shl ecx, 0x10
jmp 0x10054223
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 0x10054252
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005424e
cmp dword [eax], 0
jne 0x1005424e
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10054278
mov eax, dword [ecx + ebp*8 + 4]
mov ecx, dword [ecx + ebp*8]
sub eax, 1
je 0x10054268
sub eax, 1
jne 0x10054278
shl ecx, 0x10
jmp 0x10054278
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 0x100542a7
mov eax, dword [ebx + 4]
test eax, eax
je 0x100542a3
cmp dword [eax], 0
jne 0x100542a3
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100542cd
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x100542bd
sub eax, 1
jne 0x100542cd
shl ecx, 0x10
jmp 0x100542cd
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 0x100542fd
mov eax, dword [ebx + 4]
test eax, eax
je 0x100542f9
cmp dword [eax], 0
jne 0x100542f9
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10054332
mov eax, dword [esp + 0x38]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1005431b
sub eax, 1
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
jne 0x10054332
shl ecx, 0x10
jmp 0x10054332
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 0x100543b9
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 0x1005436e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005436a
cmp dword [eax], 0
jne 0x1005436a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100543a3
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1005438c
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x100543a3
shl ecx, 0x10
jmp 0x100543a3
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 0x100543bd
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.1004efd0
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 0x10053fc7
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 0x1004ff5e
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x10054449
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx edx, cl
jmp 0x1005445c
mov eax, dword [esi]
test eax, eax
je 0x1005445a
cmp dword [eax], 0
jne 0x1005445a
mov dword [eax], 0x55
xor edx, edx
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x1005447a
mov cl, byte [eax]
inc eax
shl edx, 8
mov dword [esi + 0xc], eax
movzx eax, cl
movsx edx, dx
or edx, eax
jmp 0x10050f35
mov eax, dword [esi]
test eax, eax
je 0x1005448b
cmp dword [eax], 0
jne 0x1005448b
mov dword [eax], 0x55
shl edx, 8
xor eax, eax
movsx edx, dx
or edx, eax
jmp 0x10050f35
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 0x1004ff5e
cmp byte [esp + 0x2c], 0xf6
ja 0x100544e0
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 0x10054570
jmp 0x10050f48
cmp byte [esp + 0x2c], 0xfa
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
ja 0x10054528
shl edx, 8
cmp eax, ecx
jae 0x1005450b
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx eax, cl
lea esi, [eax - 0xf694]
add esi, edx
jmp 0x100544c8
mov eax, dword [esi]
test eax, eax
je 0x1005451c
cmp dword [eax], 0
jne 0x1005451c
mov dword [eax], 0x55
xor eax, eax
lea esi, [eax - 0xf694]
add esi, edx
jmp 0x100544c8
cmp byte [esp + 0x2c], 0xfe
ja 0x10054591
shl edx, 8
cmp eax, ecx
jae 0x10054541
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx eax, cl
jmp 0x10054554
mov eax, dword [esi]
test eax, eax
je 0x10054552
cmp dword [eax], 0
jne 0x10054552
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 0x10050f48
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 0x1004ff5e
cmp eax, ecx
jae 0x100545a0
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx edx, cl
jmp 0x100545b3
mov eax, dword [esi]
test eax, eax
je 0x100545b1
cmp dword [eax], 0
jne 0x100545b1
mov dword [eax], 0x55
xor edx, edx
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x100545c6
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx edi, cl
jmp 0x100545d9
mov eax, dword [esi]
test eax, eax
je 0x100545d7
cmp dword [eax], 0
jne 0x100545d7
mov dword [eax], 0x55
xor edi, edi
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x100545ec
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx esi, cl
jmp 0x100545ff
mov eax, dword [esi]
test eax, eax
je 0x100545fd
cmp dword [eax], 0
jne 0x100545fd
mov dword [eax], 0x55
xor esi, esi
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 8]
jae 0x1005461e
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 0x10054631
mov eax, dword [ecx]
test eax, eax
je 0x1005462f
cmp dword [eax], 0
jne 0x1005462f
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 0x10054678
cmp edx, 0x7d00
jg 0x1005465a
cmp edx, 0xffff8300
jge 0x1005466f
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 0x10050f35
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 0x10050f48
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 0x1004ff5e
cmp dword [eax - 4], 2
je 0x100546cc
mov eax, dword [ebx + 4]
test eax, eax
je 0x100546c8
cmp dword [eax], 0
jne 0x100546c8
mov dword [eax], 0xa0
xor edx, edx
jmp 0x100546d4
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 0x100546f6
mov eax, dword [ebx + 4]
test eax, eax
je 0x100546f2
cmp dword [eax], 0
jne 0x100546f2
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005471a
cmp dword [eax - 4], 2
je 0x10054712
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005470e
cmp dword [eax], 0
jne 0x1005470e
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x1005471a
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 0x1005473c
mov eax, dword [ebx + 4]
test eax, eax
je 0x10054738
cmp dword [eax], 0
jne 0x10054738
mov dword [eax], 0xa1
xor edi, edi
jmp 0x10054766
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x10054756
sub eax, 1
jne 0x10054766
shl edi, 0x10
jmp 0x10054766
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 0x10054784
mov eax, dword [ebx + 4]
test eax, eax
je 0x10054780
cmp dword [eax], 0
jne 0x10054780
mov dword [eax], 0xa1
xor esi, esi
jmp 0x100547ae
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1005479e
sub eax, 1
jne 0x100547ae
shl esi, 0x10
jmp 0x100547ae
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 0x100547cc
mov eax, dword [ebx + 4]
test eax, eax
je 0x100547c8
cmp dword [eax], 0
jne 0x100547c8
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x100547f6
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ebp, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x100547e6
sub eax, 1
jne 0x100547f6
shl ebp, 0x10
jmp 0x100547f6
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
cmp byte [esp + 0x3f10], 0
je 0x1005480a
mov eax, 0x12
jmp 0x10054e16
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x2f], 0
je 0x1005481e
mov eax, 0x12
jmp 0x10054e16
cmp dword [eax + 0x244], 0
jne 0x10054845
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x80]
cmp dword [eax + 0x34], 0
jne 0x10054841
mov eax, 0x12
jmp 0x10054e16
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 0x1005487c
mov edx, ecx
mov ecx, dword [esp + 0x30]
call fcn.1004bac0
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x5c], eax
call fcn.1004bac0
mov edx, eax
mov dword [esp + 0x3c], edx
cmp dword [esp + 0x5c], 0
jl 0x10054800
test edx, edx
js 0x10054800
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x2e], 0
je 0x10054952
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.1003bca0
test eax, eax
jne 0x10054e16
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 0x10054e16
mov ecx, dword [eax + 0xc]
call fcn.1003bdf0
mov edx, dword [esp + 0x5c]
lea eax, [esp + 0x84]
mov ecx, dword [esp + 0x30]
push eax
call fcn.1004d960
test eax, eax
jne 0x10054e16
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.1004f9c0
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 0x10054a05
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 0x10054a2c
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.1004d960
test eax, eax
jne 0x10054e16
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.1004f9c0
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 0x10054ac2
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 0x10054e16
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
je 0x10054b00
cmp eax, 5
jne 0x10054b57
cmp byte [esp + 0x2b], 0
jne 0x10054b57
test eax, eax
jne 0x10054b21
mov eax, dword [ebx + 4]
test eax, eax
je 0x10054b1d
cmp dword [eax], 0
jne 0x10054b1d
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10054b45
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10054b35
sub eax, 1
jne 0x10054b45
shl ecx, 0x10
jmp 0x10054b45
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 0x10054949
cmp byte [esp + 0x2f68], 0
je 0x10054be9
push dword [esp + 0x2fb4]
mov edx, dword [esp + 0x2fb4]
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x2f6d], 1
call fcn.1004ee50
cmp byte [esp + 0x2fb8], 0
je 0x10054bc9
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.1004e8e0
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 0x10054949
cmp byte [edi + 8], 0
jne 0x10054949
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov edx, dword [ebx + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
jbe 0x10054949
cmp byte [esp + 0x3f10], 0
je 0x10054c27
mov eax, 0x12
jmp 0x10054e16
cmp ecx, edx
jne 0x10054c41
mov eax, dword [ebx + 4]
test eax, eax
je 0x10054c3d
cmp dword [eax], 0
jne 0x10054c3d
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10054c65
cmp dword [ecx - 4], 2
je 0x10054c5d
mov eax, dword [ebx + 4]
test eax, eax
je 0x10054c59
cmp dword [eax], 0
jne 0x10054c59
mov dword [eax], 0xa0
xor edx, edx
jmp 0x10054c65
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jne 0x10054c83
mov eax, dword [ebx + 4]
test eax, eax
je 0x10054c7f
cmp dword [eax], 0
jne 0x10054c7f
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x10054ca7
cmp dword [eax - 4], 2
je 0x10054c9f
mov eax, dword [ebx + 4]
test eax, eax
je 0x10054c9b
cmp dword [eax], 0
jne 0x10054c9b
mov dword [eax], 0xa0
xor ebp, ebp
jmp 0x10054ca7
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ebp, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jne 0x10054cc5
mov eax, dword [ebx + 4]
test eax, eax
je 0x10054cc1
cmp dword [eax], 0
jne 0x10054cc1
mov dword [eax], 0xa1
xor edi, edi
jmp 0x10054cef
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x10054cdf
sub eax, 1
jne 0x10054cef
shl edi, 0x10
jmp 0x10054cef
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 0x10054d0d
mov eax, dword [ebx + 4]
test eax, eax
je 0x10054d09
cmp dword [eax], 0
jne 0x10054d09
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10054d37
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x10054d27
sub eax, 1
jne 0x10054d37
shl esi, 0x10
jmp 0x10054d37
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.1004d8a0
test eax, eax
jne 0x10054e16
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.1004f9c0
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.1004d8a0
test eax, eax
jne 0x10054e16
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.1004f9c0
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 0x10054e16
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 0x10054e25
cmp dword [ecx], 0
jne 0x10054e25
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 0x10054e5f
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 0x10054ea4
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 0x10054ee9
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 0x10054f0c
mov edx, eax
mov eax, dword [esp + 0x104]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
test ebx, ebx
je 0x10054f30
mov edx, dword [ebx + 8]
mov edi, dword [ebx]
test edx, edx
je 0x10054f20
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