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

Disassembly:
mov eax, 0x3ef4
call fcn.1011f4f0
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x74], 0x1312d00
xor eax, eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x68], eax
mov ebp, edx
push edi
mov eax, dword [esi + 0xb0]
lea ebx, [esi + 4]
mov ecx, dword [esi + 0x34]
mov edi, dword [esi]
mov dword [esp + 0x30], eax
mov eax, dword [eax + 0x218]
push 0x80
mov dword [esp + 0x68], ebx
mov dword [esp + 0x9c], ecx
mov eax, dword [eax + 0x220]
shl eax, 0x10
mov dword [esp + 0x98], eax
xor eax, eax
push eax
mov dword [esp + 0x60], eax
mov byte [esp + 0x64], al
mov byte [esp + 0x3f], al
mov dword [esp + 0x68], eax
lea eax, [esp + 0x160]
push eax
call fcn.10120570
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.10120570
mov eax, dword [esp + 0x3f14]
add esp, 0xc
movaps xmm0, xmmword [0x101772d0]
mov dword [esp + 0x1d8], esi
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x2f34], edi
mov dword [esp + 0x2f38], ebx
push 0xf1c
lea eax, [esp + 0x201c]
mov dword [esp + 0x2f50], 0
push 0
push eax
movups xmmword [esp + 0x2f48], xmm0
mov dword [esp + 0x2f5c], 0
call fcn.10120570
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.10120570
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.10120570
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 0x1004f86d
test esi, esi
jmp 0x1004f871
mov esi, ebx
test ebx, ebx
jns 0x1004f875
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 0x1004f8e7
mov eax, dword [ecx + 0x214]
mov esi, dword [eax + 0x614]
jmp 0x1004f8ec
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 0x100548f1
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 0x100548e1
je 0x1004fa2b
cmp esi, 0xfffffff
jg 0x100548e1
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 0x1004f98a
mov edx, dword [esp + 0x68]
test edx, edx
jle 0x1004f98a
lea eax, [edx*8]
push eax
push 0
push esi
call fcn.10120570
lea edi, [ebx + 8]
add esp, 0xc
mov dword [edi], esi
mov eax, esi
mov dword [esp + 0x20], edi
jmp 0x1004f99f
mov dword [ebx + 8], eax
lea edx, [ebx + 8]
mov dword [esp + 0x20], edx
test ecx, ecx
jne 0x100548e8
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.1004bf50
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 0x10054429
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 0x1004fa4e
lea edi, [ebx + 8]
xor eax, eax
mov dword [esp + 0x20], edi
mov dword [edi], eax
jmp 0x1004f9a3
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
jmp 0x1004fa4e
mov edi, dword [esp + 0x20]
mov eax, dword [edx + 0xc]
cmp eax, dword [edx + 8]
jb 0x1004fa6b
test ecx, ecx
mov edx, 0xb
mov eax, 0xe
cmove edx, eax
mov dword [esp + 0x2c], edx
jmp 0x1004fa9a
mov cl, byte [eax]
inc eax
mov dword [edx + 0xc], eax
mov dl, cl
mov dword [esp + 0x2c], edx
cmp cl, 0xb
je 0x1004fa81
cmp cl, 0xe
jne 0x1004fa96
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 0x1004fb44
test ah, ah
jne 0x1004fae7
cmp dl, 1
je 0x1004fae7
cmp dl, 3
je 0x1004fae7
cmp dl, 0xd
je 0x1004fae7
cmp dl, 0xa
je 0x1004fae7
cmp dl, 0xb
je 0x1004fae7
cmp dl, 0xc
je 0x1004fae7
cmp dl, 0xe
je 0x1004fae7
cmp dl, 0x20
jae 0x1004fae7
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1004fa4e
cmp dword [esp + 0x60], 0
mov edi, dword [esp + 0x20]
jle 0x1004fb1d
cmp dl, 0xa
je 0x1004fb1d
cmp dl, 0xb
je 0x1004fb1d
cmp dl, 0xc
je 0x1004fb1d
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 0x1004fb44
cmp dl, 0x20
jae 0x1004fb44
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 0x10054429
sub dword [esp + 0x78], 1
je 0x100542e0
movzx edx, dl
cmp edx, 0x1f
ja case.default.0x1004fb6c
jmp dword [edx*4 + 0x10054a20]
mov edx, dword [esp + 0x44]
cmp byte [edx + 9], 0
je case.0x1004fb6c.0
cmp byte [edx + 0x5d], 0
jne 0x100542e0
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1004fbb3
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004fba0
cmp dword [eax], 0
jne 0x1004fba0
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 0x1004fa4e
cmp dword [eax - 4], 2
je 0x1004fbde
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004fbcb
cmp dword [eax], 0
jne 0x1004fbcb
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 0x1004fa4e
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
test eax, eax
js case.0x1004fb6c.0
mov dword [edx + 0x78], eax
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1004fa4e
mov edx, dword [esp + 0x44]
cmp byte [edx + 9], 0
je case.0x1004fb6c.0
cmp dword [edx + 0x60], 0
je 0x100542e0
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 0x1004fc58
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 0x10054429
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1004fc75
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x1004fc71
cmp dword [ecx], 0
jne 0x1004fc71
mov dword [ecx], 0xa1
xor eax, eax
jmp 0x1004fc99
cmp dword [eax - 4], 2
je 0x1004fc91
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004fc8d
cmp dword [eax], 0
jne 0x1004fc8d
mov dword [eax], 0xa0
xor eax, eax
jmp 0x1004fc99
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
cmp eax, dword [esp + 0x68]
ja 0x100542e0
push eax
mov edx, ebx
mov ecx, esi
call fcn.1004f2d0
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 0x1004fa4e
test al, al
jne 0x1004fcdb
cmp byte [esp + 0xac], al
jne case.0x1004fb6c.0
xor eax, eax
jmp 0x1004fce5
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.1004edd0
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x224], 0
jne 0x10054429
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0xc], eax
jmp 0x1004fa4e
test al, al
jne 0x1004fd4a
cmp byte [esp + 0xac], al
jne case.0x1004fb6c.0
xor eax, eax
push eax
lea eax, [esp + 0x2f]
push eax
lea eax, [esp + 0xcc]
jmp 0x1004fcf2
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 0x1004fcf2
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi]
sub eax, ecx
sar eax, 3
cmp eax, 1
jbe 0x1004fdae
cmp byte [esp + 0x2b], 0
jne 0x1004fdae
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1004fd8c
sub eax, 1
jne 0x1004fd9c
shl ecx, 0x10
jmp 0x1004fd9c
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 0x10054429
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1004fdf1
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004fddd
cmp dword [eax], 0
jne 0x1004fddd
mov dword [eax], 0xa1
xor ecx, ecx
add esi, ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3f18], esi
jmp 0x10053116
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1004fe1b
sub eax, 1
jne 0x1004fe2b
shl ecx, 0x10
add esi, ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3f18], esi
jmp 0x10053116
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 0x10053116
mov ebp, dword [ebx + 0xc]
sub ebp, dword [edi]
xor edi, edi
sar ebp, 3
test ebp, ebp
je 0x1004ff2c
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 0x1004fe7f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004fe7b
cmp dword [eax], 0
jne 0x1004fe7b
mov dword [eax], 0x82
mov ecx, dword [ebx + 0xc]
mov edx, dword [esi]
xor esi, esi
jmp 0x1004fea5
mov eax, dword [edx + edi*8 + 4]
mov esi, dword [edx + edi*8]
sub eax, 1
je 0x1004fe95
sub eax, 1
jne 0x1004fea5
shl esi, 0x10
jmp 0x1004fea5
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 0x1004fed8
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004fed4
cmp dword [eax], 0
jne 0x1004fed4
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004feff
mov eax, dword [edx + edi*8 + 0xc]
mov ecx, dword [edx + edi*8 + 8]
sub eax, 1
je 0x1004feef
sub eax, 1
jne 0x1004feff
shl ecx, 0x10
jmp 0x1004feff
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.1004e960
add edi, 2
cmp edi, ebp
jb 0x1004fe50
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 0x1004fa4e
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 0x10053a4e
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x1004ff88
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004ff84
cmp dword [eax], 0
jne 0x1004ff84
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004ffae
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x1004ff9e
sub eax, 1
jne 0x1004ffae
shl ecx, 0x10
jmp 0x1004ffae
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
test dl, dl
je 0x1004ffc1
add ebp, ecx
mov dword [esp + 0x3f14], ebp
jmp 0x1004ffce
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.1004e960
mov dl, byte [esp + 0x43]
inc esi
mov eax, dword [esp + 0x20]
cmp esi, edi
jb 0x1004ff64
mov dword [esp + 0x24], ebp
jmp 0x10053a4e
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 0x1005028d
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 0x1005004f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005004b
cmp dword [eax], 0
jne 0x1005004b
mov dword [eax], 0x82
mov esi, dword [ebx + 0xc]
mov edx, dword [ecx]
xor ecx, ecx
jmp 0x10050076
mov eax, dword [edx + edi*8 - 0xc]
mov ecx, dword [edx + edi*8 - 0x10]
sub eax, 1
je 0x10050066
sub eax, 1
jne 0x10050076
shl ecx, 0x10
jmp 0x10050076
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 0x100500ae
mov eax, dword [ebx + 4]
test eax, eax
je 0x100500aa
cmp dword [eax], 0
jne 0x100500aa
mov ebp, dword [esp + 0x20]
mov dword [eax], 0x82
mov esi, dword [ebx + 0xc]
mov edx, dword [ebp]
xor ecx, ecx
jmp 0x100500d5
mov eax, dword [edx + edi*8 - 4]
mov ecx, dword [edx + edi*8 - 8]
sub eax, 1
je 0x100500c5
sub eax, 1
jne 0x100500d5
shl ecx, 0x10
jmp 0x100500d5
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 0x10050109
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050105
cmp dword [eax], 0
jne 0x10050105
mov dword [eax], 0x82
mov eax, dword [esp + 0x20]
mov esi, dword [ebx + 0xc]
mov edx, dword [eax]
xor ecx, ecx
jmp 0x1005012f
mov eax, dword [edx + edi*8 + 4]
mov ecx, dword [edx + edi*8]
sub eax, 1
je 0x1005011f
sub eax, 1
jne 0x1005012f
shl ecx, 0x10
jmp 0x1005012f
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 0x10050166
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050162
cmp dword [eax], 0
jne 0x10050162
mov dword [eax], 0x82
mov eax, dword [esp + 0x20]
mov esi, dword [ebx + 0xc]
mov edx, dword [eax]
xor ecx, ecx
jmp 0x1005018d
mov eax, dword [edx + edi*8 + 0xc]
mov ecx, dword [edx + edi*8 + 8]
sub eax, 1
je 0x1005017d
sub eax, 1
jne 0x1005018d
shl ecx, 0x10
jmp 0x1005018d
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 0x100501bc
mov eax, dword [ebx + 4]
test eax, eax
je 0x100501b8
cmp dword [eax], 0
jne 0x100501b8
mov dword [eax], 0x82
mov eax, dword [esp + 0x20]
mov esi, dword [ebx + 0xc]
mov edx, dword [eax]
xor ecx, ecx
jmp 0x100501e3
mov eax, dword [edx + edi*8 + 0x14]
mov ecx, dword [edx + edi*8 + 0x10]
sub eax, 1
je 0x100501d3
sub eax, 1
jne 0x100501e3
shl ecx, 0x10
jmp 0x100501e3
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 0x1005020f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005020b
cmp dword [eax], 0
jne 0x1005020b
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050236
mov eax, dword [edx + edi*8 + 0x1c]
mov ecx, dword [edx + edi*8 + 0x18]
sub eax, 1
je 0x10050226
sub eax, 1
jne 0x10050236
shl ecx, 0x10
jmp 0x10050236
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.1004eae0
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 0x10050020
mov edi, dword [esp + 0x20]
cmp byte [esp + 0x2c], 0x18
jne 0x10050379
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov esi, dword [edi]
sub eax, esi
sar eax, 3
cmp ebp, eax
jb 0x100502c4
mov eax, dword [ebx + 4]
test eax, eax
je 0x100502c0
cmp dword [eax], 0
jne 0x100502c0
mov dword [eax], 0x82
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebx + 8]
xor edx, edx
jmp 0x100502ea
mov eax, dword [esi + ebp*8 + 4]
mov edx, dword [esi + ebp*8]
sub eax, 1
je 0x100502da
sub eax, 1
jne 0x100502ea
shl edx, 0x10
jmp 0x100502ea
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 0x1005031d
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050319
cmp dword [eax], 0
jne 0x10050319
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050343
mov ecx, dword [esi + eax*8]
mov eax, dword [esi + eax*8 + 4]
sub eax, 1
je 0x10050333
sub eax, 1
jne 0x10050343
shl ecx, 0x10
jmp 0x10050343
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.1004e960
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0xc], eax
jmp 0x1004fa4e
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 0x1004fa4e
test al, al
je case.0x1004fb6c.0
cmp byte [esp + 0x2f68], 0
je 0x10050418
push dword [esp + 0x2fb4]
mov edx, dword [esp + 0x2fb4]
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x2f6d], 1
call fcn.1004e960
cmp byte [esp + 0x2fb8], 0
je 0x100503f8
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.1004e400
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 0x1004fa4e
cmp ecx, 0x10
jg 0x100542e0
lea eax, [ecx + 1]
cmp eax, dword [esp + 0x9c]
jb 0x1005045c
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x1005045a
cmp dword [eax], 0
jne 0x1005045a
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 0x1005048b
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050487
cmp dword [eax], 0
jne 0x10050487
mov dword [eax], 0xa1
xor eax, eax
jmp 0x100504af
cmp dword [eax - 4], 2
je 0x100504a7
mov eax, dword [ebx + 4]
test eax, eax
je 0x100504a3
cmp dword [eax], 0
jne 0x100504a3
mov dword [eax], 0xa0
xor eax, eax
jmp 0x100504af
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
mov ecx, dword [esp + 0x44]
cmp byte [ecx + 8], 0
je 0x100504dc
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + 0x268]
test ecx, ecx
je 0x100504dc
push eax
call fcn.1003bac0
mov edx, dword [esp + 0x14]
test eax, eax
je 0x100504d9
mov eax, dword [eax]
jmp 0x100504dc
or eax, 0xffffffff
cmp byte [esp + 0x2c], 0x1d
xorps xmm0, xmm0
mov ecx, dword [esp + 0x30]
movups xmmword [edx], xmm0
je 0x100505a5
mov ecx, dword [ecx + 0x234]
add ecx, eax
mov eax, dword [esp + 0x30]
cmp ecx, dword [eax + 0x22c]
jae 0x100542e0
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 0x10050573
mov eax, dword [eax + 0x264]
test eax, eax
je 0x1005054b
test ecx, ecx
je 0x10050543
mov eax, dword [eax + edx]
add eax, ecx
mov ecx, dword [esp + 0x14]
jmp 0x10050581
mov ecx, dword [esp + 0x14]
xor eax, eax
jmp 0x10050581
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 0x10050577
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 0x1004fa4e
mov ecx, dword [ecx + 0x238]
add ecx, eax
mov eax, dword [esp + 0x30]
cmp ecx, dword [eax + 0x230]
jae 0x100542e0
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 0x1004fa4e
cmp ecx, 1
jl 0x100542e0
dec ecx
mov eax, ecx
mov dword [esp + 0x18], ecx
cmp ecx, dword [esp + 0x9c]
jb 0x1005061c
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x1005061a
cmp dword [eax], 0
jne 0x1005061a
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 0x1004fa4e
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xc]
cmp eax, dword [edx + 8]
jae 0x10050647
mov cl, byte [eax]
inc eax
mov dword [edx + 0xc], eax
jmp 0x1005065a
mov eax, dword [edx]
test eax, eax
je 0x10050658
cmp dword [eax], 0
jne 0x10050658
mov dword [eax], 0x55
xor cl, cl
movzx eax, cl
add eax, 0xfffffff8
mov byte [esp + 0x43], cl
cmp eax, 0x1d
ja case.0x10050674.9
movzx eax, byte [eax + 0x10054ab8]
jmp dword [eax*4 + 0x10054aa0]
push 0
push 0x1015b9c8
jmp 0x100506e1
push 0
push 0x1015b868
lea eax, [esp + 0x1e0]
mov ecx, ebx
push eax
lea eax, [esp + 0x3f24]
push eax
lea edx, [esp + 0x3f24]
call fcn.1004eff0
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 0x1004fa4e
push 0
push 0x1015b9f4
jmp 0x100506e1
push 1
push 0x1015bb8c
lea eax, [esp + 0x1e0]
mov ecx, ebx
push eax
lea eax, [esp + 0x3f24]
push eax
lea edx, [esp + 0x3f24]
call fcn.1004eff0
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 0x1004fa4e
mov eax, dword [esp + 0x44]
cmp byte [eax + 9], 0
jne case.0x1005076e.0
cmp cl, 0x26
jae case.0x1005076e.0
mov al, byte [eax + 8]
test al, al
je 0x10050762
cmp dword [esp + 0x60], 0
jle 0x10050762
cmp cl, 0x11
je 0x10050762
mov eax, dword [edi]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x60], 0
mov dword [ebx + 0xc], eax
jmp 0x1004fa4e
movzx ecx, cl
cmp ecx, 0x21
ja case.0x1005076e.0
jmp dword [ecx*4 + 0x10054ad8]
test al, al
je case.0x1005076e.0
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi]
sub eax, ecx
sar eax, 3
test eax, eax
jne 0x100507a1
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005079d
cmp dword [eax], 0
jne 0x1005079d
mov dword [eax], 0x82
xor esi, esi
jmp 0x100507c5
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
sub eax, 1
je 0x100507b5
sub eax, 1
jne 0x100507c5
shl esi, 0x10
jmp 0x100507c5
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 0x100507ea
mov eax, dword [ebx + 4]
test eax, eax
je 0x100507e6
cmp dword [eax], 0
jne 0x100507e6
mov dword [eax], 0x82
xor edi, edi
jmp 0x1005080f
mov eax, dword [ecx + 0x14]
mov edi, dword [ecx + 0x10]
sub eax, 1
je 0x100507ff
sub eax, 1
jne 0x1005080f
shl edi, 0x10
jmp 0x1005080f
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 0x10050839
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050835
cmp dword [eax], 0
jne 0x10050835
mov dword [eax], 0x82
xor edx, edx
jmp 0x1005085e
mov eax, dword [ecx + 0x24]
mov edx, dword [ecx + 0x20]
sub eax, 1
je 0x1005084e
sub eax, 1
jne 0x1005085e
shl edx, 0x10
jmp 0x1005085e
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 0x10050884
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050880
cmp dword [eax], 0
jne 0x10050880
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100508a9
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub eax, 1
je 0x10050899
sub eax, 1
jne 0x100508a9
shl ecx, 0x10
jmp 0x100508a9
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 0x100508d0
mov eax, dword [ebx + 4]
test eax, eax
je 0x100508e6
cmp dword [eax], 0
jne 0x100508e6
mov dword [eax], 0x82
jmp 0x100508e6
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 0x1005090f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005090b
cmp dword [eax], 0
jne 0x1005090b
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050934
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
sub eax, 1
je 0x10050924
sub eax, 1
jne 0x10050934
shl ecx, 0x10
jmp 0x10050934
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 0x1005095b
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005096f
cmp dword [eax], 0
jne 0x1005096f
mov dword [eax], 0x82
jmp 0x1005096f
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 0x10050981
mov eax, dword [eax]
jmp 0x10050984
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.1004edd0
cmp byte [ebp + 0x224], 0
jne 0x10054429
mov ebp, dword [esp + 0x24]
jmp 0x10053214
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x100509e1
mov eax, dword [ebx + 4]
test eax, eax
je 0x100509dd
cmp dword [eax], 0
jne 0x100509dd
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10050a0b
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x100509fb
sub eax, 1
jne 0x10050a0b
shl edx, 0x10
jmp 0x10050a0b
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 0x10050a68
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050a24
cmp dword [eax], 0
jne 0x10050a24
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 0x10053f7a
mov eax, dword [ebx + 4]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x1004fa4e
cmp dword [eax], 0
jne 0x1004fa4e
mov dword [eax], 0x82
mov esi, dword [esp + 0x1c]
jmp 0x1004fa4e
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x10050a82
sub eax, 1
jne 0x10050a92
shl ecx, 0x10
jmp 0x10050a92
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test ecx, ecx
je 0x10050a24
test edx, edx
je 0x10050a24
mov edx, 1
jmp 0x10050a26
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x10050abe
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050aba
cmp dword [eax], 0
jne 0x10050aba
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10050ae8
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x10050ad8
sub eax, 1
jne 0x10050ae8
shl edx, 0x10
jmp 0x10050ae8
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 0x10050b03
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050b35
cmp dword [eax], 0
jne 0x10050b35
mov dword [eax], 0xa1
jmp 0x10050b35
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x10050b1d
sub eax, 1
jne 0x10050b2d
shl ecx, 0x10
jmp 0x10050b2d
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test ecx, ecx
jne 0x10050a9a
test edx, edx
jne 0x10050a9a
jmp 0x10050a24
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x10050b5f
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050b5b
cmp dword [eax], 0
jne 0x10050b5b
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10050b89
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x10050b79
sub eax, 1
jne 0x10050b89
shl edx, 0x10
jmp 0x10050b89
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 0x10050a39
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 0x1004fa4e
test al, al
je case.0x1005076e.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 0x10054190
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050bf5
cmp dword [eax], 0
jne 0x10050bf5
mov dword [eax], 0xa1
xor edx, edx
jmp 0x100541b4
test al, al
je case.0x1005076e.0
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x10050c21
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050c1d
cmp dword [eax], 0
jne 0x10050c1d
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10050c4b
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x10050c3b
sub eax, 1
jne 0x10050c4b
shl ecx, 0x10
jmp 0x10050c4b
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 0x10050c72
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050c6e
cmp dword [eax], 0
jne 0x10050c6e
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10050c9c
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10050c8c
sub eax, 1
jne 0x10050c9c
shl ecx, 0x10
jmp 0x10050c9c
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 0x10050cbe
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050cba
cmp dword [eax], 0
jne 0x10050cba
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10050ce8
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x10050cd8
sub eax, 1
jne 0x10050ce8
shl edx, 0x10
jmp 0x10050ce8
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 0x10050d05
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050d01
cmp dword [eax], 0
jne 0x10050d01
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10050d2f
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x10050d1f
sub eax, 1
jne 0x10050d2f
shl ecx, 0x10
jmp 0x10050d2f
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 0x10054429
cmp byte [esp + 0x37], 0
mov esi, dword [esp + 0x1c]
je 0x1005321c
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 0x1004fa4e
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x10050e03
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050da1
cmp dword [eax], 0
jne 0x10050da1
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 0x100511b6
mov esi, dword [esp + 0x1c]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x1004fa4e
cmp dword [eax], 0
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
jne 0x1004fa4e
mov dword [eax], 0x82
jmp 0x1004fa4e
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x10050e1d
sub eax, 1
jne 0x10050e2d
shl ecx, 0x10
jmp 0x10050e2d
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 0x10050dac
lea eax, [edi*8]
mov edi, dword [esp + 0x20]
add eax, ebp
mov ebp, dword [esp + 0x24]
cmp esi, eax
jne 0x10050e7e
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052a2c
cmp dword [eax], 0
jne 0x10052a2c
mov dword [eax], 0x82
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
jmp 0x1004fa4e
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 0x1004fa4e
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x10050ebc
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050eb8
cmp dword [eax], 0
jne 0x10050eb8
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10050ee6
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x10050ed6
sub eax, 1
jne 0x10050ee6
shl esi, 0x10
jmp 0x10050ee6
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 0x10050f03
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050eff
cmp dword [eax], 0
jne 0x10050eff
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10050f2d
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x10050f1d
sub eax, 1
jne 0x10050f2d
shl edx, 0x10
jmp 0x10050f2d
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 0x10050f6f
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 0x1004fa4e
cmp dword [eax], 0
jne 0x1004fa4e
mov dword [eax], 0x82
jmp 0x1004fa4e
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 0x1004fa4e
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x10050fb4
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050fb0
cmp dword [eax], 0
jne 0x10050fb0
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10050fde
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x10050fce
sub eax, 1
jne 0x10050fde
shl esi, 0x10
jmp 0x10050fde
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 0x10050ffb
mov eax, dword [ebx + 4]
test eax, eax
je 0x10050ff7
cmp dword [eax], 0
jne 0x10050ff7
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10051025
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x10051015
sub eax, 1
jne 0x10051025
shl edx, 0x10
jmp 0x10051025
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 0x10050f40
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 0x1004fa4e
test al, al
je 0x10051110
cmp byte [esp + 0x5c], 0
je 0x10051110
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x10051093
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005108f
cmp dword [eax], 0
jne 0x1005108f
mov dword [eax], 0xa1
xor edx, edx
jmp 0x100510b7
cmp dword [eax - 4], 2
je 0x100510af
mov eax, dword [ebx + 4]
test eax, eax
je 0x100510ab
cmp dword [eax], 0
jne 0x100510ab
mov dword [eax], 0xa0
xor edx, edx
jmp 0x100510b7
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x100510db
mov eax, dword [ebx + 4]
test eax, eax
je 0x100510d0
cmp dword [eax], 0
jne 0x100510d0
mov dword [eax], 0xa1
xor ecx, ecx
mov byte [esp + 0x5c], cl
jmp 0x1005119e
cmp dword [eax - 4], 2
je 0x100510fe
mov eax, dword [ebx + 4]
test eax, eax
je 0x100510f3
cmp dword [eax], 0
jne 0x100510f3
mov dword [eax], 0xa0
xor ecx, ecx
mov byte [esp + 0x5c], cl
jmp 0x1005119e
add eax, 0xfffffff8
mov byte [esp + 0x5c], 0
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
jmp 0x1005119e
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005112d
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051129
cmp dword [eax], 0
jne 0x10051129
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10051157
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x10051147
sub eax, 1
jne 0x10051157
shl edx, 0x10
jmp 0x10051157
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 0x10051174
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051170
cmp dword [eax], 0
jne 0x10051170
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005119e
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005118e
sub eax, 1
jne 0x1005119e
shl ecx, 0x10
jmp 0x1005119e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.1003abf0
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov esi, dword [ebx + 0xc]
lea ecx, [ecx + edx*8]
cmp esi, ecx
je 0x10050a39
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 0x1004fa4e
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x10051229
mov eax, dword [ebx + 4]
test eax, eax
je 0x100511f0
cmp dword [eax], 0
jne 0x100511f0
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 0x10050a39
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 0x1004fa4e
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x10051243
sub eax, 1
jne 0x10051253
shl ecx, 0x10
jmp 0x10051253
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 0x100511fb
lea eax, [esi + eax*8]
cmp edx, eax
jne 0x10051296
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052a28
cmp dword [eax], 0
jne 0x10052a28
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax], 0x82
mov esi, dword [esp + 0x1c]
jmp 0x1004fa4e
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 0x1004fa4e
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x100512d8
mov eax, dword [ebx + 4]
test eax, eax
je 0x100512d4
cmp dword [eax], 0
jne 0x100512d4
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10051302
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x100512f2
sub eax, 1
jne 0x10051302
shl esi, 0x10
jmp 0x10051302
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 0x1005131f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005131b
cmp dword [eax], 0
jne 0x1005131b
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10051349
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x10051339
sub eax, 1
jne 0x10051349
shl edx, 0x10
jmp 0x10051349
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 0x10050f40
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 0x1004fa4e
mov ecx, dword [esp + 0x18]
test al, al
je 0x1004fa4e
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x100513b5
mov eax, dword [ebx + 4]
test eax, eax
je 0x100513b1
cmp dword [eax], 0
jne 0x100513b1
mov dword [eax], 0xa1
xor esi, esi
jmp 0x100513d9
cmp dword [eax - 4], 2
je 0x100513d1
mov eax, dword [ebx + 4]
test eax, eax
je 0x100513cd
cmp dword [eax], 0
jne 0x100513cd
mov dword [eax], 0xa0
xor esi, esi
jmp 0x100513d9
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x100513f6
mov eax, dword [ebx + 4]
test eax, eax
je 0x100513f2
cmp dword [eax], 0
jne 0x100513f2
mov dword [eax], 0xa1
xor edi, edi
jmp 0x1005141a
cmp dword [eax - 4], 2
je 0x10051412
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005140e
cmp dword [eax], 0
jne 0x1005140e
mov dword [eax], 0xa0
xor edi, edi
jmp 0x1005141a
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edi, dword [eax]
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0xc]
mov ebp, ecx
mov dword [esp + 0x38], edi
mov edx, dword [eax]
sub ebp, edx
sar ebp, 3
xor eax, eax
sub ebp, edi
mov dword [esp + 0x58], eax
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x60], eax
cmp esi, 0x1c
ja case.0x1005144e.4
movzx eax, byte [esi + 0x10054ba0]
jmp dword [eax*4 + 0x10054b60]
cmp edi, 3
jne 0x100542e0
cmp byte [esp + 0x37], 0
je 0x10051483
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x1d4], 0
je 0x100542e0
cmp dword [eax + 0x1d8], 7
jne 0x100542e0
mov eax, dword [ebx + 0x10]
mov ebp, dword [esp + 0x24]
lea eax, [edx + eax*8]
cmp ecx, eax
jne 0x100514a5
mov eax, dword [ebx + 4]
test eax, eax
je 0x100514b5
cmp dword [eax], 0
jne 0x100514b5
mov dword [eax], 0x82
jmp 0x100514b5
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 0x100514f3
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051503
cmp dword [eax], 0
jne 0x10051503
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax], 0x82
mov dword [esp + 0x58], 2
jmp 0x1004fa4e
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 0x1004fa4e
test edi, edi
jne 0x100542e0
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 0x1004fa4e
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 0x1005156c
push 0
mov edx, 6
call fcn.1003b2c0
test eax, eax
jne 0x10054429
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 0x1004fa4e
test edi, edi
jne 0x100542e0
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 0x1004fa4e
mov ecx, dword [esp + 0x30]
cmp dword [ecx + 0x1d4], 0
je 0x100542e0
mov esi, dword [ecx + 0x1d8]
lea eax, [esi + 1]
mov dword [ecx + 0x1d8], eax
lea eax, [esi - 1]
cmp eax, 5
ja 0x10052a20
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 0x10051617
push 0
mov edx, 1
call fcn.1003b2c0
test eax, eax
jne 0x100542e0
lea eax, [esi - 3]
cmp esi, 3
jg 0x10051621
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 0x10051647
cmp esi, 6
jne 0x10052a24
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.1004eae0
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x1004fa4e
cmp edi, 1
jne 0x100542e0
cmp byte [esp + 0x37], 0
je 0x100516f2
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 0x1004fa4e
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 0x1004fa4e
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x284]
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x100542e0
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 0x100542e0
lea edi, [edx + ebp]
test edx, edx
je 0x100518a0
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 0x1005179a
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051796
cmp dword [eax], 0
jne 0x10051796
mov dword [eax], 0x82
xor esi, esi
jmp 0x100517c0
mov eax, dword [esi + ebp*8 + 4]
mov esi, dword [esi + ebp*8]
sub eax, 1
je 0x100517b0
sub eax, 1
jne 0x100517c0
shl esi, 0x10
jmp 0x100517c0
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
cmp dword [ecx], 1
jbe 0x10051853
mov ebp, 1
mov dword [esp + 0x3c], 4
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, edx
sar eax, 3
cmp edi, eax
jb 0x100517fe
mov eax, dword [ebx + 4]
test eax, eax
je 0x100517fa
cmp dword [eax], 0
jne 0x100517fa
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10051824
mov eax, dword [edx + edi*8 + 4]
mov ecx, dword [edx + edi*8]
sub eax, 1
je 0x10051814
sub eax, 1
jne 0x10051824
shl ecx, 0x10
jmp 0x10051824
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.10032530
mov ecx, dword [esp + 0x2c]
inc ebp
add dword [esp + 0x3c], 4
add esi, eax
inc edi
cmp ebp, dword [ecx]
jb 0x100517d6
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 0x10051879
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005188a
cmp dword [eax], 0
jne 0x1005188a
mov dword [eax], 0x82
jmp 0x1005188a
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 0x10051772
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 0x100518e1
mov eax, dword [ebx + 4]
test eax, eax
je 0x100518ed
cmp dword [eax], 0
jne 0x100518ed
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 0x1004fa4e
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 0x1004fa4e
mov ebp, dword [esp + 0x30]
mov esi, dword [ebp + 0x284]
cmp edi, 1
jne 0x100542e0
test esi, esi
je 0x100542e0
cmp ecx, edx
jne 0x10051937
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051933
cmp dword [eax], 0
jne 0x10051933
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10051963
cmp dword [ecx - 4], 2
je 0x10051953
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005194f
cmp dword [eax], 0
jne 0x1005194f
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x10051963
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
test ecx, ecx
js 0x100542e0
mov edx, dword [esi]
lea eax, [edx + ecx]
cmp eax, dword [ebp + 0x28c]
ja 0x100542e0
lea eax, [edx*4]
push eax
mov eax, dword [ebp + 0x288]
push dword [esi + 0x88]
lea eax, [eax + ecx*4]
push eax
call fcn.1011fff0
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 0x1004fa4e
cmp edi, 2
jne 0x100542e0
cmp ecx, edx
jne 0x100519d0
mov eax, dword [ebx + 4]
test eax, eax
je 0x100519cc
cmp dword [eax], 0
jne 0x100519cc
mov dword [eax], 0xa1
xor esi, esi
jmp 0x100519fa
lea esi, [ecx - 8]
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x100519ea
sub eax, 1
jne 0x100519fa
shl esi, 0x10
jmp 0x100519fa
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 0x10051a1c
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051a18
cmp dword [eax], 0
jne 0x10051a18
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10051a46
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x10051a36
sub eax, 1
jne 0x10051a46
shl edx, 0x10
jmp 0x10051a46
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 0x10051a89
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051a9c
cmp dword [eax], 0
jne 0x10051a9c
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 0x1004fa4e
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 0x1004fa4e
cmp edi, 2
jne 0x100542e0
cmp ecx, edx
jne 0x10051ae0
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051adc
cmp dword [eax], 0
jne 0x10051adc
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10051b0a
lea esi, [ecx - 8]
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x10051afa
sub eax, 1
jne 0x10051b0a
shl esi, 0x10
jmp 0x10051b0a
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 0x10051b2c
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051b28
cmp dword [eax], 0
jne 0x10051b28
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10051b56
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x10051b46
sub eax, 1
jne 0x10051b56
shl edx, 0x10
jmp 0x10051b56
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 0x10051b85
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051a9c
cmp dword [eax], 0
jne 0x10051a9c
mov dword [eax], 0x82
jmp 0x10051a9c
sub edx, esi
mov dword [edi], edx
jmp 0x10051a8e
cmp edi, 2
jne 0x100542e0
cmp ecx, edx
jne 0x10051bb1
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051bad
cmp dword [eax], 0
jne 0x10051bad
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10051bdb
lea edx, [ecx - 8]
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x10051bcb
sub eax, 1
jne 0x10051bdb
shl edx, 0x10
jmp 0x10051bdb
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 0x10051bfc
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051bf8
cmp dword [eax], 0
jne 0x10051bf8
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10051c26
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x10051c16
sub eax, 1
jne 0x10051c26
shl ecx, 0x10
jmp 0x10051c26
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.10032530
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov esi, dword [ebx + 0xc]
lea ecx, [ecx + edx*8]
cmp esi, ecx
jne 0x10051c69
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051c79
cmp dword [eax], 0
jne 0x10051c79
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 0x1004fa4e
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 0x1004fa4e
cmp edi, 2
jne 0x100542e0
cmp ecx, edx
jne 0x10051cb9
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051cb5
cmp dword [eax], 0
jne 0x10051cb5
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10051ce3
lea edx, [ecx - 8]
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x10051cd3
sub eax, 1
jne 0x10051ce3
shl edx, 0x10
jmp 0x10051ce3
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 0x10051d04
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051d00
cmp dword [eax], 0
jne 0x10051d00
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10051d2e
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x10051d1e
sub eax, 1
jne 0x10051d2e
shl ecx, 0x10
jmp 0x10051d2e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test edx, edx
je 0x100542e0
call fcn.1003abf0
jmp 0x10051c2b
cmp edi, 2
jne 0x100542e0
mov ebp, dword [esp + 0x30]
cmp dword [ebp + 0x284], 0
je 0x100542e0
cmp ecx, edx
jne 0x10051d74
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051d70
cmp dword [eax], 0
jne 0x10051d70
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10051da0
cmp dword [ecx - 4], 2
je 0x10051d90
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051d8c
cmp dword [eax], 0
jne 0x10051d8c
mov dword [eax], 0xa0
xor edx, edx
jmp 0x10051da0
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
test edx, edx
js 0x100542e0
cmp edx, dword [ebp + 0x28c]
jae 0x100542e0
mov edi, dword [esp + 0x20]
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x10051de9
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051dc9
cmp dword [eax], 0
jne 0x10051dc9
mov dword [eax], 0xa1
mov eax, dword [ebp + 0x288]
xor ecx, ecx
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov dword [eax + edx*4], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x1004fa4e
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x10051e1f
sub eax, 1
jne 0x10051e2f
mov eax, dword [ebp + 0x288]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
shl ecx, 0x10
mov dword [eax + edx*4], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x1004fa4e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [ebp + 0x288]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov dword [eax + edx*4], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x1004fa4e
cmp edi, 1
jne 0x100542e0
mov ebp, dword [esp + 0x30]
cmp dword [ebp + 0x284], 0
je 0x100542e0
cmp ecx, edx
jne 0x10051e81
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051e7d
cmp dword [eax], 0
jne 0x10051e7d
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10051ead
cmp dword [ecx - 4], 2
je 0x10051e9d
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051e99
cmp dword [eax], 0
jne 0x10051e99
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x10051ead
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
test ecx, ecx
js 0x100542e0
cmp ecx, dword [ebp + 0x28c]
jae 0x100542e0
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 0x10051c3a
mov dword [edx], esi
jmp 0x10051c6b
cmp edi, 4
jne 0x100542e0
cmp ecx, edx
jne 0x10051f03
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051eff
cmp dword [eax], 0
jne 0x10051eff
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x10051f2d
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebp, dword [ecx]
sub eax, 1
je 0x10051f1d
sub eax, 1
jne 0x10051f2d
shl ebp, 0x10
jmp 0x10051f2d
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 0x10051f4e
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051f4a
cmp dword [eax], 0
jne 0x10051f4a
mov dword [eax], 0xa1
xor edi, edi
jmp 0x10051f78
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x10051f68
sub eax, 1
jne 0x10051f78
shl edi, 0x10
jmp 0x10051f78
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 0x10051f95
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051f91
cmp dword [eax], 0
jne 0x10051f91
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10051fbf
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x10051faf
sub eax, 1
jne 0x10051fbf
shl edx, 0x10
jmp 0x10051fbf
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 0x10051fdc
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051fd8
cmp dword [eax], 0
jne 0x10051fd8
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10052006
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
sub eax, 1
je 0x10051ff6
sub eax, 1
jne 0x10052006
shl esi, 0x10
jmp 0x10052006
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 0x10052038
mov eax, dword [ebx + 4]
test eax, eax
je 0x10051a9c
cmp dword [eax], 0
jne 0x10051a9c
mov dword [eax], 0x82
jmp 0x10051a9c
cmp edi, ebp
cmovle edx, esi
mov dword [ecx], edx
jmp 0x10051a8e
test edi, edi
jne 0x100542e0
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 0x10051ed9
jmp 0x10051c3a
test edi, edi
js 0x100542e0
test esi, esi
js 0x100542e0
cmp edi, 3
jle 0x100520b7
mov edi, 3
mov dword [esp + 0x60], edi
jmp 0x100520d4
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 0x1004fa4a
mov ebp, dword [esp + 0x20]
lea edx, [esp + edi*4 + 0x80]
nop
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebp]
jne 0x100520fe
mov eax, dword [ebx + 4]
test eax, eax
je 0x100520fa
cmp dword [eax], 0
jne 0x100520fa
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10052128
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x10052118
sub eax, 1
jne 0x10052128
shl ecx, 0x10
jmp 0x10052128
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov dword [edx], ecx
sub edx, 4
sub edi, 1
jne 0x100520e0
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 0x1004fa4e
mov ecx, dword [esp + 0x18]
test al, al
je 0x1004fa4e
mov eax, dword [esp + 0x58]
test eax, eax
jle 0x10052169
dec eax
mov dword [esp + 0x58], eax
jmp 0x1004fa4e
mov eax, dword [esp + 0x60]
test eax, eax
je 0x100542e0
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 0x10050a39
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 0x1004fa4e
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x100521df
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x1004fa4e
cmp dword [eax], 0
jne 0x1004fa4e
mov dword [eax], 0xa1
jmp 0x1004fa4e
mov ecx, dword [esp + 0x18]
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
jmp 0x1004fa4e
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005220b
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052207
cmp dword [eax], 0
jne 0x10052207
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005222f
cmp dword [eax - 4], 2
je 0x10052227
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052223
cmp dword [eax], 0
jne 0x10052223
mov dword [eax], 0xa0
xor esi, esi
jmp 0x1005222f
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005224c
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052248
cmp dword [eax], 0
jne 0x10052248
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10052276
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10052266
sub eax, 1
jne 0x10052276
shl ecx, 0x10
jmp 0x10052276
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x14]
cmp esi, 0x1f
ja 0x10050e71
mov dword [esp + esi*4 + 0x158], ecx
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
jmp 0x1004fa4e
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x100522be
mov eax, dword [ebx + 4]
test eax, eax
je 0x100522b0
cmp dword [eax], 0
jne 0x100522b0
mov dword [eax], 0xa1
xor eax, eax
mov esi, dword [esp + eax*4 + 0x158]
jmp 0x10052181
cmp dword [eax - 4], 2
je 0x100522e4
mov eax, dword [ebx + 4]
test eax, eax
je 0x100522d6
cmp dword [eax], 0
jne 0x100522d6
mov dword [eax], 0xa0
xor eax, eax
mov esi, dword [esp + eax*4 + 0x158]
jmp 0x10052181
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
test eax, eax
js 0x10052a2c
cmp eax, 0x20
jge 0x10052a2c
mov esi, dword [esp + eax*4 + 0x158]
jmp 0x10052181
mov ebp, dword [ebx + 0xc]
cmp ebp, dword [edi]
jne 0x10052326
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052322
cmp dword [eax], 0
jne 0x10052322
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x10052351
add ebp, 0xfffffff8
mov dword [ebx + 0xc], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
sub eax, 1
je 0x10052341
sub eax, 1
jne 0x10052351
shl ebp, 0x10
jmp 0x10052351
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 0x1005236e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005236a
cmp dword [eax], 0
jne 0x1005236a
mov dword [eax], 0xa1
xor edi, edi
jmp 0x10052398
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x10052388
sub eax, 1
jne 0x10052398
shl edi, 0x10
jmp 0x10052398
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 0x100523b9
mov eax, dword [ebx + 4]
test eax, eax
je 0x100523b5
cmp dword [eax], 0
jne 0x100523b5
mov dword [eax], 0xa1
xor edx, edx
jmp 0x100523e3
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x100523d3
sub eax, 1
jne 0x100523e3
shl edx, 0x10
jmp 0x100523e3
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 0x10052400
mov eax, dword [ebx + 4]
test eax, eax
je 0x100523fc
cmp dword [eax], 0
jne 0x100523fc
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005242a
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
sub eax, 1
je 0x1005241a
sub eax, 1
jne 0x1005242a
shl esi, 0x10
jmp 0x1005242a
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 0x1005244a
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
jmp 0x10050dcc
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 0x1004fa4e
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 0x10052194
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052a28
cmp dword [eax], 0
jne 0x10052a28
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax], 0x82
mov esi, dword [esp + 0x1c]
jmp 0x1004fa4e
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x10052502
mov eax, dword [ebx + 4]
test eax, eax
je 0x100524fe
cmp dword [eax], 0
jne 0x100524fe
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005252c
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005251c
sub eax, 1
jne 0x1005252c
shl edx, 0x10
jmp 0x1005252c
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 0x10052549
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052545
cmp dword [eax], 0
jne 0x10052545
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10052573
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x10052563
sub eax, 1
jne 0x10052573
shl ecx, 0x10
jmp 0x10052573
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.10032530
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov esi, dword [ebx + 0xc]
lea ecx, [ecx + edx*8]
cmp esi, ecx
jne 0x100511b6
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052a28
cmp dword [eax], 0
jne 0x10052a28
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax], 0x82
mov esi, dword [esp + 0x1c]
jmp 0x1004fa4e
mov ebp, dword [ebx + 0xc]
cmp ebp, dword [edi]
jne 0x100525f5
mov eax, dword [ebx + 4]
test eax, eax
je 0x100525cf
cmp dword [eax], 0
jne 0x100525cf
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 0x1005265d
mov edi, dword [esp + 0x20]
jmp 0x10050dd0
add ebp, 0xfffffff8
mov dword [ebx + 0xc], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
sub eax, 1
je 0x10052610
sub eax, 1
jne 0x10052620
shl ebp, 0x10
jmp 0x10052620
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
test ebp, ebp
jle 0x100525cf
mov eax, ebp
mov esi, ebp
sar eax, 1
mov ecx, ebp
cmp ebp, 0xa
cmovge esi, eax
mov edx, esi
call fcn.1003abf0
lea edi, [esi + 1]
add edi, eax
sar edi, 1
cmp edi, esi
je 0x100525d1
mov edx, edi
mov ecx, ebp
mov esi, edi
call fcn.1003abf0
inc edi
add edi, eax
sar edi, 1
cmp edi, esi
jne 0x10052644
jmp 0x100525d1
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 0x1004fa4e
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005269b
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052697
cmp dword [eax], 0
jne 0x10052697
mov dword [eax], 0xa1
xor edx, edx
jmp 0x100526c5
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x100526b5
sub eax, 1
jne 0x100526c5
shl edx, 0x10
jmp 0x100526c5
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 0x100526e8
mov eax, dword [ebx + 4]
test eax, eax
je 0x100526f8
cmp dword [eax], 0
jne 0x100526f8
mov dword [eax], 0x82
jmp 0x100526f8
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 0x1005416f
jmp 0x10050a39
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1005272d
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052729
cmp dword [eax], 0
jne 0x10052729
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10052757
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x10052747
sub eax, 1
jne 0x10052757
shl esi, 0x10
jmp 0x10052757
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 0x10052774
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052770
cmp dword [eax], 0
jne 0x10052770
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005279e
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005278e
sub eax, 1
jne 0x1005279e
shl edx, 0x10
jmp 0x1005279e
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 0x100527c5
mov eax, dword [ebx + 4]
test eax, eax
je 0x100527d5
cmp dword [eax], 0
jne 0x100527d5
mov dword [eax], 0x82
jmp 0x100527d5
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 0x1005416f
jmp 0x10050a39
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005280e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005280a
cmp dword [eax], 0
jne 0x1005280a
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10052832
cmp dword [eax - 4], 2
je 0x1005282a
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052826
cmp dword [eax], 0
jne 0x10052826
mov dword [eax], 0xa0
xor edx, edx
jmp 0x10052832
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 0x1004fa40
test edx, edx
jns 0x10052851
lea ecx, [eax - 1]
jmp 0x10052879
cmp edx, eax
jb 0x10052874
xor ecx, ecx
mov eax, dword [esi + ecx*8 + 4]
mov edx, dword [esi + ecx*8]
sub eax, 1
je 0x10052896
sub eax, 1
jne 0x100526f8
shl edx, 0x10
jmp 0x100526f8
mov ecx, eax
sub ecx, edx
dec ecx
cmp ecx, eax
jb 0x10052857
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005288f
cmp dword [eax], 0
jne 0x1005288f
mov dword [eax], 0x82
xor edx, edx
jmp 0x100526f8
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
jmp 0x100526f8
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x100528c8
mov eax, dword [ebx + 4]
test eax, eax
je 0x100528c4
cmp dword [eax], 0
jne 0x100528c4
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x100528ec
cmp dword [eax - 4], 2
je 0x100528e4
mov eax, dword [ebx + 4]
test eax, eax
je 0x100528e0
cmp dword [eax], 0
jne 0x100528e0
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x100528ec
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005291e
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052905
cmp dword [eax], 0
jne 0x10052905
mov dword [eax], 0xa1
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 2
jmp 0x1004fa4e
cmp dword [eax - 4], 2
je 0x1005294f
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052936
cmp dword [eax], 0
jne 0x10052936
mov dword [eax], 0xa0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 2
jmp 0x1004fa4e
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 0x10052a28
sub eax, dword [edi]
sar eax, 3
cmp edx, eax
jbe 0x100529a4
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052a28
cmp dword [eax], 0
jne 0x10052a28
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax], 0x82
jmp 0x1004fa4e
test ecx, ecx
jns 0x100529b7
neg ecx
mov eax, ecx
mov ecx, dword [esp + 0x3c]
cdq
idiv ecx
neg edx
jmp 0x100529c0
mov eax, ecx
mov ecx, dword [esp + 0x3c]
cdq
idiv ecx
mov dword [esp + 0x48], edx
test edx, edx
je 0x10052a28
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 0x10052a08
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 0x10052a39
sub esi, ebx
sub edi, eax
jmp 0x10052a41
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 0x1004fa4e
test esi, esi
jns 0x10052a41
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 0x100529e1
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 0x1004fa4e
test al, al
je case.0x1005076e.0
cmp byte [esp + 0x37], 0
je case.0x1005076e.0
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x10052ac9
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052ac5
cmp dword [eax], 0
jne 0x10052ac5
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10052af7
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 0x10052ae7
sub eax, 1
jne 0x10052afb
shl esi, 0x10
jmp 0x10052af7
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 0x10052b1f
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052b1b
cmp dword [eax], 0
jne 0x10052b1b
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x10052b4d
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 0x10052b3d
sub eax, 1
jne 0x10052b51
shl ebp, 0x10
jmp 0x10052b4d
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 0x1004fa4e
mov eax, dword [esp + 0x44]
cmp byte [eax + 8], 0
je case.0x1004fb6c.0
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x10052b9f
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052b9b
cmp dword [eax], 0
jne 0x10052b9b
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10052bc9
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x10052bb9
sub eax, 1
jne 0x10052bc9
shl ecx, 0x10
jmp 0x10052bc9
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 0x10052bf9
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052bf5
cmp dword [eax], 0
jne 0x10052bf5
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10052c23
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10052c13
sub eax, 1
jne 0x10052c23
shl ecx, 0x10
jmp 0x10052c23
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 0x10054429
cmp byte [esp + 0x37], 0
mov edx, dword [esp + 0x14]
je case.0x1005076e.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 0x1004fa4e
mov edi, dword [esp + 0x44]
cmp byte [edi + 8], 0
je 0x100545cb
test ah, ah
jne 0x100545cb
cmp byte [esp + 0x2f68], ah
je 0x10052cf3
push dword [esp + 0x2fb4]
mov edx, dword [esp + 0x2fb4]
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x2f6d], 1
call fcn.1004e960
cmp byte [esp + 0x2fb8], 0
je 0x10052cdb
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.1004e400
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 0x10052d2e
cmp byte [eax + 5], 0
je 0x10052d52
mov edx, dword [esp + 0x2f6c]
lea ecx, [esp + 0x1e0]
push 0
push dword [esp + 0x2f7c]
push eax
push dword [esp + 0x2f7c]
call fcn.1004da60
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 0x10052e12
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 0x10052df8
test ebx, ebx
je 0x10052df6
cmp dword [ebx], 0
jne 0x10052df6
mov dword [ebx], 0x82
xor ebp, ebp
imul ebp, edx
dec ecx
add ebp, esi
mov dword [esp + 0x14], ebp
test ecx, ecx
jg 0x10052de0
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 0x1004fa4e
mov eax, dword [ebx + 0xc]
sub eax, dword [edi]
sar eax, 3
cmp eax, 1
jbe 0x10052e49
cmp byte [esp + 0xac], 0
jne case.0x1004fb6c.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.1004edd0
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x224], 0
jne 0x10054429
cmp byte [esp + 0x2c], 0x13
jne 0x10052eaf
mov eax, dword [esp + 0xd8]
lea ecx, [esp + 0xa8]
add eax, dword [esp + 0xf8]
mov edx, dword [esp + 0x14]
push eax
call fcn.1004ed50
mov eax, dword [edi]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0xc], eax
jmp 0x1004fa4e
push 0xf1c
lea eax, [esp + 0x2fe4]
push 0
push eax
call fcn.10120570
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.1004ed50
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.1004da60
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0xc], eax
jmp 0x1004fa4e
mov eax, dword [ebx + 0xc]
mov edx, dword [edi]
sub eax, edx
sar eax, 3
cmp eax, 2
jbe 0x10052fd4
cmp byte [esp + 0x2b], 0
jne 0x10052fd4
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10052fb2
sub eax, 1
jne 0x10052fc2
shl ecx, 0x10
jmp 0x10052fc2
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 0x10054429
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x10053017
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053003
cmp dword [eax], 0
jne 0x10053003
mov dword [eax], 0xa1
xor ecx, ecx
add esi, ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3f18], esi
jmp 0x100530c2
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10053041
sub eax, 1
jne 0x10053051
shl ecx, 0x10
add esi, ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3f18], esi
jmp 0x100530c2
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 0x100530c2
mov eax, dword [ebx + 0xc]
mov edx, dword [edi]
sub eax, edx
sar eax, 3
cmp eax, 1
jbe 0x100530ac
cmp byte [esp + 0x2b], 0
jne 0x100530ac
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005308a
sub eax, 1
jne 0x1005309a
shl ecx, 0x10
jmp 0x1005309a
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 0x10054429
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x100530df
mov eax, dword [ebx + 4]
test eax, eax
je 0x100530db
cmp dword [eax], 0
jne 0x100530db
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10053109
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x100530f9
sub eax, 1
jne 0x10053109
shl ecx, 0x10
jmp 0x10053109
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 0x1005321c
cmp byte [esp + 0x2f68], 0
je 0x100531a0
push dword [esp + 0x2fb4]
mov edx, dword [esp + 0x2fb4]
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x2f6d], 1
call fcn.1004e960
cmp byte [esp + 0x2fb8], 0
je 0x10053188
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.1004e400
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 0x100531db
cmp byte [eax + 5], 0
je 0x100531ff
mov edx, dword [esp + 0x2f6c]
lea ecx, [esp + 0x1e0]
push 0
push dword [esp + 0x2f7c]
push eax
push dword [esp + 0x2f7c]
call fcn.1004da60
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 0x1004fa4e
mov ebp, dword [ebx + 0xc]
xor esi, esi
sub ebp, dword [edi]
sar ebp, 3
mov dword [esp + 0x48], ebp
cmp ebp, 6
jbe 0x10053331
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 0x10053278
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053274
cmp dword [eax], 0
jne 0x10053274
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005329e
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x1005328e
sub eax, 1
jne 0x1005329e
shl ecx, 0x10
jmp 0x1005329e
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 0x100532d6
mov eax, dword [ebx + 4]
test eax, eax
je 0x100532d2
cmp dword [eax], 0
jne 0x100532d2
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100532fd
mov eax, dword [edx + esi*8 + 0xc]
mov ecx, dword [edx + esi*8 + 8]
sub eax, 1
je 0x100532ed
sub eax, 1
jne 0x100532fd
shl ecx, 0x10
jmp 0x100532fd
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.1004e960
add edi, 2
add esi, 2
cmp edi, ebp
jb 0x10053250
mov edi, dword [esp + 0x20]
cmp esi, ebp
mov ebp, dword [esp + 0x24]
jae 0x10053a52
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 0x10053367
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053363
cmp dword [eax], 0
jne 0x10053363
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005338e
mov eax, dword [edx + esi*8 - 0xc]
mov ecx, dword [edx + esi*8 - 0x10]
sub eax, 1
je 0x1005337e
sub eax, 1
jne 0x1005338e
shl ecx, 0x10
jmp 0x1005338e
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 0x100533bb
mov eax, dword [ebx + 4]
test eax, eax
je 0x100533b7
cmp dword [eax], 0
jne 0x100533b7
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100533e2
mov eax, dword [edx + esi*8 - 4]
mov ecx, dword [edx + esi*8 - 8]
sub eax, 1
je 0x100533d2
sub eax, 1
jne 0x100533e2
shl ecx, 0x10
jmp 0x100533e2
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 0x10053414
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053410
cmp dword [eax], 0
jne 0x10053410
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005343a
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x1005342a
sub eax, 1
jne 0x1005343a
shl ecx, 0x10
jmp 0x1005343a
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 0x10053463
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005345f
cmp dword [eax], 0
jne 0x1005345f
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005348a
mov eax, dword [edx + esi*8 + 0xc]
mov ecx, dword [edx + esi*8 + 8]
sub eax, 1
je 0x1005347a
sub eax, 1
jne 0x1005348a
shl ecx, 0x10
jmp 0x1005348a
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 0x100534b7
mov eax, dword [ebx + 4]
test eax, eax
je 0x100534b3
cmp dword [eax], 0
jne 0x100534b3
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100534de
mov eax, dword [edx + esi*8 + 0x14]
mov ecx, dword [edx + esi*8 + 0x10]
sub eax, 1
je 0x100534ce
sub eax, 1
jne 0x100534de
shl ecx, 0x10
jmp 0x100534de
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 0x10053510
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005350c
cmp dword [eax], 0
jne 0x1005350c
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053537
mov eax, dword [edx + esi*8 + 0x1c]
mov ecx, dword [edx + esi*8 + 0x18]
sub eax, 1
je 0x10053527
sub eax, 1
jne 0x10053537
shl ecx, 0x10
jmp 0x10053537
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.1004eae0
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 0x10053340
jmp 0x10053a4e
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 0x10053a52
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 0x10053626
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x100535ef
mov eax, dword [ebx + 4]
test eax, eax
je 0x100535eb
cmp dword [eax], 0
jne 0x100535eb
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053615
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x10053605
sub eax, 1
jne 0x10053615
shl ecx, 0x10
jmp 0x10053615
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 0x1005364e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005364a
cmp dword [eax], 0
jne 0x1005364a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053674
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x10053664
sub eax, 1
jne 0x10053674
shl ecx, 0x10
jmp 0x10053674
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 0x100536a2
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005369e
cmp dword [eax], 0
jne 0x1005369e
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100536c8
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x100536b8
sub eax, 1
jne 0x100536c8
shl ecx, 0x10
jmp 0x100536c8
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 0x100536fb
mov eax, dword [ebx + 4]
test eax, eax
je 0x100536f7
cmp dword [eax], 0
jne 0x100536f7
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053721
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x10053711
sub eax, 1
jne 0x10053721
shl ecx, 0x10
jmp 0x10053721
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 0x1005374e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005374a
cmp dword [eax], 0
jne 0x1005374a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053783
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1005376c
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x10053783
shl ecx, 0x10
jmp 0x10053783
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.1004eae0
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 0x100535c0
jmp 0x10053a4e
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 0x10053a52
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 0x10053882
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x10053845
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053841
cmp dword [eax], 0
jne 0x10053841
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005386b
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x1005385b
sub eax, 1
jne 0x1005386b
shl ecx, 0x10
jmp 0x1005386b
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 0x10053886
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 0x100538ae
mov eax, dword [ebx + 4]
test eax, eax
je 0x100538aa
cmp dword [eax], 0
jne 0x100538aa
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100538d4
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x100538c4
sub eax, 1
jne 0x100538d4
shl ecx, 0x10
jmp 0x100538d4
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 0x10053902
mov eax, dword [ebx + 4]
test eax, eax
je 0x100538fe
cmp dword [eax], 0
jne 0x100538fe
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053928
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x10053918
sub eax, 1
jne 0x10053928
shl ecx, 0x10
jmp 0x10053928
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 0x10053955
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053951
cmp dword [eax], 0
jne 0x10053951
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005398a
mov eax, dword [esp + 0x38]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10053973
sub eax, 1
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
jne 0x1005398a
shl ecx, 0x10
jmp 0x1005398a
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 0x100539bb
mov eax, dword [ebx + 4]
test eax, eax
je 0x100539b7
cmp dword [eax], 0
jne 0x100539b7
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100539f0
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x100539d9
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x100539f0
shl ecx, 0x10
jmp 0x100539f0
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.1004eae0
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 0x10053816
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 0x1004fa4e
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 0x10053efc
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 0x10053cbb
cmp edi, eax
jb 0x10053ad7
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053ad3
cmp dword [eax], 0
jne 0x10053ad3
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053afd
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x10053aed
sub eax, 1
jne 0x10053afd
shl ecx, 0x10
jmp 0x10053afd
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 0x10053b33
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053b2f
cmp dword [eax], 0
jne 0x10053b2f
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053b59
mov eax, dword [ecx + ebp*8 + 4]
mov ecx, dword [ecx + ebp*8]
sub eax, 1
je 0x10053b49
sub eax, 1
jne 0x10053b59
shl ecx, 0x10
jmp 0x10053b59
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 0x10053b88
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053b84
cmp dword [eax], 0
jne 0x10053b84
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053bae
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x10053b9e
sub eax, 1
jne 0x10053bae
shl ecx, 0x10
jmp 0x10053bae
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 0x10053bde
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053bda
cmp dword [eax], 0
jne 0x10053bda
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053c13
mov eax, dword [esp + 0x38]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10053bfc
sub eax, 1
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
jne 0x10053c13
shl ecx, 0x10
jmp 0x10053c13
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 0x10053cac
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 0x10053c53
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053c4f
cmp dword [eax], 0
jne 0x10053c4f
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053c88
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10053c71
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x10053c88
shl ecx, 0x10
jmp 0x10053c88
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 0x10053ea2
xor al, al
mov dword [esp + 0x24], esi
mov byte [esp + 0x43], al
jmp 0x10053ea2
mov edx, dword [esp + 0x24]
mov dword [esp + 0x50], edx
cmp edi, eax
jb 0x10053cdd
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053cd9
cmp dword [eax], 0
jne 0x10053cd9
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053d03
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x10053cf3
sub eax, 1
jne 0x10053d03
shl ecx, 0x10
jmp 0x10053d03
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 0x10053d32
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053d2e
cmp dword [eax], 0
jne 0x10053d2e
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053d58
mov eax, dword [ecx + ebp*8 + 4]
mov ecx, dword [ecx + ebp*8]
sub eax, 1
je 0x10053d48
sub eax, 1
jne 0x10053d58
shl ecx, 0x10
jmp 0x10053d58
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 0x10053d87
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053d83
cmp dword [eax], 0
jne 0x10053d83
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053dad
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x10053d9d
sub eax, 1
jne 0x10053dad
shl ecx, 0x10
jmp 0x10053dad
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 0x10053ddd
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053dd9
cmp dword [eax], 0
jne 0x10053dd9
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053e12
mov eax, dword [esp + 0x38]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10053dfb
sub eax, 1
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
jne 0x10053e12
shl ecx, 0x10
jmp 0x10053e12
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 0x10053e99
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 0x10053e4e
mov eax, dword [ebx + 4]
test eax, eax
je 0x10053e4a
cmp dword [eax], 0
jne 0x10053e4a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10053e83
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10053e6c
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x10053e83
shl ecx, 0x10
jmp 0x10053e83
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 0x10053e9d
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.1004eae0
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 0x10053aa7
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 0x1004fa4e
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x10053f29
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx edx, cl
jmp 0x10053f3c
mov eax, dword [esi]
test eax, eax
je 0x10053f3a
cmp dword [eax], 0
jne 0x10053f3a
mov dword [eax], 0x55
xor edx, edx
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x10053f5a
mov cl, byte [eax]
inc eax
shl edx, 8
mov dword [esi + 0xc], eax
movzx eax, cl
movsx edx, dx
or edx, eax
jmp 0x10050a26
mov eax, dword [esi]
test eax, eax
je 0x10053f6b
cmp dword [eax], 0
jne 0x10053f6b
mov dword [eax], 0x55
shl edx, 8
xor eax, eax
movsx edx, dx
or edx, eax
jmp 0x10050a26
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 0x1004fa4e
cmp byte [esp + 0x2c], 0xf6
ja 0x10053fc0
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 0x10054050
jmp 0x10050a39
cmp byte [esp + 0x2c], 0xfa
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
ja 0x10054008
shl edx, 8
cmp eax, ecx
jae 0x10053feb
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx eax, cl
lea esi, [eax - 0xf694]
add esi, edx
jmp 0x10053fa8
mov eax, dword [esi]
test eax, eax
je 0x10053ffc
cmp dword [eax], 0
jne 0x10053ffc
mov dword [eax], 0x55
xor eax, eax
lea esi, [eax - 0xf694]
add esi, edx
jmp 0x10053fa8
cmp byte [esp + 0x2c], 0xfe
ja 0x10054071
shl edx, 8
cmp eax, ecx
jae 0x10054021
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx eax, cl
jmp 0x10054034
mov eax, dword [esi]
test eax, eax
je 0x10054032
cmp dword [eax], 0
jne 0x10054032
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 0x10050a39
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 0x1004fa4e
cmp eax, ecx
jae 0x10054080
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx edx, cl
jmp 0x10054093
mov eax, dword [esi]
test eax, eax
je 0x10054091
cmp dword [eax], 0
jne 0x10054091
mov dword [eax], 0x55
xor edx, edx
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x100540a6
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx edi, cl
jmp 0x100540b9
mov eax, dword [esi]
test eax, eax
je 0x100540b7
cmp dword [eax], 0
jne 0x100540b7
mov dword [eax], 0x55
xor edi, edi
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x100540cc
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx esi, cl
jmp 0x100540df
mov eax, dword [esi]
test eax, eax
je 0x100540dd
cmp dword [eax], 0
jne 0x100540dd
mov dword [eax], 0x55
xor esi, esi
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 8]
jae 0x100540fe
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 0x10054111
mov eax, dword [ecx]
test eax, eax
je 0x1005410f
cmp dword [eax], 0
jne 0x1005410f
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 0x10054158
cmp edx, 0x7d00
jg 0x1005413a
cmp edx, 0xffff8300
jge 0x1005414f
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 0x10050a26
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 0x10050a39
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 0x1004fa4e
cmp dword [eax - 4], 2
je 0x100541ac
mov eax, dword [ebx + 4]
test eax, eax
je 0x100541a8
cmp dword [eax], 0
jne 0x100541a8
mov dword [eax], 0xa0
xor edx, edx
jmp 0x100541b4
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 0x100541d6
mov eax, dword [ebx + 4]
test eax, eax
je 0x100541d2
cmp dword [eax], 0
jne 0x100541d2
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x100541fa
cmp dword [eax - 4], 2
je 0x100541f2
mov eax, dword [ebx + 4]
test eax, eax
je 0x100541ee
cmp dword [eax], 0
jne 0x100541ee
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x100541fa
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 0x1005421c
mov eax, dword [ebx + 4]
test eax, eax
je 0x10054218
cmp dword [eax], 0
jne 0x10054218
mov dword [eax], 0xa1
xor edi, edi
jmp 0x10054246
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x10054236
sub eax, 1
jne 0x10054246
shl edi, 0x10
jmp 0x10054246
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 0x10054264
mov eax, dword [ebx + 4]
test eax, eax
je 0x10054260
cmp dword [eax], 0
jne 0x10054260
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005428e
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1005427e
sub eax, 1
jne 0x1005428e
shl esi, 0x10
jmp 0x1005428e
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 0x100542ac
mov eax, dword [ebx + 4]
test eax, eax
je 0x100542a8
cmp dword [eax], 0
jne 0x100542a8
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x100542d6
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ebp, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x100542c6
sub eax, 1
jne 0x100542d6
shl ebp, 0x10
jmp 0x100542d6
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
cmp byte [esp + 0x3f10], 0
je 0x100542ea
mov eax, 0x12
jmp 0x100548f6
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x2f], 0
je 0x100542fe
mov eax, 0x12
jmp 0x100548f6
cmp dword [eax + 0x244], 0
jne 0x10054325
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x80]
cmp dword [eax + 0x34], 0
jne 0x10054321
mov eax, 0x12
jmp 0x100548f6
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 0x1005435c
mov edx, ecx
mov ecx, dword [esp + 0x30]
call fcn.1004b5f0
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x5c], eax
call fcn.1004b5f0
mov edx, eax
mov dword [esp + 0x3c], edx
cmp dword [esp + 0x5c], 0
jl 0x100542e0
test edx, edx
js 0x100542e0
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x2e], 0
je 0x10054432
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.1003b7e0
test eax, eax
jne 0x100548f6
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 0x100548f6
mov ecx, dword [eax + 0xc]
call fcn.1003b930
mov edx, dword [esp + 0x5c]
lea eax, [esp + 0x84]
mov ecx, dword [esp + 0x30]
push eax
call fcn.1004d480
test eax, eax
jne 0x100548f6
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.1004f4c0
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 0x100544e5
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 0x1005450c
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.1004d480
test eax, eax
jne 0x100548f6
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.1004f4c0
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 0x100545a2
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 0x100548f6
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
je 0x100545e0
cmp eax, 5
jne 0x10054637
cmp byte [esp + 0x2b], 0
jne 0x10054637
test eax, eax
jne 0x10054601
mov eax, dword [ebx + 4]
test eax, eax
je 0x100545fd
cmp dword [eax], 0
jne 0x100545fd
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10054625
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10054615
sub eax, 1
jne 0x10054625
shl ecx, 0x10
jmp 0x10054625
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 0x10054429
cmp byte [esp + 0x2f68], 0
je 0x100546c9
push dword [esp + 0x2fb4]
mov edx, dword [esp + 0x2fb4]
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x2f6d], 1
call fcn.1004e960
cmp byte [esp + 0x2fb8], 0
je 0x100546a9
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.1004e400
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 0x10054429
cmp byte [edi + 8], 0
jne 0x10054429
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov edx, dword [ebx + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
jbe 0x10054429
cmp byte [esp + 0x3f10], 0
je 0x10054707
mov eax, 0x12
jmp 0x100548f6
cmp ecx, edx
jne 0x10054721
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005471d
cmp dword [eax], 0
jne 0x1005471d
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10054745
cmp dword [ecx - 4], 2
je 0x1005473d
mov eax, dword [ebx + 4]
test eax, eax
je 0x10054739
cmp dword [eax], 0
jne 0x10054739
mov dword [eax], 0xa0
xor edx, edx
jmp 0x10054745
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jne 0x10054763
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005475f
cmp dword [eax], 0
jne 0x1005475f
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x10054787
cmp dword [eax - 4], 2
je 0x1005477f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005477b
cmp dword [eax], 0
jne 0x1005477b
mov dword [eax], 0xa0
xor ebp, ebp
jmp 0x10054787
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ebp, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jne 0x100547a5
mov eax, dword [ebx + 4]
test eax, eax
je 0x100547a1
cmp dword [eax], 0
jne 0x100547a1
mov dword [eax], 0xa1
xor edi, edi
jmp 0x100547cf
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x100547bf
sub eax, 1
jne 0x100547cf
shl edi, 0x10
jmp 0x100547cf
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 0x100547ed
mov eax, dword [ebx + 4]
test eax, eax
je 0x100547e9
cmp dword [eax], 0
jne 0x100547e9
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10054817
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x10054807
sub eax, 1
jne 0x10054817
shl esi, 0x10
jmp 0x10054817
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.1004d3c0
test eax, eax
jne 0x100548f6
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.1004f4c0
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.1004d3c0
test eax, eax
jne 0x100548f6
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.1004f4c0
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 0x100548f6
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 0x10054905
cmp dword [ecx], 0
jne 0x10054905
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 0x1005493f
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 0x10054984
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 0x100549c9
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 0x100549ec
mov edx, eax
mov eax, dword [esp + 0x104]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
test ebx, ebx
je 0x10054a10
mov edx, dword [ebx + 8]
mov edi, dword [ebx]
test edx, edx
je 0x10054a00
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