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

Disassembly:
mov eax, 0x3f04
call fcn.1018ef20
mov eax, dword [0x101f90c0]
xor eax, esp
mov dword [esp + 0x3efc], eax
mov eax, dword [esp + 0x3f08]
push ebx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x3f10]
push ebp
mov dword [esp + 0x70], eax
mov ebp, edx
mov eax, dword [esp + 0x3f24]
push esi
mov esi, ecx
mov dword [esp + 0x5c], eax
xor eax, eax
mov dword [esp + 0x3c], esi
mov dword [esp + 0x64], eax
push edi
mov eax, dword [esi + 0xb0]
lea ebx, [esi + 4]
mov ecx, dword [esi + 0x34]
mov edi, dword [esi]
mov dword [esp + 0x2c], eax
mov eax, dword [eax + 0x218]
push 0x80
push 0
mov dword [esp + 0x6c], ebx
mov eax, dword [eax + 0x220]
shl eax, 0x10
mov dword [esp + 0x94], eax
lea eax, [esp + 0x3e90]
push eax
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x60], 0
mov byte [esp + 0x64], 0
mov byte [esp + 0x3f], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x88], 0x1312d00
call fcn.1018fe70
xor eax, eax
mov dword [esp + 0x3e74], 0
add esp, 0xc
mov dword [esp + 0x6c], eax
xorps xmm0, xmm0
mov dword [esp + 0xfc], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd4], eax
push 0x2e08
push eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
lea eax, [esp + 0x140]
push eax
movq qword [esp + 0x3e6c], xmm0
movups xmmword [esp + 0x3e7c], xmm0
mov dword [esp + 0xec], edi
movq qword [esp + 0x3e8c], xmm0
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xf4], 0x10
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0xa
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0xcc], edi
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], 0x14
mov dword [esp + 0xdc], 0xa
mov dword [esp + 0xac], edi
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], 0x14
mov dword [esp + 0xbc], 0xa
movlpd qword [esp + 0x110], xmm0
movlpd qword [esp + 0x118], xmm0
movlpd qword [esp + 0x120], xmm0
mov dword [esp + 0x10c], ebx
call fcn.1018fe70
mov eax, dword [esp + 0x8c]
add esp, 0xc
mov dword [esp + 0x138], esi
mov dword [esp + 0x13c], eax
movaps xmm0, xmmword [0x101eb800]
lea eax, [esp + 0x1f78]
push 0xf1c
push 0
push eax
mov dword [esp + 0x2ea0], edi
mov dword [esp + 0x2ea4], ebx
movups xmmword [esp + 0x2ea8], xmm0
mov dword [esp + 0x2eb8], 0
mov dword [esp + 0x2ebc], 0
call fcn.1018fe70
mov eax, dword [esp + 0x9c]
add esp, 0xc
mov bl, byte [esi + 0xb8]
mov dword [esp + 0x1f88], eax
lea eax, [esp + 0x1f78]
mov dword [esp + 0x1f7c], eax
lea eax, [esp + 0x2e94]
push 0xf1c
mov dword [esp + 0x1f84], eax
lea eax, [esp + 0x1060]
push 0
push eax
mov byte [esp + 0x1f91], bl
mov dword [esp + 0x1f84], esi
call fcn.1018fe70
mov eax, dword [esp + 0x9c]
add esp, 0xc
mov dword [esp + 0x106c], eax
lea eax, [esp + 0x1f78]
mov dword [esp + 0x1060], eax
lea eax, [esp + 0x2e94]
mov dword [esp + 0x1064], eax
lea eax, [esp + 0x140]
push 0xf1c
push 0
push eax
mov byte [esp + 0x1075], bl
mov dword [esp + 0x1068], esi
call fcn.1018fe70
mov ecx, dword [esp + 0x9c]
lea eax, [esp + 0x1f84]
mov dword [esp + 0x150], eax
add esp, 0xc
mov dword [esp + 0x150], ecx
lea eax, [esp + 0x2e94]
mov dword [esp + 0x148], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x2eb4], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 0x2eb8], eax
mov dword [esp + 0x2ebc], ecx
mov ecx, dword [esp + 0x78]
mov byte [esp + 0x14d], bl
mov dword [esp + 0x140], esi
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x2ec0], eax
lea eax, [esp + 0xc0]
mov dword [esp + 0x2ecc], eax
lea eax, [esp + 0xa0]
mov dword [esp + 0x2ed0], eax
lea eax, [esp + 0x100]
mov dword [esp + 0x2ed4], eax
mov eax, dword [esp + 0x3f28]
mov dword [esp + 0x18], eax
mov dword [esp + 0x2ed8], eax
lea eax, [esi + 0xf0]
mov dword [esp + 0x2edc], eax
mov al, byte [esi + 0xb9]
mov esi, dword [esi + 0xe4]
mov byte [esp + 0x2eca], al
mov eax, dword [esp + 0x40]
mov dword [esp + 0x2ec4], ecx
mov dword [esp + 0x2ee0], esi
mov ebx, dword [eax + 0xe8]
mov eax, ebx
cdq
mov ecx, eax
mov dword [esp + 0x2ee4], ebx
xor ecx, edx
sub ecx, edx
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jle 0x1005b3a5
test esi, esi
jmp 0x1005b3a9
mov esi, ebx
test ebx, ebx
jns 0x1005b3ad
neg esi
mov ecx, dword [esp + 0x2c]
lea eax, [esi + esi]
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x2ee8], eax
mov dword [esp + 0x2eec], 0x199a
cmp byte [edx + 9], 0
mov byte [esp + 0x2ecb], 1
mov byte [esp + 0x2ec8], 0
setne byte [esp + 0x27]
mov byte [esp + 0x2ec9], 0
mov byte [esp + 0x2f18], 0
mov eax, dword [ecx + 0x218]
mov eax, dword [eax + 0x21c]
shl eax, 0x10
mov dword [esi], eax
cmp byte [edx + 9], 0
je 0x1005b41c
mov eax, dword [ecx + 0x214]
mov esi, dword [eax + 0x614]
jmp 0x1005b421
mov esi, 0x30
mov eax, dword [edi + 4]
mov edx, 0x14
mov ecx, edi
mov dword [esp + 0x74], esi
call eax
mov ebx, eax
mov dword [esp + 0x70], ebx
test ebx, ebx
je 0x1006044a
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 0x1006043a
je 0x1005b563
cmp esi, 0xfffffff
jg 0x1006043a
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 0x1005b4bf
mov edx, dword [esp + 0x74]
test edx, edx
jle 0x1005b4bf
lea eax, [edx*8]
push eax
push 0
push esi
call fcn.1018fe70
lea edi, [ebx + 8]
add esp, 0xc
mov dword [edi], esi
mov eax, esi
mov dword [esp + 0x1c], edi
jmp 0x1005b4d4
mov dword [ebx + 8], eax
lea edx, [ebx + 8]
mov dword [esp + 0x1c], edx
test ecx, ecx
jne 0x10060441
lea edi, [ebx + 8]
mov esi, dword [esp + 0x74]
mov dword [ebx + 0x10], esi
lea ecx, [esp + 0xe0]
mov esi, 0x11
mov dword [ebx + 0xc], eax
mov edx, esi
call fcn.10057980
mov ecx, dword [esp + 0xf4]
test al, al
mov eax, dword [esp + 0xfc]
mov edx, eax
cmovne ecx, esi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x10], edx
cmp dword [ecx], 0
jne 0x1005ff6f
movups xmm0, xmmword [ebp]
mov ebp, dword [esp + 0x3f24]
xor ecx, ecx
mov esi, dword [esp + 0x18]
movups xmmword [eax], xmm0
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x84], edi
mov dword [esp + 0x94], eax
mov dword [esp + 0x20], ebp
jmp 0x1005b581
lea edi, [ebx + 8]
xor eax, eax
mov dword [esp + 0x1c], edi
mov dword [edi], eax
jmp 0x1005b4d8
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
jmp 0x1005b581
mov edi, dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
cmp eax, dword [edx + 8]
jb 0x1005b59e
test ecx, ecx
mov edx, 0xb
mov eax, 0xe
cmove edx, eax
mov dword [esp + 0x28], edx
jmp 0x1005b5cd
mov cl, byte [eax]
inc eax
mov dword [edx + 0xc], eax
mov dl, cl
mov dword [esp + 0x28], edx
cmp cl, 0xb
je 0x1005b5b4
cmp cl, 0xe
jne 0x1005b5c9
mov ecx, dword [esp + 0x40]
movzx eax, dl
xor edx, edx
cmp byte [ecx + 9], dl
cmovne eax, edx
mov dl, al
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
mov al, byte [eax + 8]
mov ah, byte [esp + 0x33]
test al, al
je 0x1005b677
test ah, ah
jne 0x1005b61a
cmp dl, 1
je 0x1005b61a
cmp dl, 3
je 0x1005b61a
cmp dl, 0xd
je 0x1005b61a
cmp dl, 0xa
je 0x1005b61a
cmp dl, 0xb
je 0x1005b61a
cmp dl, 0xc
je 0x1005b61a
cmp dl, 0xe
je 0x1005b61a
cmp dl, 0x20
jae 0x1005b61a
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov dword [ebx + 0xc], eax
jmp 0x1005b581
cmp dword [esp + 0x5c], 0
mov edi, dword [esp + 0x1c]
jle 0x1005b650
cmp dl, 0xa
je 0x1005b650
cmp dl, 0xb
je 0x1005b650
cmp dl, 0xc
je 0x1005b650
mov ebx, dword [esp + 0x5c]
cmp dl, 0x20
mov dword [esp + 0x4c], 0
cmovb ebx, dword [esp + 0x4c]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x70]
cmp byte [esp + 0x58], 0
je 0x1005b677
cmp dl, 0x20
jae 0x1005b677
mov ecx, dword [esp + 0x58]
cmp dl, 0xc
movzx ecx, cl
mov dword [esp + 0x4c], 0
cmovne ecx, dword [esp + 0x4c]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x64]
cmp dword [ecx], 0
mov ecx, dword [esp + 0x14]
jne 0x1005ff6f
sub dword [esp + 0x7c], 1
je 0x1005fe20
movzx edx, dl
cmp edx, 0x1f
ja case.default.0x1005b69f
jmp dword [edx*4 + 0x10060584]
mov edx, dword [esp + 0x40]
cmp byte [edx + 9], 0
je case.0x1005b69f.0
cmp byte [edx + 0x5d], 0
jne 0x1005fe20
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005b6e6
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005b6d3
cmp dword [eax], 0
jne 0x1005b6d3
mov dword [eax], 0xa1
xor eax, eax
mov dword [edx + 0x78], eax
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov dword [ebx + 0xc], eax
jmp 0x1005b581
cmp dword [eax - 4], 2
je 0x1005b711
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005b6fe
cmp dword [eax], 0
jne 0x1005b6fe
mov dword [eax], 0xa0
xor eax, eax
mov dword [edx + 0x78], eax
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov dword [ebx + 0xc], eax
jmp 0x1005b581
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
test eax, eax
js case.0x1005b69f.0
mov dword [edx + 0x78], eax
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov dword [ebx + 0xc], eax
jmp 0x1005b581
mov edx, dword [esp + 0x40]
cmp byte [edx + 9], 0
je case.0x1005b69f.0
cmp dword [edx + 0x60], 0
je 0x1005fe20
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 0x1005b78b
mov ecx, dword [esp + 0x40]
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 + 0x68], eax
test eax, eax
jne 0x1005ff6f
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005b7a8
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x1005b7a4
cmp dword [ecx], 0
jne 0x1005b7a4
mov dword [ecx], 0xa1
xor eax, eax
jmp 0x1005b7cc
cmp dword [eax - 4], 2
je 0x1005b7c4
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005b7c0
cmp dword [eax], 0
jne 0x1005b7c0
mov dword [eax], 0xa0
xor eax, eax
jmp 0x1005b7cc
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
cmp eax, dword [esp + 0x74]
ja 0x1005fe20
push eax
mov edx, ebx
mov ecx, esi
call fcn.1005adc0
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov byte [eax + 0x5d], 1
jmp 0x1005b581
test al, al
jne 0x1005b80e
cmp byte [esp + 0x104], al
jne case.0x1005b69f.0
xor eax, eax
jmp 0x1005b818
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x20]
mov eax, dword [eax + 4]
push eax
lea eax, [esp + 0x2b]
push eax
lea eax, [esp + 0xc8]
push dword [esp + 0x68]
mov ecx, dword [esp + 0x4c]
mov edx, ebx
push eax
call fcn.1005a890
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x224], 0
jne 0x1005ff6f
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1005b581
test al, al
jne 0x1005b87a
cmp byte [esp + 0x104], al
jne case.0x1005b69f.0
xor eax, eax
push eax
lea eax, [esp + 0x2b]
push eax
lea eax, [esp + 0xa8]
jmp 0x1005b825
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x20]
mov eax, dword [eax]
push eax
lea eax, [esp + 0x2b]
push eax
lea eax, [esp + 0xa8]
jmp 0x1005b825
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi]
sub eax, ecx
sar eax, 3
cmp eax, 1
jbe 0x1005b8db
cmp byte [esp + 0x27], 0
jne 0x1005b8db
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1005b8bc
sub eax, 1
jne 0x1005b8cc
shl ecx, 0x10
jmp 0x1005b8cc
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x60]
mov dword [ecx], eax
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x27], 1
cmp byte [eax + 0x224], 0
jne 0x1005ff6f
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005b91e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005b90a
cmp dword [eax], 0
jne 0x1005b90a
mov dword [eax], 0xa1
xor ecx, ecx
add esi, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x3f28], esi
jmp 0x1005ec4d
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005b948
sub eax, 1
jne 0x1005b958
shl ecx, 0x10
add esi, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x3f28], esi
jmp 0x1005ec4d
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
add esi, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x3f28], esi
jmp 0x1005ec4d
mov ebp, dword [ebx + 0xc]
sub ebp, dword [edi]
xor edi, edi
sar ebp, 3
test ebp, ebp
je 0x1005ba5c
nop dword [eax]
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov edx, dword [esi]
sub eax, edx
sar eax, 3
cmp edi, eax
jb 0x1005b9af
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005b9ab
cmp dword [eax], 0
jne 0x1005b9ab
mov dword [eax], 0x82
mov ecx, dword [ebx + 0xc]
mov edx, dword [esi]
xor esi, esi
jmp 0x1005b9d5
mov eax, dword [edx + edi*8 + 4]
mov esi, dword [edx + edi*8]
sub eax, 1
je 0x1005b9c5
sub eax, 1
jne 0x1005b9d5
shl esi, 0x10
jmp 0x1005b9d5
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov eax, dword [esp + 0x20]
sub ecx, edx
add eax, esi
sar ecx, 3
mov dword [esp + 0x20], eax
mov dword [esp + 0x3f24], eax
lea eax, [edi + 1]
cmp eax, ecx
jb 0x1005ba08
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ba04
cmp dword [eax], 0
jne 0x1005ba04
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005ba2f
mov eax, dword [edx + edi*8 + 0xc]
mov ecx, dword [edx + edi*8 + 8]
sub eax, 1
je 0x1005ba1f
sub eax, 1
jne 0x1005ba2f
shl ecx, 0x10
jmp 0x1005ba2f
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
add esi, ecx
push esi
lea ecx, [esp + 0x13c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3f2c], esi
call fcn.1005a410
add edi, 2
cmp edi, ebp
jb 0x1005b980
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [edi]
mov dword [ebx + 0xc], eax
jmp 0x1005b581
mov eax, dword [esp + 0x1c]
mov edi, dword [ebx + 0xc]
sub edi, dword [eax]
sar edi, 3
cmp byte [esp + 0x28], 6
sete dl
xor esi, esi
test edi, edi
je 0x1005f57e
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x1005bab8
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005bab4
cmp dword [eax], 0
jne 0x1005bab4
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005bade
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x1005bace
sub eax, 1
jne 0x1005bade
shl ecx, 0x10
jmp 0x1005bade
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x18]
test dl, dl
je 0x1005baf1
add ebp, ecx
mov dword [esp + 0x3f24], ebp
jmp 0x1005bafe
add eax, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x3f28], eax
xor dl, 1
lea ecx, [esp + 0x138]
mov byte [esp + 0x3f], dl
mov edx, ebp
push eax
call fcn.1005a410
mov dl, byte [esp + 0x3f]
inc esi
mov eax, dword [esp + 0x1c]
cmp esi, edi
jb 0x1005ba94
mov dword [esp + 0x20], ebp
jmp 0x1005f57e
mov eax, dword [ebx + 0xc]
xor ebp, ebp
sub eax, dword [edi]
sar eax, 3
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ebp
cmp eax, 6
jb 0x1005bdbc
lea edi, [ebp + 2]
nop dword [eax]
mov ecx, dword [esp + 0x1c]
mov esi, dword [ebx + 0xc]
mov eax, esi
mov edx, dword [ecx]
sub eax, edx
sar eax, 3
cmp ebp, eax
jb 0x1005bb7f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005bb7b
cmp dword [eax], 0
jne 0x1005bb7b
mov dword [eax], 0x82
mov esi, dword [ebx + 0xc]
mov edx, dword [ecx]
xor ecx, ecx
jmp 0x1005bba6
mov eax, dword [edx + edi*8 - 0xc]
mov ecx, dword [edx + edi*8 - 0x10]
sub eax, 1
je 0x1005bb96
sub eax, 1
jne 0x1005bba6
shl ecx, 0x10
jmp 0x1005bba6
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x20]
add eax, ecx
mov ecx, esi
sub ecx, edx
mov dword [esp + 0x44], eax
sar ecx, 3
lea eax, [edi - 1]
cmp eax, ecx
jb 0x1005bbdd
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005bbd9
cmp dword [eax], 0
jne 0x1005bbd9
mov edx, dword [esp + 0x1c]
mov dword [eax], 0x82
mov esi, dword [ebx + 0xc]
mov edx, dword [edx]
xor ecx, ecx
jmp 0x1005bc04
mov eax, dword [edx + edi*8 - 4]
mov ecx, dword [edx + edi*8 - 8]
sub eax, 1
je 0x1005bbf4
sub eax, 1
jne 0x1005bc04
shl ecx, 0x10
jmp 0x1005bc04
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebp, dword [esp + 0x18]
mov eax, esi
sub eax, edx
add ebp, ecx
sar eax, 3
mov dword [esp + 0x4c], ebp
cmp edi, eax
jb 0x1005bc38
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005bc34
cmp dword [eax], 0
jne 0x1005bc34
mov dword [eax], 0x82
mov eax, dword [esp + 0x1c]
mov esi, dword [ebx + 0xc]
mov edx, dword [eax]
xor ecx, ecx
jmp 0x1005bc5e
mov eax, dword [edx + edi*8 + 4]
mov ecx, dword [edx + edi*8]
sub eax, 1
je 0x1005bc4e
sub eax, 1
jne 0x1005bc5e
shl ecx, 0x10
jmp 0x1005bc5e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x44]
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 0x1005bc95
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005bc91
cmp dword [eax], 0
jne 0x1005bc91
mov dword [eax], 0x82
mov eax, dword [esp + 0x1c]
mov esi, dword [ebx + 0xc]
mov edx, dword [eax]
xor ecx, ecx
jmp 0x1005bcbc
mov eax, dword [edx + edi*8 + 0xc]
mov ecx, dword [edx + edi*8 + 8]
sub eax, 1
je 0x1005bcac
sub eax, 1
jne 0x1005bcbc
shl ecx, 0x10
jmp 0x1005bcbc
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 0x1005bceb
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005bce7
cmp dword [eax], 0
jne 0x1005bce7
mov dword [eax], 0x82
mov eax, dword [esp + 0x1c]
mov esi, dword [ebx + 0xc]
mov edx, dword [eax]
xor ecx, ecx
jmp 0x1005bd12
mov eax, dword [edx + edi*8 + 0x14]
mov ecx, dword [edx + edi*8 + 0x10]
sub eax, 1
je 0x1005bd02
sub eax, 1
jne 0x1005bd12
shl ecx, 0x10
jmp 0x1005bd12
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x48]
sub esi, edx
add eax, ecx
sar esi, 3
mov dword [esp + 0x20], eax
lea eax, [edi + 3]
cmp eax, esi
jb 0x1005bd3e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005bd3a
cmp dword [eax], 0
jne 0x1005bd3a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005bd65
mov eax, dword [edx + edi*8 + 0x1c]
mov ecx, dword [edx + edi*8 + 0x18]
sub eax, 1
je 0x1005bd55
sub eax, 1
jne 0x1005bd65
shl ecx, 0x10
jmp 0x1005bd65
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov esi, dword [esp + 0x20]
lea eax, [ecx + ebp]
mov edx, dword [esp + 0x44]
lea ecx, [esp + 0x138]
push eax
push esi
push ebp
push dword [esp + 0x54]
mov dword [esp + 0x28], eax
push dword [esp + 0x5c]
call fcn.1005a590
mov ebp, dword [esp + 0x38]
add edi, 6
add ebp, 6
mov dword [esp + 0x3f24], esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x3f28], esi
lea eax, [edi + 4]
mov dword [esp + 0x38], ebp
cmp eax, dword [esp + 0x34]
jbe 0x1005bb50
mov edi, dword [esp + 0x1c]
cmp byte [esp + 0x28], 0x18
jne 0x1005bea8
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov esi, dword [edi]
sub eax, esi
sar eax, 3
cmp ebp, eax
jb 0x1005bdf3
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005bdef
cmp dword [eax], 0
jne 0x1005bdef
mov dword [eax], 0x82
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebx + 8]
xor edx, edx
jmp 0x1005be19
mov eax, dword [esi + ebp*8 + 4]
mov edx, dword [esi + ebp*8]
sub eax, 1
je 0x1005be09
sub eax, 1
jne 0x1005be19
shl edx, 0x10
jmp 0x1005be19
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esp + 0x20]
sub ecx, esi
add eax, edx
sar ecx, 3
mov dword [esp + 0x20], eax
mov dword [esp + 0x3f24], eax
lea eax, [ebp + 1]
cmp eax, ecx
jb 0x1005be4c
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005be48
cmp dword [eax], 0
jne 0x1005be48
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005be72
mov ecx, dword [esi + eax*8]
mov eax, dword [esi + eax*8 + 4]
sub eax, 1
je 0x1005be62
sub eax, 1
jne 0x1005be72
shl ecx, 0x10
jmp 0x1005be72
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
add esi, ecx
push esi
mov edx, ebp
mov dword [esp + 0x1c], esi
lea ecx, [esp + 0x13c]
mov dword [esp + 0x3f2c], esi
call fcn.1005a410
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1005b581
mov eax, dword [edi]
mov ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1005b581
test al, al
je case.0x1005b69f.0
cmp byte [esp + 0x2ec8], 0
je 0x1005bf4b
push dword [esp + 0x2f14]
mov edx, dword [esp + 0x2f14]
lea ecx, [esp + 0x13c]
mov byte [esp + 0x2ecd], 1
call fcn.1005a410
cmp byte [esp + 0x2f18], 0
je 0x1005bf2b
push 1
push dword [esp + 0x2f00]
lea eax, [esp + 0x2ef8]
push dword [esp + 0x2f00]
lea edx, [esp + 0x14c]
push eax
lea ecx, [esp + 0x148]
call fcn.10059e80
mov byte [esp + 0x2ecb], 1
mov byte [esp + 0x2ec8], 0
mov byte [esp + 0x2ec9], 0
mov byte [esp + 0x2f18], 0
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x27], 1
mov dword [ebx + 0xc], eax
jmp 0x1005b581
cmp ecx, 0x10
jg 0x1005fe20
lea eax, [ecx + 1]
cmp eax, dword [esp + 0x98]
jb 0x1005bf8f
mov eax, dword [esp + 0x94]
test eax, eax
je 0x1005bf8d
cmp dword [eax], 0
jne 0x1005bf8d
mov dword [eax], 0x82
xor eax, eax
imul eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x6c]
add edx, eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x10], edx
cmp eax, dword [edi]
jne 0x1005bfbe
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005bfba
cmp dword [eax], 0
jne 0x1005bfba
mov dword [eax], 0xa1
xor eax, eax
jmp 0x1005bfe2
cmp dword [eax - 4], 2
je 0x1005bfda
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005bfd6
cmp dword [eax], 0
jne 0x1005bfd6
mov dword [eax], 0xa0
xor eax, eax
jmp 0x1005bfe2
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
mov ecx, dword [esp + 0x40]
cmp byte [ecx + 8], 0
je 0x1005c00f
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx + 0x268]
test ecx, ecx
je 0x1005c00f
push eax
call fcn.10047220
mov edx, dword [esp + 0x10]
test eax, eax
je 0x1005c00c
mov eax, dword [eax]
jmp 0x1005c00f
or eax, 0xffffffff
cmp byte [esp + 0x28], 0x1d
xorps xmm0, xmm0
mov ecx, dword [esp + 0x2c]
movups xmmword [edx], xmm0
je 0x1005c0d8
mov ecx, dword [ecx + 0x234]
add ecx, eax
mov eax, dword [esp + 0x2c]
cmp ecx, dword [eax + 0x22c]
jae 0x1005fe20
mov eax, dword [eax + 0x23c]
lea edx, [ecx*4]
mov ecx, dword [edx + eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x30], 0
je 0x1005c0a6
mov eax, dword [eax + 0x264]
test eax, eax
je 0x1005c07e
test ecx, ecx
je 0x1005c076
mov eax, dword [eax + edx]
add eax, ecx
mov ecx, dword [esp + 0x10]
jmp 0x1005c0b4
mov ecx, dword [esp + 0x10]
xor eax, eax
jmp 0x1005c0b4
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x4c], 0
mov eax, dword [eax + 0x260]
test eax, eax
cmovs eax, dword [esp + 0x4c]
add eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x2c]
jmp 0x1005c0aa
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x23c]
mov eax, dword [edx + eax + 4]
mov edx, 8
mov dword [esp + 0x1c], edi
mov dword [ecx + edx], eax
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
mov eax, dword [edx + 4]
mov dword [edx + 0xc], eax
jmp 0x1005b581
mov ecx, dword [ecx + 0x238]
add ecx, eax
mov eax, dword [esp + 0x2c]
cmp ecx, dword [eax + 0x230]
jae 0x1005fe20
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 + 0x2c]
mov eax, dword [eax + 0x240]
mov eax, dword [eax + ecx*4 + 4]
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [edx + 8], eax
mov dword [esp + 0x14], ecx
jmp 0x1005b581
cmp ecx, 1
jl 0x1005fe20
dec ecx
mov eax, ecx
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x98]
jb 0x1005c14f
mov eax, dword [esp + 0x94]
test eax, eax
je 0x1005c14d
cmp dword [eax], 0
jne 0x1005c14d
mov dword [eax], 0x82
xor eax, eax
mov edx, dword [esp + 0x9c]
imul edx, eax
add edx, dword [esp + 0x6c]
mov dword [esp + 0x10], edx
jmp 0x1005b581
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
cmp eax, dword [edx + 8]
jae 0x1005c17a
mov cl, byte [eax]
inc eax
mov dword [edx + 0xc], eax
jmp 0x1005c18d
mov eax, dword [edx]
test eax, eax
je 0x1005c18b
cmp dword [eax], 0
jne 0x1005c18b
mov dword [eax], 0x55
xor cl, cl
movzx eax, cl
add eax, 0xfffffff8
mov byte [esp + 0x3f], cl
cmp eax, 0x1d
ja case.0x1005c1a7.9
movzx eax, byte [eax + 0x1006061c]
jmp dword [eax*4 + 0x10060604]
push 0
push 0x101cd0b8
jmp 0x1005c214
push 0
push 0x101ccf5c
lea eax, [esp + 0x140]
mov ecx, ebx
push eax
lea eax, [esp + 0x3f34]
push eax
lea edx, [esp + 0x3f34]
call fcn.1005aac0
mov esi, dword [esp + 0x3f28]
mov ebp, dword [esp + 0x3f24]
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], ebp
mov dword [ebx + 0xc], eax
jmp 0x1005b581
push 0
push 0x101cd0e4
jmp 0x1005c214
push 1
push 0x101cd27c
lea eax, [esp + 0x140]
mov ecx, ebx
push eax
lea eax, [esp + 0x3f34]
push eax
lea edx, [esp + 0x3f34]
call fcn.1005aac0
mov esi, dword [esp + 0x3f28]
mov ebp, dword [esp + 0x3f24]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], ebp
jmp 0x1005b581
mov eax, dword [esp + 0x40]
cmp byte [eax + 9], 0
jne case.0x1005c2a1.0
cmp cl, 0x26
jae case.0x1005c2a1.0
mov al, byte [eax + 8]
test al, al
je 0x1005c295
cmp dword [esp + 0x5c], 0
jle 0x1005c295
cmp cl, 0x11
je 0x1005c295
mov eax, dword [edi]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x5c], 0
mov dword [ebx + 0xc], eax
jmp 0x1005b581
movzx ecx, cl
cmp ecx, 0x21
ja case.0x1005c2a1.0
jmp dword [ecx*4 + 0x1006063c]
test al, al
je case.0x1005c2a1.0
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi]
sub eax, ecx
sar eax, 3
test eax, eax
jne 0x1005c2d4
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c2d0
cmp dword [eax], 0
jne 0x1005c2d0
mov dword [eax], 0x82
xor esi, esi
jmp 0x1005c2f8
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
sub eax, 1
je 0x1005c2e8
sub eax, 1
jne 0x1005c2f8
shl esi, 0x10
jmp 0x1005c2f8
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 0x1005c31d
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c319
cmp dword [eax], 0
jne 0x1005c319
mov dword [eax], 0x82
xor edi, edi
jmp 0x1005c342
mov eax, dword [ecx + 0x14]
mov edi, dword [ecx + 0x10]
sub eax, 1
je 0x1005c332
sub eax, 1
jne 0x1005c342
shl edi, 0x10
jmp 0x1005c342
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov ebp, dword [esp + 0x1c]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp]
sub eax, ecx
sar eax, 3
cmp eax, 4
ja 0x1005c36c
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c368
cmp dword [eax], 0
jne 0x1005c368
mov dword [eax], 0x82
xor edx, edx
jmp 0x1005c391
mov eax, dword [ecx + 0x24]
mov edx, dword [ecx + 0x20]
sub eax, 1
je 0x1005c381
sub eax, 1
jne 0x1005c391
shl edx, 0x10
jmp 0x1005c391
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 0x1005c3b7
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c3b3
cmp dword [eax], 0
jne 0x1005c3b3
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005c3dc
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub eax, 1
je 0x1005c3cc
sub eax, 1
jne 0x1005c3dc
shl ecx, 0x10
jmp 0x1005c3dc
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
mov ebp, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ebp
sar eax, 3
cmp eax, 2
jae 0x1005c403
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c419
cmp dword [eax], 0
jne 0x1005c419
mov dword [eax], 0x82
jmp 0x1005c419
mov eax, edi
sub eax, ecx
sub eax, esi
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov dword [eax + 0x14], 0
mov eax, dword [esp + 0x1c]
mov esi, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, esi
sar eax, 3
cmp eax, 3
ja 0x1005c442
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c43e
cmp dword [eax], 0
jne 0x1005c43e
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005c467
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
sub eax, 1
je 0x1005c457
sub eax, 1
jne 0x1005c467
shl ecx, 0x10
jmp 0x1005c467
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
mov esi, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, esi
sar eax, 3
cmp eax, 4
jae 0x1005c48e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c4a2
cmp dword [eax], 0
jne 0x1005c4a2
mov dword [eax], 0x82
jmp 0x1005c4a2
mov eax, dword [esp + 0x1c]
sub edx, ecx
sub edx, edi
mov dword [esi + 0x20], edx
mov eax, dword [eax]
mov dword [eax + 0x24], 0
cmp byte [esp + 0x3f], 1
mov ebp, dword [esp + 0x2c]
mov eax, dword [ebp + 0x20]
jne 0x1005c4b4
mov eax, dword [eax]
jmp 0x1005c4b7
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0xc0]
push eax
lea eax, [esp + 0x2b]
push eax
push dword [esp + 0x68]
lea eax, [esp + 0xac]
cmovne eax, edx
mov edx, ebx
push eax
call fcn.1005a890
cmp byte [ebp + 0x224], 0
jne 0x1005ff6f
mov ebp, dword [esp + 0x20]
jmp 0x1005ed4b
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005c511
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c50d
cmp dword [eax], 0
jne 0x1005c50d
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005c53b
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005c52b
sub eax, 1
jne 0x1005c53b
shl edx, 0x10
jmp 0x1005c53b
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 0x1005c598
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c554
cmp dword [eax], 0
jne 0x1005c554
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 0x1005faba
mov eax, dword [ebx + 4]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x1005b581
cmp dword [eax], 0
jne 0x1005b581
mov dword [eax], 0x82
mov esi, dword [esp + 0x18]
jmp 0x1005b581
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005c5b2
sub eax, 1
jne 0x1005c5c2
shl ecx, 0x10
jmp 0x1005c5c2
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test ecx, ecx
je 0x1005c554
test edx, edx
je 0x1005c554
mov edx, 1
jmp 0x1005c556
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005c5ee
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c5ea
cmp dword [eax], 0
jne 0x1005c5ea
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005c618
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005c608
sub eax, 1
jne 0x1005c618
shl edx, 0x10
jmp 0x1005c618
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 0x1005c633
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c665
cmp dword [eax], 0
jne 0x1005c665
mov dword [eax], 0xa1
jmp 0x1005c665
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005c64d
sub eax, 1
jne 0x1005c65d
shl ecx, 0x10
jmp 0x1005c65d
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test ecx, ecx
jne 0x1005c5ca
test edx, edx
jne 0x1005c5ca
jmp 0x1005c554
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005c68f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c68b
cmp dword [eax], 0
jne 0x1005c68b
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005c6b9
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005c6a9
sub eax, 1
jne 0x1005c6b9
shl edx, 0x10
jmp 0x1005c6b9
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 0x1005c569
mov ecx, dword [esp + 0x14]
xor eax, eax
test edx, edx
mov edx, dword [esp + 0x10]
sete al
mov dword [esi], eax
mov eax, dword [ebx + 0xc]
mov esi, dword [esp + 0x18]
mov dword [eax + 4], 2
add dword [ebx + 0xc], 8
jmp 0x1005b581
test al, al
je case.0x1005c2a1.0
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jne 0x1005fcd0
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c725
cmp dword [eax], 0
jne 0x1005c725
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005fcf4
test al, al
je case.0x1005c2a1.0
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005c751
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c74d
cmp dword [eax], 0
jne 0x1005c74d
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005c77b
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1005c76b
sub eax, 1
jne 0x1005c77b
shl ecx, 0x10
jmp 0x1005c77b
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov esi, dword [esp + 0x2c]
mov eax, dword [esi + 0x24]
mov dword [eax + 4], ecx
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005c7a2
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c79e
cmp dword [eax], 0
jne 0x1005c79e
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005c7cc
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005c7bc
sub eax, 1
jne 0x1005c7cc
shl ecx, 0x10
jmp 0x1005c7cc
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 0x1005c7ee
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c7ea
cmp dword [eax], 0
jne 0x1005c7ea
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005c818
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005c808
sub eax, 1
jne 0x1005c818
shl edx, 0x10
jmp 0x1005c818
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 0x1005c835
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c831
cmp dword [eax], 0
jne 0x1005c831
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005c85f
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005c84f
sub eax, 1
jne 0x1005c85f
shl ecx, 0x10
jmp 0x1005c85f
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov esi, dword [esp + 0x2c]
mov byte [esp + 0x27], 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 0x1005ff6f
cmp byte [esp + 0x33], 0
mov esi, dword [esp + 0x18]
je 0x1005ed53
mov eax, dword [edi]
add ebp, ecx
mov ecx, dword [esp + 0x14]
add esi, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x3f24], ebp
mov dword [esp + 0x18], esi
mov dword [esp + 0x3f28], esi
mov dword [ebx + 0xc], eax
jmp 0x1005b581
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005c933
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c8d1
cmp dword [eax], 0
jne 0x1005c8d1
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 + 0x1c]
add ecx, ebp
mov ebp, dword [esp + 0x20]
cdq
xor eax, edx
sub eax, edx
cmp esi, ecx
jne 0x1005cce6
mov esi, dword [esp + 0x18]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x1005b581
cmp dword [eax], 0
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
jne 0x1005b581
mov dword [eax], 0x82
jmp 0x1005b581
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1005c94d
sub eax, 1
jne 0x1005c95d
shl ecx, 0x10
jmp 0x1005c95d
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 0x1005c8dc
lea eax, [edi*8]
mov edi, dword [esp + 0x1c]
add eax, ebp
mov ebp, dword [esp + 0x20]
cmp esi, eax
jne 0x1005c9ae
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e56c
cmp dword [eax], 0
jne 0x1005e56c
mov dword [eax], 0x82
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jmp 0x1005b581
mov ecx, dword [esp + 0x14]
mov dword [esi], 0x7fffffff
mov eax, dword [ebx + 0xc]
mov esi, dword [esp + 0x18]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1005b581
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1005c9ec
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c9e8
cmp dword [eax], 0
jne 0x1005c9e8
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005ca16
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005ca06
sub eax, 1
jne 0x1005ca16
shl esi, 0x10
jmp 0x1005ca16
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 0x1005ca33
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ca2f
cmp dword [eax], 0
jne 0x1005ca2f
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005ca5d
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005ca4d
sub eax, 1
jne 0x1005ca5d
shl edx, 0x10
jmp 0x1005ca5d
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x10]
mov edi, dword [ebx + 0xc]
mov eax, dword [eax]
lea eax, [eax + ecx*8]
cmp edi, eax
jne 0x1005ca9f
mov eax, dword [ebx + 4]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x1005b581
cmp dword [eax], 0
jne 0x1005b581
mov dword [eax], 0x82
jmp 0x1005b581
mov ecx, dword [esp + 0x14]
lea eax, [edx + esi]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [edi], eax
mov eax, dword [ebx + 0xc]
mov edi, dword [esp + 0x1c]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1005b581
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1005cae4
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cae0
cmp dword [eax], 0
jne 0x1005cae0
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005cb0e
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005cafe
sub eax, 1
jne 0x1005cb0e
shl esi, 0x10
jmp 0x1005cb0e
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 0x1005cb2b
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cb27
cmp dword [eax], 0
jne 0x1005cb27
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005cb55
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005cb45
sub eax, 1
jne 0x1005cb55
shl edx, 0x10
jmp 0x1005cb55
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x10]
mov edi, dword [ebx + 0xc]
mov eax, dword [eax]
lea eax, [eax + ecx*8]
cmp edi, eax
je 0x1005ca70
mov ecx, dword [esp + 0x14]
sub edx, esi
mov esi, dword [esp + 0x18]
mov dword [edi], edx
mov eax, dword [ebx + 0xc]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1005b581
test al, al
je 0x1005cc40
cmp byte [esp + 0x58], 0
je 0x1005cc40
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005cbc3
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cbbf
cmp dword [eax], 0
jne 0x1005cbbf
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005cbe7
cmp dword [eax - 4], 2
je 0x1005cbdf
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cbdb
cmp dword [eax], 0
jne 0x1005cbdb
mov dword [eax], 0xa0
xor edx, edx
jmp 0x1005cbe7
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005cc0b
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cc00
cmp dword [eax], 0
jne 0x1005cc00
mov dword [eax], 0xa1
xor ecx, ecx
mov byte [esp + 0x58], cl
jmp 0x1005ccce
cmp dword [eax - 4], 2
je 0x1005cc2e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cc23
cmp dword [eax], 0
jne 0x1005cc23
mov dword [eax], 0xa0
xor ecx, ecx
mov byte [esp + 0x58], cl
jmp 0x1005ccce
add eax, 0xfffffff8
mov byte [esp + 0x58], 0
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
jmp 0x1005ccce
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005cc5d
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cc59
cmp dword [eax], 0
jne 0x1005cc59
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005cc87
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005cc77
sub eax, 1
jne 0x1005cc87
shl edx, 0x10
jmp 0x1005cc87
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 0x1005cca4
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cca0
cmp dword [eax], 0
jne 0x1005cca0
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005ccce
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005ccbe
sub eax, 1
jne 0x1005ccce
shl ecx, 0x10
jmp 0x1005ccce
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.10046320
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov esi, dword [ebx + 0xc]
lea ecx, [ecx + edx*8]
cmp esi, ecx
je 0x1005c569
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esi], eax
mov eax, dword [ebx + 0xc]
mov esi, dword [esp + 0x18]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1005b581
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005cd59
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cd20
cmp dword [eax], 0
jne 0x1005cd20
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 0x1005c569
mov esi, dword [esp + 0x18]
neg ecx
mov dword [edx], ecx
mov eax, dword [ebx + 0xc]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1005b581
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1005cd73
sub eax, 1
jne 0x1005cd83
shl ecx, 0x10
jmp 0x1005cd83
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 0x1005cd2b
lea eax, [esi + eax*8]
cmp edx, eax
jne 0x1005cdc6
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e568
cmp dword [eax], 0
jne 0x1005e568
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
mov esi, dword [esp + 0x18]
jmp 0x1005b581
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [edx], 0x7fffffff
mov eax, dword [ebx + 0xc]
mov edx, dword [esp + 0x10]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1005b581
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1005ce08
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ce04
cmp dword [eax], 0
jne 0x1005ce04
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005ce32
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005ce22
sub eax, 1
jne 0x1005ce32
shl esi, 0x10
jmp 0x1005ce32
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 0x1005ce4f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ce4b
cmp dword [eax], 0
jne 0x1005ce4b
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005ce79
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005ce69
sub eax, 1
jne 0x1005ce79
shl edx, 0x10
jmp 0x1005ce79
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x10]
mov edi, dword [ebx + 0xc]
mov eax, dword [eax]
lea eax, [eax + ecx*8]
cmp edi, eax
je 0x1005ca70
mov ecx, dword [esp + 0x14]
xor eax, eax
cmp edx, esi
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
sete al
mov dword [edi], eax
mov eax, dword [ebx + 0xc]
mov edi, dword [esp + 0x1c]
mov dword [eax + 4], 2
add dword [ebx + 0xc], 8
jmp 0x1005b581
mov ecx, dword [esp + 0x14]
test al, al
je 0x1005b581
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005cee5
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cee1
cmp dword [eax], 0
jne 0x1005cee1
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005cf09
cmp dword [eax - 4], 2
je 0x1005cf01
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cefd
cmp dword [eax], 0
jne 0x1005cefd
mov dword [eax], 0xa0
xor esi, esi
jmp 0x1005cf09
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005cf26
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cf22
cmp dword [eax], 0
jne 0x1005cf22
mov dword [eax], 0xa1
xor edi, edi
jmp 0x1005cf4a
cmp dword [eax - 4], 2
je 0x1005cf42
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cf3e
cmp dword [eax], 0
jne 0x1005cf3e
mov dword [eax], 0xa0
xor edi, edi
jmp 0x1005cf4a
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edi, dword [eax]
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebx + 0xc]
mov ebp, ecx
mov dword [esp + 0x34], edi
mov dword [esp + 0x54], 0
mov edx, dword [eax]
sub ebp, edx
sar ebp, 3
sub ebp, edi
mov dword [esp + 0x5c], 0
mov dword [esp + 0x48], ebp
cmp esi, 0x1c
ja case.default.0x1005cf84
movzx eax, byte [esi + 0x10060704]
jmp dword [eax*4 + 0x100606c4]
cmp edi, 3
jne 0x1005fe20
cmp byte [esp + 0x33], 0
je 0x1005cfb9
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0x1d4], 0
je 0x1005fe20
cmp dword [eax + 0x1d8], 7
jne 0x1005fe20
mov eax, dword [ebx + 0x10]
mov ebp, dword [esp + 0x20]
lea eax, [edx + eax*8]
cmp ecx, eax
jne 0x1005cfdb
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cfeb
cmp dword [eax], 0
jne 0x1005cfeb
mov dword [eax], 0x82
jmp 0x1005cfeb
mov dword [ecx], ebp
mov eax, dword [ebx + 0xc]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
mov edi, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov esi, dword [esp + 0x18]
mov eax, dword [edi]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1005d029
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d039
cmp dword [eax], 0
jne 0x1005d039
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
mov dword [esp + 0x54], 2
jmp 0x1005b581
mov dword [edx], esi
mov eax, dword [ebx + 0xc]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x54], 2
jmp 0x1005b581
test edi, edi
jne 0x1005fe20
cmp byte [esp + 0x33], 0
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
je 0x1005b581
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0xc]
movsx eax, word [esi + 0x16]
movsx ecx, word [esi + 0x3a]
add eax, 6
add eax, ecx
cmp eax, dword [esi + 4]
jbe 0x1005d0a4
push 0
mov edx, 6
mov ecx, esi
call fcn.10046a20
test eax, eax
jne 0x1005ff6f
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [ecx + 0x1d4], 1
mov dword [ecx + 0x1d8], 0
mov ecx, dword [esp + 0x14]
jmp 0x1005b581
test edi, edi
jne 0x1005fe20
cmp byte [esp + 0x33], 0
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
je 0x1005b581
mov ecx, dword [esp + 0x2c]
cmp dword [ecx + 0x1d4], 0
je 0x1005fe20
mov esi, dword [ecx + 0x1d8]
lea eax, [esi + 1]
mov dword [ecx + 0x1d8], eax
lea eax, [esi - 1]
cmp eax, 5
ja 0x1005e560
mov edi, dword [ecx + 0xc]
movsx eax, word [edi + 0x16]
movsx ecx, word [edi + 0x3a]
inc eax
add eax, ecx
cmp eax, dword [edi + 4]
jbe 0x1005d151
push 0
mov edx, 1
mov ecx, edi
call fcn.10046a20
test eax, eax
jne 0x1005fe20
lea eax, [esi - 3]
cmp esi, 3
jg 0x1005d15b
mov eax, esi
mov ebp, dword [esp + 0x20]
add eax, eax
mov ecx, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x3e68], ebp
mov dword [esp + eax*4 + 0x3e6c], ecx
cmp esi, 3
je 0x1005d181
cmp esi, 6
jne 0x1005e564
push dword [esp + 0x3e84]
mov edx, dword [esp + 0x3e74]
lea ecx, [esp + 0x13c]
push dword [esp + 0x3e84]
push dword [esp + 0x3e84]
push dword [esp + 0x3e84]
push dword [esp + 0x3e84]
call fcn.1005a590
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
jmp 0x1005b581
cmp edi, 1
jne 0x1005fe20
cmp byte [esp + 0x33], 0
je 0x1005d22c
mov eax, dword [esp + 0x64]
xorps xmm0, xmm0
movups xmmword [esp + 0x100], xmm0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xd4], 0
movq qword [esp + 0x110], xmm0
mov dword [esp + 0x118], 0
mov dword [esp + 0x100], eax
mov byte [esp + 0x104], 0
mov byte [esp + 0x105], 1
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x54], 1
jmp 0x1005b581
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0xc], edx
mov edx, dword [esp + 0x10]
jmp 0x1005b581
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x284]
mov dword [esp + 0x28], ecx
test ecx, ecx
je 0x1005fe20
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 + 0x54], edx
cmp edi, eax
jne 0x1005fe20
lea edi, [edx + ebp]
test edx, edx
je 0x1005d3de
mov dword [esp + 0x44], edx
nop dword [eax]
mov eax, dword [esp + 0x1c]
mov esi, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, esi
sar eax, 3
cmp ebp, eax
jb 0x1005d2d8
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d2d4
cmp dword [eax], 0
jne 0x1005d2d4
mov dword [eax], 0x82
xor esi, esi
jmp 0x1005d2fe
mov eax, dword [esi + ebp*8 + 4]
mov esi, dword [esi + ebp*8]
sub eax, 1
je 0x1005d2ee
sub eax, 1
jne 0x1005d2fe
shl esi, 0x10
jmp 0x1005d2fe
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
cmp dword [ecx], 1
jbe 0x1005d391
mov ebp, 1
mov dword [esp + 0x38], 4
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, edx
sar eax, 3
cmp edi, eax
jb 0x1005d33c
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d338
cmp dword [eax], 0
jne 0x1005d338
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005d362
mov eax, dword [edx + edi*8 + 4]
mov ecx, dword [edx + edi*8]
sub eax, 1
je 0x1005d352
sub eax, 1
jne 0x1005d362
shl ecx, 0x10
jmp 0x1005d362
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
mov edx, dword [edx + 0x88]
mov edx, dword [edx + eax]
call fcn.1003db30
mov ecx, dword [esp + 0x28]
inc ebp
add dword [esp + 0x38], 4
add esi, eax
inc edi
cmp ebp, dword [ecx]
jb 0x1005d314
mov ebp, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp ebp, eax
jbe 0x1005d3b7
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d3c8
cmp dword [eax], 0
jne 0x1005d3c8
mov dword [eax], 0x82
jmp 0x1005d3c8
mov eax, dword [esp + 0x1c]
mov dword [ecx + ebp*8], esi
mov eax, dword [eax]
mov dword [eax + ebp*8 + 4], 0
mov ecx, dword [esp + 0x28]
inc ebp
sub edx, 1
mov dword [esp + 0x48], ebp
mov dword [esp + 0x44], edx
jne 0x1005d2b0
mov edi, dword [esp + 0x1c]
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov edx, dword [esp + 0x34]
sub edx, dword [esp + 0x54]
sub eax, dword [edi]
sar eax, 3
cmp edx, eax
jbe 0x1005d41f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d42b
cmp dword [eax], 0
jne 0x1005d42b
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0xa1
jmp 0x1005b581
lea eax, [edx*8]
sub ecx, eax
mov dword [ebx + 0xc], ecx
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
jmp 0x1005b581
mov ebp, dword [esp + 0x2c]
mov esi, dword [ebp + 0x284]
cmp edi, 1
jne 0x1005fe20
test esi, esi
je 0x1005fe20
cmp ecx, edx
jne 0x1005d475
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d471
cmp dword [eax], 0
jne 0x1005d471
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005d4a1
cmp dword [ecx - 4], 2
je 0x1005d491
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d48d
cmp dword [eax], 0
jne 0x1005d48d
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x1005d4a1
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
test ecx, ecx
js 0x1005fe20
mov edx, dword [esi]
lea eax, [edx + ecx]
cmp eax, dword [ebp + 0x28c]
ja 0x1005fe20
lea eax, [edx*4]
push eax
mov eax, dword [ebp + 0x288]
push dword [esi + 0x88]
lea eax, [eax + ecx*4]
push eax
call fcn.1018f8f0
mov ebp, dword [esp + 0x2c]
add esp, 0xc
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
jmp 0x1005b581
cmp edi, 2
jne 0x1005fe20
cmp ecx, edx
jne 0x1005d50e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d50a
cmp dword [eax], 0
jne 0x1005d50a
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005d538
lea esi, [ecx - 8]
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005d528
sub eax, 1
jne 0x1005d538
shl esi, 0x10
jmp 0x1005d538
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov ebp, dword [esp + 0x1c]
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [ebp]
jne 0x1005d55a
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d556
cmp dword [eax], 0
jne 0x1005d556
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005d584
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005d574
sub eax, 1
jne 0x1005d584
shl edx, 0x10
jmp 0x1005d584
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 0x1005d5c7
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d5da
cmp dword [eax], 0
jne 0x1005d5da
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
mov dword [esp + 0x54], 1
jmp 0x1005b581
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 + 0x20]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x54], 1
jmp 0x1005b581
cmp edi, 2
jne 0x1005fe20
cmp ecx, edx
jne 0x1005d61e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d61a
cmp dword [eax], 0
jne 0x1005d61a
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005d648
lea esi, [ecx - 8]
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005d638
sub eax, 1
jne 0x1005d648
shl esi, 0x10
jmp 0x1005d648
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov ebp, dword [esp + 0x1c]
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [ebp]
jne 0x1005d66a
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d666
cmp dword [eax], 0
jne 0x1005d666
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005d694
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005d684
sub eax, 1
jne 0x1005d694
shl edx, 0x10
jmp 0x1005d694
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 0x1005d6c3
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d5da
cmp dword [eax], 0
jne 0x1005d5da
mov dword [eax], 0x82
jmp 0x1005d5da
sub edx, esi
mov dword [edi], edx
jmp 0x1005d5cc
cmp edi, 2
jne 0x1005fe20
cmp ecx, edx
jne 0x1005d6ef
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d6eb
cmp dword [eax], 0
jne 0x1005d6eb
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005d719
lea edx, [ecx - 8]
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005d709
sub eax, 1
jne 0x1005d719
shl edx, 0x10
jmp 0x1005d719
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov edi, dword [esp + 0x1c]
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1005d73a
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d736
cmp dword [eax], 0
jne 0x1005d736
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005d764
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005d754
sub eax, 1
jne 0x1005d764
shl ecx, 0x10
jmp 0x1005d764
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.1003db30
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov esi, dword [ebx + 0xc]
lea ecx, [ecx + edx*8]
cmp esi, ecx
jne 0x1005d7a7
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d7b7
cmp dword [eax], 0
jne 0x1005d7b7
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
mov dword [esp + 0x54], 1
jmp 0x1005b581
mov dword [esi], eax
mov eax, dword [ebx + 0xc]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x54], 1
jmp 0x1005b581
cmp edi, 2
jne 0x1005fe20
cmp ecx, edx
jne 0x1005d7f7
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d7f3
cmp dword [eax], 0
jne 0x1005d7f3
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005d821
lea edx, [ecx - 8]
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005d811
sub eax, 1
jne 0x1005d821
shl edx, 0x10
jmp 0x1005d821
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov edi, dword [esp + 0x1c]
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1005d842
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d83e
cmp dword [eax], 0
jne 0x1005d83e
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005d86c
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005d85c
sub eax, 1
jne 0x1005d86c
shl ecx, 0x10
jmp 0x1005d86c
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test edx, edx
je 0x1005fe20
call fcn.10046320
jmp 0x1005d769
cmp edi, 2
jne 0x1005fe20
mov ebp, dword [esp + 0x2c]
cmp dword [ebp + 0x284], 0
je 0x1005fe20
cmp ecx, edx
jne 0x1005d8b2
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d8ae
cmp dword [eax], 0
jne 0x1005d8ae
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005d8de
cmp dword [ecx - 4], 2
je 0x1005d8ce
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d8ca
cmp dword [eax], 0
jne 0x1005d8ca
mov dword [eax], 0xa0
xor edx, edx
jmp 0x1005d8de
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
test edx, edx
js 0x1005fe20
cmp edx, dword [ebp + 0x28c]
jae 0x1005fe20
mov edi, dword [esp + 0x1c]
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1005d927
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d907
cmp dword [eax], 0
jne 0x1005d907
mov dword [eax], 0xa1
mov eax, dword [ebp + 0x288]
xor ecx, ecx
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov dword [eax + edx*4], ecx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
jmp 0x1005b581
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005d95d
sub eax, 1
jne 0x1005d96d
mov eax, dword [ebp + 0x288]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
shl ecx, 0x10
mov dword [eax + edx*4], ecx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
jmp 0x1005b581
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [ebp + 0x288]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov dword [eax + edx*4], ecx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
jmp 0x1005b581
cmp edi, 1
jne 0x1005fe20
mov ebp, dword [esp + 0x2c]
cmp dword [ebp + 0x284], 0
je 0x1005fe20
cmp ecx, edx
jne 0x1005d9bf
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d9bb
cmp dword [eax], 0
jne 0x1005d9bb
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005d9eb
cmp dword [ecx - 4], 2
je 0x1005d9db
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d9d7
cmp dword [eax], 0
jne 0x1005d9d7
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x1005d9eb
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
test ecx, ecx
js 0x1005fe20
cmp ecx, dword [ebp + 0x28c]
jae 0x1005fe20
mov eax, dword [ebp + 0x288]
mov edi, dword [esp + 0x1c]
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 0x1005d778
mov dword [edx], esi
jmp 0x1005d7a9
cmp edi, 4
jne 0x1005fe20
cmp ecx, edx
jne 0x1005da41
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005da3d
cmp dword [eax], 0
jne 0x1005da3d
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x1005da6b
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebp, dword [ecx]
sub eax, 1
je 0x1005da5b
sub eax, 1
jne 0x1005da6b
shl ebp, 0x10
jmp 0x1005da6b
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [esi]
jne 0x1005da8c
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005da88
cmp dword [eax], 0
jne 0x1005da88
mov dword [eax], 0xa1
xor edi, edi
jmp 0x1005dab6
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1005daa6
sub eax, 1
jne 0x1005dab6
shl edi, 0x10
jmp 0x1005dab6
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 0x1005dad3
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dacf
cmp dword [eax], 0
jne 0x1005dacf
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005dafd
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005daed
sub eax, 1
jne 0x1005dafd
shl edx, 0x10
jmp 0x1005dafd
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 0x1005db1a
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005db16
cmp dword [eax], 0
jne 0x1005db16
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005db44
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
sub eax, 1
je 0x1005db34
sub eax, 1
jne 0x1005db44
shl esi, 0x10
jmp 0x1005db44
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x10]
mov eax, dword [eax]
lea eax, [eax + ecx*8]
mov ecx, dword [ebx + 0xc]
cmp ecx, eax
jne 0x1005db76
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d5da
cmp dword [eax], 0
jne 0x1005d5da
mov dword [eax], 0x82
jmp 0x1005d5da
cmp edi, ebp
cmovle edx, esi
mov dword [ecx], edx
jmp 0x1005d5cc
test edi, edi
jne 0x1005fe20
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x1c]
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 0x1005da17
jmp 0x1005d778
mov eax, dword [esp + 0x1c]
test edi, edi
js 0x1005fe20
test esi, esi
js 0x1005fe20
cmp edi, 3
jle 0x1005dbf9
mov edi, 3
mov dword [esp + 0x5c], edi
jmp 0x1005dc16
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x5c], edi
cmp edi, 1
jl 0x1005b57d
lea esi, [esp + edi*4 + 0x3e5c]
nop dword [eax]
mov edx, dword [ebx + 0xc]
cmp edx, dword [eax]
jne 0x1005dc3d
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dc39
cmp dword [eax], 0
jne 0x1005dc39
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005dc67
lea eax, [edx - 8]
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [edx - 4]
sub eax, 1
je 0x1005dc57
sub eax, 1
jne 0x1005dc67
shl ecx, 0x10
jmp 0x1005dc67
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
mov dword [esi], ecx
sub esi, 4
sub edi, 1
jne 0x1005dc20
mov ebp, dword [esp + 0x20]
mov edi, eax
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
jmp 0x1005b581
mov ecx, dword [esp + 0x14]
test al, al
je 0x1005b581
mov eax, dword [esp + 0x54]
test eax, eax
jle 0x1005dcaa
dec eax
mov dword [esp + 0x54], eax
jmp 0x1005b581
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x1005fe20
mov esi, dword [esp + eax*4 + 0x3e5c]
dec eax
mov dword [esp + 0x5c], eax
mov ecx, dword [ebx + 0x10]
mov eax, dword [edi]
mov edx, dword [ebx + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
je 0x1005c569
mov ecx, dword [esp + 0x14]
mov dword [edx], esi
mov eax, dword [ebx + 0xc]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1005b581
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005dd20
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x1005b581
cmp dword [eax], 0
jne 0x1005b581
mov dword [eax], 0xa1
jmp 0x1005b581
mov ecx, dword [esp + 0x14]
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
jmp 0x1005b581
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005dd4c
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dd48
cmp dword [eax], 0
jne 0x1005dd48
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005dd70
cmp dword [eax - 4], 2
je 0x1005dd68
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dd64
cmp dword [eax], 0
jne 0x1005dd64
mov dword [eax], 0xa0
xor esi, esi
jmp 0x1005dd70
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005dd8d
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dd89
cmp dword [eax], 0
jne 0x1005dd89
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005ddb7
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005dda7
sub eax, 1
jne 0x1005ddb7
shl ecx, 0x10
jmp 0x1005ddb7
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x10]
cmp esi, 0x1f
ja 0x1005c9a1
mov dword [esp + esi*4 + 0x3e88], ecx
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jmp 0x1005b581
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005ddff
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ddf1
cmp dword [eax], 0
jne 0x1005ddf1
mov dword [eax], 0xa1
xor eax, eax
mov esi, dword [esp + eax*4 + 0x3e88]
jmp 0x1005dcc2
cmp dword [eax - 4], 2
je 0x1005de25
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005de17
cmp dword [eax], 0
jne 0x1005de17
mov dword [eax], 0xa0
xor eax, eax
mov esi, dword [esp + eax*4 + 0x3e88]
jmp 0x1005dcc2
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
test eax, eax
js 0x1005e56c
cmp eax, 0x20
jge 0x1005e56c
mov esi, dword [esp + eax*4 + 0x3e88]
jmp 0x1005dcc2
mov ebp, dword [ebx + 0xc]
cmp ebp, dword [edi]
jne 0x1005de67
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005de63
cmp dword [eax], 0
jne 0x1005de63
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x1005de92
add ebp, 0xfffffff8
mov dword [ebx + 0xc], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
sub eax, 1
je 0x1005de82
sub eax, 1
jne 0x1005de92
shl ebp, 0x10
jmp 0x1005de92
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 0x1005deaf
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005deab
cmp dword [eax], 0
jne 0x1005deab
mov dword [eax], 0xa1
xor edi, edi
jmp 0x1005ded9
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1005dec9
sub eax, 1
jne 0x1005ded9
shl edi, 0x10
jmp 0x1005ded9
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [esi]
jne 0x1005defa
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005def6
cmp dword [eax], 0
jne 0x1005def6
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005df24
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005df14
sub eax, 1
jne 0x1005df24
shl edx, 0x10
jmp 0x1005df24
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 0x1005df41
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005df3d
cmp dword [eax], 0
jne 0x1005df3d
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005df6b
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
sub eax, 1
je 0x1005df5b
sub eax, 1
jne 0x1005df6b
shl esi, 0x10
jmp 0x1005df6b
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x10]
mov eax, dword [eax]
lea eax, [eax + ecx*8]
mov ecx, dword [ebx + 0xc]
cmp ecx, eax
jne 0x1005df8b
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
jmp 0x1005c8fc
cmp edi, ebp
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
cmovle edx, esi
mov esi, dword [esp + 0x18]
mov dword [ecx], edx
mov eax, dword [ebx + 0xc]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1005b581
mov eax, dword [esp + 0x2c]
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 0x1005dcd5
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e568
cmp dword [eax], 0
jne 0x1005e568
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
mov esi, dword [esp + 0x18]
jmp 0x1005b581
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005e043
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e03f
cmp dword [eax], 0
jne 0x1005e03f
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005e06d
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005e05d
sub eax, 1
jne 0x1005e06d
shl edx, 0x10
jmp 0x1005e06d
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 0x1005e08a
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e086
cmp dword [eax], 0
jne 0x1005e086
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005e0b4
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005e0a4
sub eax, 1
jne 0x1005e0b4
shl ecx, 0x10
jmp 0x1005e0b4
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.1003db30
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov esi, dword [ebx + 0xc]
lea ecx, [ecx + edx*8]
cmp esi, ecx
jne 0x1005cce6
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e568
cmp dword [eax], 0
jne 0x1005e568
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
mov esi, dword [esp + 0x18]
jmp 0x1005b581
mov ebp, dword [ebx + 0xc]
cmp ebp, dword [edi]
jne 0x1005e136
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e110
cmp dword [eax], 0
jne 0x1005e110
mov dword [eax], 0xa1
xor edi, edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov ebp, dword [esp + 0x20]
mov eax, dword [eax]
mov esi, dword [esp + 0x18]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1005e19e
mov edi, dword [esp + 0x1c]
jmp 0x1005c900
add ebp, 0xfffffff8
mov dword [ebx + 0xc], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
sub eax, 1
je 0x1005e151
sub eax, 1
jne 0x1005e161
shl ebp, 0x10
jmp 0x1005e161
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
test ebp, ebp
jle 0x1005e110
mov eax, ebp
mov esi, ebp
sar eax, 1
mov ecx, ebp
cmp ebp, 0xa
cmovge esi, eax
mov edx, esi
call fcn.10046320
lea edi, [esi + 1]
add edi, eax
sar edi, 1
cmp edi, esi
je 0x1005e112
mov edx, edi
mov ecx, ebp
mov esi, edi
call fcn.10046320
inc edi
add edi, eax
sar edi, 1
cmp edi, esi
jne 0x1005e185
jmp 0x1005e112
mov ecx, dword [esp + 0x14]
mov dword [edx], edi
mov eax, dword [ebx + 0xc]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1005b581
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005e1dc
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e1d8
cmp dword [eax], 0
jne 0x1005e1d8
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005e206
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005e1f6
sub eax, 1
jne 0x1005e206
shl edx, 0x10
jmp 0x1005e206
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 0x1005e229
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e239
cmp dword [eax], 0
jne 0x1005e239
mov dword [eax], 0x82
jmp 0x1005e239
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 0x1005fcaf
jmp 0x1005c569
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1005e26e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e26a
cmp dword [eax], 0
jne 0x1005e26a
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005e298
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005e288
sub eax, 1
jne 0x1005e298
shl esi, 0x10
jmp 0x1005e298
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 0x1005e2b5
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e2b1
cmp dword [eax], 0
jne 0x1005e2b1
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005e2df
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005e2cf
sub eax, 1
jne 0x1005e2df
shl edx, 0x10
jmp 0x1005e2df
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x10]
mov edi, dword [ebx + 0xc]
mov eax, dword [eax]
lea eax, [eax + ecx*8]
cmp edi, eax
jne 0x1005e306
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e316
cmp dword [eax], 0
jne 0x1005e316
mov dword [eax], 0x82
jmp 0x1005e316
mov dword [edi], esi
mov eax, dword [ebx + 0xc]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
mov edi, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x10]
mov esi, dword [ebx + 0xc]
mov eax, dword [edi]
lea eax, [eax + ecx*8]
cmp esi, eax
jne 0x1005fcaf
jmp 0x1005c569
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005e34f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e34b
cmp dword [eax], 0
jne 0x1005e34b
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005e373
cmp dword [eax - 4], 2
je 0x1005e36b
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e367
cmp dword [eax], 0
jne 0x1005e367
mov dword [eax], 0xa0
xor edx, edx
jmp 0x1005e373
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 + 0x14]
sar eax, 3
test eax, eax
je 0x1005b573
test edx, edx
jns 0x1005e392
lea ecx, [eax - 1]
jmp 0x1005e3ba
cmp edx, eax
jb 0x1005e3b5
xor ecx, ecx
mov eax, dword [esi + ecx*8 + 4]
mov edx, dword [esi + ecx*8]
sub eax, 1
je 0x1005e3d7
sub eax, 1
jne 0x1005e239
shl edx, 0x10
jmp 0x1005e239
mov ecx, eax
sub ecx, edx
dec ecx
cmp ecx, eax
jb 0x1005e398
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e3d0
cmp dword [eax], 0
jne 0x1005e3d0
mov dword [eax], 0x82
xor edx, edx
jmp 0x1005e239
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
jmp 0x1005e239
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005e409
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e405
cmp dword [eax], 0
jne 0x1005e405
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005e42d
cmp dword [eax - 4], 2
je 0x1005e425
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e421
cmp dword [eax], 0
jne 0x1005e421
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x1005e42d
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005e45f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e446
cmp dword [eax], 0
jne 0x1005e446
mov dword [eax], 0xa1
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 2
jmp 0x1005b581
cmp dword [eax - 4], 2
je 0x1005e490
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e477
cmp dword [eax], 0
jne 0x1005e477
mov dword [eax], 0xa0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 2
jmp 0x1005b581
add eax, 0xfffffff8
mov dword [esp + 0x28], 0
mov dword [ebx + 0xc], eax
mov dword [esp + 0x34], 2
mov edx, dword [eax]
mov dword [esp + 0x38], edx
cmp edx, 2
jl 0x1005e568
sub eax, dword [edi]
sar eax, 3
cmp edx, eax
jbe 0x1005e4e5
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e568
cmp dword [eax], 0
jne 0x1005e568
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
jmp 0x1005b581
test ecx, ecx
jns 0x1005e4f8
neg ecx
mov eax, ecx
mov ecx, dword [esp + 0x38]
cdq
idiv ecx
neg edx
jmp 0x1005e501
mov eax, ecx
mov ecx, dword [esp + 0x38]
cdq
idiv ecx
mov dword [esp + 0x44], edx
test edx, edx
je 0x1005e568
or ebp, 0xffffffff
lea eax, [ecx*8]
mov ebx, ecx
mov dword [esp + 0x48], eax
or esi, ebp
mov dword [esp + 0x4c], ebx
lea edi, [ebp - 7]
cmp ebp, esi
jne 0x1005e549
mov eax, dword [esp + 0x1c]
inc ebp
mov esi, ebp
mov eax, dword [eax]
lea edi, [ebp*8]
mov ecx, dword [edi + eax]
mov dword [esp + 0x28], ecx
mov ecx, dword [edi + eax + 4]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x34], ecx
lea ecx, [edx*8]
add esi, edx
add edi, ecx
cmp esi, ebx
jl 0x1005e579
sub esi, ebx
sub edi, eax
jmp 0x1005e581
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jmp 0x1005b581
test esi, esi
jns 0x1005e581
add esi, ebx
add edi, eax
sub dword [esp + 0x38], 1
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x28]
mov eax, dword [eax]
mov edx, dword [edi + eax + 4]
mov ecx, dword [edi + eax]
mov dword [edi + eax], ebx
mov ebx, dword [esp + 0x34]
mov dword [edi + eax + 4], ebx
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x28], ecx
jne 0x1005e522
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
jmp 0x1005b581
test al, al
je case.0x1005c2a1.0
cmp byte [esp + 0x33], 0
je case.0x1005c2a1.0
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005e609
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e605
cmp dword [eax], 0
jne 0x1005e605
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005e637
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
mov dword [esp + 0x18], esi
sub eax, 1
je 0x1005e627
sub eax, 1
jne 0x1005e63b
shl esi, 0x10
jmp 0x1005e637
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov dword [esp + 0x18], esi
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x3f28], esi
cmp ecx, dword [edi]
jne 0x1005e65f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e65b
cmp dword [eax], 0
jne 0x1005e65b
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x1005e68d
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebp, dword [ecx]
mov dword [esp + 0x20], ebp
sub eax, 1
je 0x1005e67d
sub eax, 1
jne 0x1005e691
shl ebp, 0x10
jmp 0x1005e68d
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
mov dword [esp + 0x20], ebp
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x3f24], ebp
mov dword [eax + 0x1d4], 0
mov eax, dword [edi]
mov dword [ebx + 0xc], eax
jmp 0x1005b581
mov eax, dword [esp + 0x40]
cmp byte [eax + 8], 0
je case.0x1005b69f.0
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005e6df
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e6db
cmp dword [eax], 0
jne 0x1005e6db
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005e709
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1005e6f9
sub eax, 1
jne 0x1005e709
shl ecx, 0x10
jmp 0x1005e709
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x2c]
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 0x1005e739
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e735
cmp dword [eax], 0
jne 0x1005e735
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005e763
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005e753
sub eax, 1
jne 0x1005e763
shl ecx, 0x10
jmp 0x1005e763
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x2c]
mov byte [esp + 0x27], 1
mov eax, dword [edx + 0x20]
add dword [eax], ecx
cmp byte [edx + 0x2f], 0
jne 0x1005ff6f
cmp byte [esp + 0x33], 0
mov edx, dword [esp + 0x10]
je case.0x1005c2a1.0
mov eax, dword [edi]
add ebp, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x3f24], ebp
mov dword [ebx + 0xc], eax
jmp 0x1005b581
mov edi, dword [esp + 0x40]
cmp byte [edi + 8], 0
je 0x1006011d
test ah, ah
jne 0x1006011d
cmp byte [esp + 0x2ec8], ah
je 0x1005e833
push dword [esp + 0x2f14]
mov edx, dword [esp + 0x2f14]
lea ecx, [esp + 0x13c]
mov byte [esp + 0x2ecd], 1
call fcn.1005a410
cmp byte [esp + 0x2f18], 0
je 0x1005e81b
push 1
push dword [esp + 0x2f00]
lea eax, [esp + 0x2ef8]
push dword [esp + 0x2f00]
lea edx, [esp + 0x14c]
push eax
lea ecx, [esp + 0x148]
call fcn.10059e80
mov byte [esp + 0x2ec8], 0
mov byte [esp + 0x2ec9], 0
mov byte [esp + 0x2f18], 0
cmp byte [esp + 0x14c], 0
mov eax, dword [esp + 0x2ed4]
mov dword [esp + 0x2f10], ebp
mov dword [esp + 0x2f00], ebp
mov dword [esp + 0x2f14], esi
mov dword [esp + 0x2f04], esi
mov byte [esp + 0x2ecb], 1
je 0x1005e86e
cmp byte [eax + 5], 0
je 0x1005e892
mov edx, dword [esp + 0x2ecc]
lea ecx, [esp + 0x140]
push 0
push dword [esp + 0x2edc]
push eax
push dword [esp + 0x2edc]
call fcn.100594f0
mov eax, dword [esp + 0x64]
lea esi, [esp + 0x140]
mov ecx, 0x3c7
mov byte [esp + 0x33], 1
lea edi, [esp + 0x105c]
mov dword [esp + 0xb4], 0
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x14]
xorps xmm0, xmm0
mov dword [esp + 0xd4], 0
movq qword [esp + 0x110], xmm0
mov dword [esp + 0x118], 0
movups xmmword [esp + 0x100], xmm0
mov dword [esp + 0x100], eax
mov byte [esp + 0x104], 0
mov byte [esp + 0x105], 1
test ecx, ecx
jle 0x1005e952
mov ebx, dword [esp + 0x94]
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x6c]
nop dword [eax]
lea ebp, [ecx - 1]
cmp ebp, eax
jb 0x1005e938
test ebx, ebx
je 0x1005e936
cmp dword [ebx], 0
jne 0x1005e936
mov dword [ebx], 0x82
xor ebp, ebp
imul ebp, edx
dec ecx
add ebp, esi
mov dword [esp + 0x10], ebp
test ecx, ecx
jg 0x1005e920
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov eax, dword [edx + 4]
mov dword [edx + 0xc], eax
mov eax, dword [edi]
mov dword [ebx + 0xc], eax
jmp 0x1005b581
mov eax, dword [ebx + 0xc]
sub eax, dword [edi]
sar eax, 3
cmp eax, 1
jbe 0x1005e989
cmp byte [esp + 0x104], 0
jne case.0x1005b69f.0
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x27]
push 0
push eax
push dword [esp + 0x68]
lea eax, [esp + 0xac]
mov edx, ebx
push eax
call fcn.1005a890
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x224], 0
jne 0x1005ff6f
cmp byte [esp + 0x28], 0x13
jne 0x1005e9ec
mov eax, dword [esp + 0xb4]
lea ecx, [esp + 0x100]
add eax, dword [esp + 0xd4]
mov edx, dword [esp + 0x10]
push eax
call fcn.1005a810
mov eax, dword [edi]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1005b581
push 0xf1c
lea eax, [esp + 0x2f44]
push 0
push eax
call fcn.1018fe70
mov ecx, dword [esp + 0x4c]
add esp, 0xc
mov edx, dword [esp + 0x10]
xorps xmm0, xmm0
mov dword [esp + 0x2f40], ecx
movlpd qword [esp + 0x120], xmm0
mov al, byte [ecx + 0xb8]
mov byte [esp + 0x2f4d], al
mov eax, dword [esp + 0x90]
mov dword [esp + 0x2f50], eax
lea eax, [esp + 0x1f78]
mov dword [esp + 0x2f44], eax
lea eax, [esp + 0x2e94]
mov dword [esp + 0x2f48], eax
lea eax, [ecx + 4]
mov dword [esp + 0x11c], eax
lea ecx, [esp + 0x11c]
mov eax, dword [esp + 0xb4]
add eax, dword [esp + 0xd4]
push eax
movlpd qword [esp + 0x12c], xmm0
movlpd qword [esp + 0x134], xmm0
call fcn.1005a810
push 0
push 0
lea eax, [esp + 0x124]
push eax
lea eax, [esp + 0xac]
push eax
lea edx, [esp + 0xd0]
lea ecx, [esp + 0x2f50]
call fcn.100594f0
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1005b581
mov eax, dword [ebx + 0xc]
mov edx, dword [edi]
sub eax, edx
sar eax, 3
cmp eax, 2
jbe 0x1005eb0e
cmp byte [esp + 0x27], 0
jne 0x1005eb0e
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005eaef
sub eax, 1
jne 0x1005eaff
shl ecx, 0x10
jmp 0x1005eaff
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x60]
mov dword [ecx], eax
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x27], 1
cmp byte [eax + 0x224], 0
jne 0x1005ff6f
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005eb51
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005eb3d
cmp dword [eax], 0
jne 0x1005eb3d
mov dword [eax], 0xa1
xor ecx, ecx
add esi, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x3f28], esi
jmp 0x1005ebf9
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005eb7b
sub eax, 1
jne 0x1005eb8b
shl ecx, 0x10
add esi, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x3f28], esi
jmp 0x1005ebf9
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
add esi, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x3f28], esi
jmp 0x1005ebf9
mov eax, dword [ebx + 0xc]
mov edx, dword [edi]
sub eax, edx
sar eax, 3
cmp eax, 1
jbe 0x1005ebe3
cmp byte [esp + 0x27], 0
jne 0x1005ebe3
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005ebc4
sub eax, 1
jne 0x1005ebd4
shl ecx, 0x10
jmp 0x1005ebd4
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x60]
mov dword [ecx], eax
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x27], 1
cmp byte [eax + 0x224], 0
jne 0x1005ff6f
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005ec16
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ec12
cmp dword [eax], 0
jne 0x1005ec12
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005ec40
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005ec30
sub eax, 1
jne 0x1005ec40
shl ecx, 0x10
jmp 0x1005ec40
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
add ebp, ecx
mov dword [esp + 0x3f24], ebp
mov dword [esp + 0x20], ebp
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0x1d4], 0
jne 0x1005ed53
cmp byte [esp + 0x2ec8], 0
je 0x1005ecd7
push dword [esp + 0x2f14]
mov edx, dword [esp + 0x2f14]
lea ecx, [esp + 0x13c]
mov byte [esp + 0x2ecd], 1
call fcn.1005a410
cmp byte [esp + 0x2f18], 0
je 0x1005ecbf
push 1
push dword [esp + 0x2f00]
lea eax, [esp + 0x2ef8]
push dword [esp + 0x2f00]
lea edx, [esp + 0x14c]
push eax
lea ecx, [esp + 0x148]
call fcn.10059e80
mov byte [esp + 0x2ec8], 0
mov byte [esp + 0x2ec9], 0
mov byte [esp + 0x2f18], 0
cmp byte [esp + 0x14c], 0
mov eax, dword [esp + 0x2ed4]
mov dword [esp + 0x2f10], ebp
mov dword [esp + 0x2f00], ebp
mov dword [esp + 0x2f14], esi
mov dword [esp + 0x2f04], esi
mov byte [esp + 0x2ecb], 1
je 0x1005ed12
cmp byte [eax + 5], 0
je 0x1005ed36
mov edx, dword [esp + 0x2ecc]
lea ecx, [esp + 0x140]
push 0
push dword [esp + 0x2edc]
push eax
push dword [esp + 0x2edc]
call fcn.100594f0
mov ecx, 0x3c7
lea edi, [esp + 0x105c]
lea esi, [esp + 0x140]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov eax, dword [edi]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1005b581
mov ebp, dword [ebx + 0xc]
xor esi, esi
sub ebp, dword [edi]
sar ebp, 3
mov dword [esp + 0x44], ebp
cmp ebp, 6
jbe 0x1005ee61
lea edi, [esi + 6]
nop
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx + 0xc]
mov ecx, dword [edx]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x1005eda8
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005eda4
cmp dword [eax], 0
jne 0x1005eda4
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005edce
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x1005edbe
sub eax, 1
jne 0x1005edce
shl ecx, 0x10
jmp 0x1005edce
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x20]
mov edx, dword [edx]
add eax, ecx
mov ecx, dword [ebx + 0xc]
sub ecx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x3f24], eax
lea eax, [edi - 5]
sar ecx, 3
cmp eax, ecx
jb 0x1005ee06
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ee02
cmp dword [eax], 0
jne 0x1005ee02
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005ee2d
mov eax, dword [edx + esi*8 + 0xc]
mov ecx, dword [edx + esi*8 + 8]
sub eax, 1
je 0x1005ee1d
sub eax, 1
jne 0x1005ee2d
shl ecx, 0x10
jmp 0x1005ee2d
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
add eax, ecx
push eax
lea ecx, [esp + 0x13c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3f2c], eax
call fcn.1005a410
add edi, 2
add esi, 2
cmp edi, ebp
jb 0x1005ed80
mov edi, dword [esp + 0x1c]
cmp esi, ebp
mov ebp, dword [esp + 0x20]
jae 0x1005f582
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 0x1005ee97
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ee93
cmp dword [eax], 0
jne 0x1005ee93
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005eebe
mov eax, dword [edx + esi*8 - 0xc]
mov ecx, dword [edx + esi*8 - 0x10]
sub eax, 1
je 0x1005eeae
sub eax, 1
jne 0x1005eebe
shl ecx, 0x10
jmp 0x1005eebe
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 + 0x48], ebp
sar ecx, 3
cmp eax, ecx
jb 0x1005eeeb
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005eee7
cmp dword [eax], 0
jne 0x1005eee7
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005ef12
mov eax, dword [edx + esi*8 - 4]
mov ecx, dword [edx + esi*8 - 8]
sub eax, 1
je 0x1005ef02
sub eax, 1
jne 0x1005ef12
shl ecx, 0x10
jmp 0x1005ef12
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov eax, dword [ebx + 0xc]
add edi, ecx
mov dword [esp + 0x4c], edi
mov ecx, dword [edx]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x1005ef44
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ef40
cmp dword [eax], 0
jne 0x1005ef40
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005ef6a
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x1005ef5a
sub eax, 1
jne 0x1005ef6a
shl ecx, 0x10
jmp 0x1005ef6a
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 0x1005ef93
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ef8f
cmp dword [eax], 0
jne 0x1005ef8f
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005efba
mov eax, dword [edx + esi*8 + 0xc]
mov ecx, dword [edx + esi*8 + 8]
sub eax, 1
je 0x1005efaa
sub eax, 1
jne 0x1005efba
shl ecx, 0x10
jmp 0x1005efba
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
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 0x1005efe7
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005efe3
cmp dword [eax], 0
jne 0x1005efe3
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f00e
mov eax, dword [edx + esi*8 + 0x14]
mov ecx, dword [edx + esi*8 + 0x10]
sub eax, 1
je 0x1005effe
sub eax, 1
jne 0x1005f00e
shl ecx, 0x10
jmp 0x1005f00e
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 + 0x20], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
sub ecx, edx
sar ecx, 3
lea eax, [esi + 3]
cmp eax, ecx
jb 0x1005f040
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f03c
cmp dword [eax], 0
jne 0x1005f03c
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f067
mov eax, dword [edx + esi*8 + 0x1c]
mov ecx, dword [edx + esi*8 + 0x18]
sub eax, 1
je 0x1005f057
sub eax, 1
jne 0x1005f067
shl ecx, 0x10
jmp 0x1005f067
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x48]
lea eax, [edi + ecx]
push eax
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x13c]
mov eax, dword [esp + 0x24]
push eax
push edi
push ebp
push dword [esp + 0x5c]
call fcn.1005a590
mov eax, dword [esp + 0x18]
add esi, 6
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x3f28], eax
lea eax, [esi - 2]
mov dword [esp + 0x3f24], ebp
cmp eax, dword [esp + 0x44]
jb 0x1005ee70
jmp 0x1005f57e
mov esi, dword [ebx + 0xc]
sub esi, dword [edi]
sar esi, 3
mov ecx, esi
and ecx, 0xfffffffd
sub esi, ecx
mov dword [esp + 0x4c], ecx
cmp esi, ecx
jae 0x1005f582
lea eax, [esi + 3]
lea edi, [esi + 2]
mov dword [esp + 0x28], eax
lea edx, [esi + 1]
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], edx
nop dword [eax]
sub ecx, esi
test cl, 1
je 0x1005f156
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x1005f11f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f11b
cmp dword [eax], 0
jne 0x1005f11b
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f145
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x1005f135
sub eax, 1
jne 0x1005f145
shl ecx, 0x10
jmp 0x1005f145
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 + 0x34], edx
inc esi
mov dword [esp + 0x38], edi
inc dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x1005f17e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f17a
cmp dword [eax], 0
jne 0x1005f17a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f1a4
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x1005f194
sub eax, 1
jne 0x1005f1a4
shl ecx, 0x10
jmp 0x1005f1a4
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
add edi, ecx
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp edx, eax
jb 0x1005f1d2
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f1ce
cmp dword [eax], 0
jne 0x1005f1ce
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f1f8
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x1005f1e8
sub eax, 1
jne 0x1005f1f8
shl ecx, 0x10
jmp 0x1005f1f8
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x38]
lea eax, [ecx + ebp]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp edx, eax
jb 0x1005f22b
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f227
cmp dword [eax], 0
jne 0x1005f227
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f251
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x1005f241
sub eax, 1
jne 0x1005f251
shl ecx, 0x10
jmp 0x1005f251
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
lea edx, [edi + ecx]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x28], eax
jb 0x1005f27e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f27a
cmp dword [eax], 0
jne 0x1005f27a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f2b3
mov eax, dword [esp + 0x28]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1005f29c
sub eax, 1
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx + eax*8]
jne 0x1005f2b3
shl ecx, 0x10
jmp 0x1005f2b3
mov eax, dword [esp + 0x28]
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 + 0x1c], eax
lea ecx, [esp + 0x13c]
mov eax, dword [esp + 0x24]
push eax
push edx
push eax
push edi
mov edx, ebp
call fcn.1005a590
mov edx, dword [esp + 0x34]
add esi, 4
mov edi, dword [esp + 0x38]
add edx, 4
add dword [esp + 0x28], 4
add edi, 4
mov ecx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x3f24], ebp
mov dword [esp + 0x3f28], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], edi
cmp esi, ecx
jb 0x1005f0f0
jmp 0x1005f57e
mov esi, dword [ebx + 0xc]
sub esi, dword [edi]
sar esi, 3
mov ecx, esi
and ecx, 0xfffffffd
sub esi, ecx
mov dword [esp + 0x4c], ecx
cmp esi, ecx
jae 0x1005f582
lea eax, [esi + 3]
lea edi, [esi + 2]
mov dword [esp + 0x28], eax
lea edx, [esi + 1]
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edx
sub ecx, esi
test cl, 1
je 0x1005f3b2
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x1005f375
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f371
cmp dword [eax], 0
jne 0x1005f371
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f39b
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x1005f38b
sub eax, 1
jne 0x1005f39b
shl ecx, 0x10
jmp 0x1005f39b
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebp, dword [esp + 0x18]
inc edx
inc edi
mov dword [esp + 0x38], edx
add ebp, ecx
mov dword [esp + 0x34], edi
inc esi
inc dword [esp + 0x28]
jmp 0x1005f3b6
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x1005f3de
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f3da
cmp dword [eax], 0
jne 0x1005f3da
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f404
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x1005f3f4
sub eax, 1
jne 0x1005f404
shl ecx, 0x10
jmp 0x1005f404
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
add edi, ecx
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp edx, eax
jb 0x1005f432
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f42e
cmp dword [eax], 0
jne 0x1005f42e
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f458
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x1005f448
sub eax, 1
jne 0x1005f458
shl ecx, 0x10
jmp 0x1005f458
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
lea edx, [edi + ecx]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x34], eax
jb 0x1005f485
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f481
cmp dword [eax], 0
jne 0x1005f481
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f4ba
mov eax, dword [esp + 0x34]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1005f4a3
sub eax, 1
mov eax, dword [esp + 0x34]
mov ecx, dword [ecx + eax*8]
jne 0x1005f4ba
shl ecx, 0x10
jmp 0x1005f4ba
mov eax, dword [esp + 0x34]
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 + 0x18], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x28], eax
jb 0x1005f4eb
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f4e7
cmp dword [eax], 0
jne 0x1005f4e7
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f520
mov eax, dword [esp + 0x28]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1005f509
sub eax, 1
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx + eax*8]
jne 0x1005f520
shl ecx, 0x10
jmp 0x1005f520
mov eax, dword [esp + 0x28]
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 + 0x18]
push ecx
push eax
push ecx
push edx
push ebp
mov edx, edi
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x14c]
call fcn.1005a590
mov edx, dword [esp + 0x38]
add esi, 4
mov edi, dword [esp + 0x34]
add edx, 4
add dword [esp + 0x28], 4
add edi, 4
mov ecx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x3f24], ebp
mov dword [esp + 0x3f28], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], edi
cmp esi, ecx
jb 0x1005f346
mov edi, dword [esp + 0x1c]
mov eax, dword [edi]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1005b581
mov eax, dword [esp + 0x1c]
mov edi, dword [ebx + 0xc]
sub edi, dword [eax]
sar edi, 3
cmp byte [esp + 0x28], 0x1f
mov eax, edi
sete dl
and eax, 0xfffffffd
sub edi, eax
mov dword [esp + 0x48], eax
cmp edi, eax
jae 0x1005fa3c
lea eax, [edi + 4]
mov dword [esp + 0x28], eax
lea ebp, [edi + 1]
lea eax, [edi + 3]
mov dword [esp + 0x34], eax
lea eax, [edi + 2]
mov dword [esp + 0x38], eax
nop word [eax + eax]
mov eax, dword [esp + 0x84]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
test dl, dl
je 0x1005f7f7
cmp edi, eax
jb 0x1005f613
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f60f
cmp dword [eax], 0
jne 0x1005f60f
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f639
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x1005f629
sub eax, 1
jne 0x1005f639
shl ecx, 0x10
jmp 0x1005f639
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
add edx, ecx
mov dword [esp + 0x44], esi
mov dword [esp + 0x4c], edx
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp ebp, eax
jb 0x1005f66f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f66b
cmp dword [eax], 0
jne 0x1005f66b
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f695
mov eax, dword [ecx + ebp*8 + 4]
mov ecx, dword [ecx + ebp*8]
sub eax, 1
je 0x1005f685
sub eax, 1
jne 0x1005f695
shl ecx, 0x10
jmp 0x1005f695
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
lea esi, [edx + ecx]
mov edx, dword [esp + 0x38]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp edx, eax
jb 0x1005f6c4
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f6c0
cmp dword [eax], 0
jne 0x1005f6c0
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f6ea
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x1005f6da
sub eax, 1
jne 0x1005f6ea
shl ecx, 0x10
jmp 0x1005f6ea
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
add edx, ecx
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x34], eax
jb 0x1005f71a
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f716
cmp dword [eax], 0
jne 0x1005f716
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f74f
mov eax, dword [esp + 0x34]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1005f738
sub eax, 1
mov eax, dword [esp + 0x34]
mov ecx, dword [ecx + eax*8]
jne 0x1005f74f
shl ecx, 0x10
jmp 0x1005f74f
mov eax, dword [esp + 0x34]
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 + 0x18], eax
mov eax, dword [esp + 0x48]
sub eax, edi
cmp eax, 5
jne 0x1005f7e8
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x28], eax
jb 0x1005f78f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f78b
cmp dword [eax], 0
jne 0x1005f78b
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f7c4
mov eax, dword [esp + 0x28]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1005f7ad
sub eax, 1
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx + eax*8]
jne 0x1005f7c4
shl ecx, 0x10
jmp 0x1005f7c4
mov eax, dword [esp + 0x28]
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 + 0x38]
add ecx, esi
inc dword [esp + 0x34]
inc eax
inc dword [esp + 0x28]
inc edi
inc ebp
mov dword [esp + 0x38], eax
xor al, al
mov dword [esp + 0x20], ecx
mov byte [esp + 0x3f], al
jmp 0x1005f9e2
xor al, al
mov dword [esp + 0x20], esi
mov byte [esp + 0x3f], al
jmp 0x1005f9e2
mov edx, dword [esp + 0x20]
mov dword [esp + 0x4c], edx
cmp edi, eax
jb 0x1005f819
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f815
cmp dword [eax], 0
jne 0x1005f815
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f83f
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x1005f82f
sub eax, 1
jne 0x1005f83f
shl ecx, 0x10
jmp 0x1005f83f
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [ecx + esi]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp ebp, eax
jb 0x1005f86e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f86a
cmp dword [eax], 0
jne 0x1005f86a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f894
mov eax, dword [ecx + ebp*8 + 4]
mov ecx, dword [ecx + ebp*8]
sub eax, 1
je 0x1005f884
sub eax, 1
jne 0x1005f894
shl ecx, 0x10
jmp 0x1005f894
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
lea esi, [ecx + edx]
mov edx, dword [esp + 0x38]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp edx, eax
jb 0x1005f8c3
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f8bf
cmp dword [eax], 0
jne 0x1005f8bf
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f8e9
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x1005f8d9
sub eax, 1
jne 0x1005f8e9
shl ecx, 0x10
jmp 0x1005f8e9
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
add edx, ecx
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x34], eax
jb 0x1005f919
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f915
cmp dword [eax], 0
jne 0x1005f915
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f94e
mov eax, dword [esp + 0x34]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1005f937
sub eax, 1
mov eax, dword [esp + 0x34]
mov ecx, dword [ecx + eax*8]
jne 0x1005f94e
shl ecx, 0x10
jmp 0x1005f94e
mov eax, dword [esp + 0x34]
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 + 0x20], eax
mov eax, dword [esp + 0x48]
sub eax, edi
cmp eax, 5
jne 0x1005f9d9
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x28], eax
jb 0x1005f98e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f98a
cmp dword [eax], 0
jne 0x1005f98a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005f9c3
mov eax, dword [esp + 0x28]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1005f9ac
sub eax, 1
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx + eax*8]
jne 0x1005f9c3
shl ecx, 0x10
jmp 0x1005f9c3
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
inc dword [esp + 0x38]
add ecx, edx
inc dword [esp + 0x34]
inc edi
inc ebp
mov dword [esp + 0x18], ecx
inc dword [esp + 0x28]
jmp 0x1005f9dd
mov dword [esp + 0x18], edx
mov byte [esp + 0x3f], 1
push dword [esp + 0x18]
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x13c]
push eax
push edx
mov edx, dword [esp + 0x58]
push esi
push dword [esp + 0x54]
call fcn.1005a590
add dword [esp + 0x38], 4
add edi, 4
add dword [esp + 0x34], 4
add ebp, 4
add dword [esp + 0x28], 4
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov dl, byte [esp + 0x3f]
mov dword [esp + 0x3f24], eax
mov dword [esp + 0x3f28], esi
cmp edi, dword [esp + 0x48]
jb 0x1005f5e0
mov ebp, eax
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [edi]
mov dword [ebx + 0xc], eax
jmp 0x1005b581
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x1005fa69
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx edx, cl
jmp 0x1005fa7c
mov eax, dword [esi]
test eax, eax
je 0x1005fa7a
cmp dword [eax], 0
jne 0x1005fa7a
mov dword [eax], 0x55
xor edx, edx
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x1005fa9a
mov cl, byte [eax]
inc eax
shl edx, 8
mov dword [esi + 0xc], eax
movzx eax, cl
movsx edx, dx
or edx, eax
jmp 0x1005c556
mov eax, dword [esi]
test eax, eax
je 0x1005faab
cmp dword [eax], 0
jne 0x1005faab
mov dword [eax], 0x55
shl edx, 8
xor eax, eax
movsx edx, dx
or edx, eax
jmp 0x1005c556
mov ecx, dword [esp + 0x14]
mov dword [esi], edx
mov eax, dword [ebx + 0xc]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [eax + 4], 2
add dword [ebx + 0xc], 8
jmp 0x1005b581
cmp byte [esp + 0x28], 0xf6
ja 0x1005fb00
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 0x1005fb90
jmp 0x1005c569
cmp byte [esp + 0x28], 0xfa
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
ja 0x1005fb48
shl edx, 8
cmp eax, ecx
jae 0x1005fb2b
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx eax, cl
lea esi, [eax - 0xf694]
add esi, edx
jmp 0x1005fae8
mov eax, dword [esi]
test eax, eax
je 0x1005fb3c
cmp dword [eax], 0
jne 0x1005fb3c
mov dword [eax], 0x55
xor eax, eax
lea esi, [eax - 0xf694]
add esi, edx
jmp 0x1005fae8
cmp byte [esp + 0x28], 0xfe
ja 0x1005fbb1
shl edx, 8
cmp eax, ecx
jae 0x1005fb61
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx eax, cl
jmp 0x1005fb74
mov eax, dword [esi]
test eax, eax
je 0x1005fb72
cmp dword [eax], 0
jne 0x1005fb72
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 0x1005c569
mov ecx, dword [esp + 0x14]
mov dword [edx], esi
mov eax, dword [ebx + 0xc]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [eax + 4], 2
add dword [ebx + 0xc], 8
jmp 0x1005b581
cmp eax, ecx
jae 0x1005fbc0
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx edx, cl
jmp 0x1005fbd3
mov eax, dword [esi]
test eax, eax
je 0x1005fbd1
cmp dword [eax], 0
jne 0x1005fbd1
mov dword [eax], 0x55
xor edx, edx
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x1005fbe6
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx edi, cl
jmp 0x1005fbf9
mov eax, dword [esi]
test eax, eax
je 0x1005fbf7
cmp dword [eax], 0
jne 0x1005fbf7
mov dword [eax], 0x55
xor edi, edi
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x1005fc0c
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx esi, cl
jmp 0x1005fc1f
mov eax, dword [esi]
test eax, eax
je 0x1005fc1d
cmp dword [eax], 0
jne 0x1005fc1d
mov dword [eax], 0x55
xor esi, esi
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 8]
jae 0x1005fc3e
mov ebp, dword [esp + 0x10]
mov cl, byte [eax]
inc eax
mov dword [ebp + 0xc], eax
mov ebp, dword [esp + 0x20]
movzx eax, cl
jmp 0x1005fc51
mov eax, dword [ecx]
test eax, eax
je 0x1005fc4f
cmp dword [eax], 0
jne 0x1005fc4f
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 + 0x40]
cmp byte [eax + 8], 0
je 0x1005fc98
cmp edx, 0x7d00
jg 0x1005fc7a
cmp edx, 0xffff8300
jge 0x1005fc8f
mov ecx, dword [esp + 0x58]
test cl, cl
movzx eax, cl
mov ecx, 1
cmove eax, ecx
mov byte [esp + 0x58], al
mov edi, dword [esp + 0x1c]
jmp 0x1005c556
mov edi, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x10]
mov esi, dword [ebx + 0xc]
mov eax, dword [edi]
lea eax, [eax + ecx*8]
cmp esi, eax
je 0x1005c569
mov ecx, dword [esp + 0x14]
mov dword [esi], edx
mov eax, dword [ebx + 0xc]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [eax + 4], 0
add dword [ebx + 0xc], 8
jmp 0x1005b581
cmp dword [eax - 4], 2
je 0x1005fcec
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005fce8
cmp dword [eax], 0
jne 0x1005fce8
mov dword [eax], 0xa0
xor edx, edx
jmp 0x1005fcf4
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x38], edx
cmp eax, dword [ebx + 8]
jne 0x1005fd16
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005fd12
cmp dword [eax], 0
jne 0x1005fd12
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005fd3a
cmp dword [eax - 4], 2
je 0x1005fd32
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005fd2e
cmp dword [eax], 0
jne 0x1005fd2e
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x1005fd3a
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x58], ecx
cmp eax, dword [ebx + 8]
jne 0x1005fd5c
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005fd58
cmp dword [eax], 0
jne 0x1005fd58
mov dword [eax], 0xa1
xor edi, edi
jmp 0x1005fd86
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1005fd76
sub eax, 1
jne 0x1005fd86
shl edi, 0x10
jmp 0x1005fd86
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 0x1005fda4
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005fda0
cmp dword [eax], 0
jne 0x1005fda0
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005fdce
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1005fdbe
sub eax, 1
jne 0x1005fdce
shl esi, 0x10
jmp 0x1005fdce
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 0x1005fdec
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005fde8
cmp dword [eax], 0
jne 0x1005fde8
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x1005fe16
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ebp, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1005fe06
sub eax, 1
jne 0x1005fe16
shl ebp, 0x10
jmp 0x1005fe16
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
cmp byte [esp + 0x3f20], 0
je 0x1005fe2a
mov eax, 0x12
jmp 0x1006044f
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x2f], 0
je 0x1005fe3e
mov eax, 0x12
jmp 0x1006044f
cmp dword [eax + 0x244], 0
jne 0x1005fe65
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x80]
cmp dword [eax + 0x34], 0
jne 0x1005fe61
mov eax, 0x12
jmp 0x1006044f
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x20]
add esi, dword [eax]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x80]
cmp dword [eax + 0x34], 0
jne 0x1005fe9c
mov edx, ecx
mov ecx, dword [esp + 0x2c]
call fcn.10057010
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x58], eax
call fcn.10057010
mov edx, eax
mov dword [esp + 0x38], edx
cmp dword [esp + 0x58], 0
jl 0x1005fe20
test edx, edx
js 0x1005fe20
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x2e], 0
je 0x1005ff78
mov eax, dword [eax + 8]
mov edx, 2
mov dword [esp + 0x84], eax
mov eax, dword [eax + 0x9c]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x4c], eax
call fcn.10046f40
test eax, eax
jne 0x1006044f
mov ecx, dword [esp + 0x4c]
sub esi, ebp
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x38]
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 + 0x4c]
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 + 0x84]
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 + 0x68]
jmp 0x1006044f
mov ecx, dword [eax + 0xc]
call fcn.10047090
mov edx, dword [esp + 0x58]
lea eax, [esp + 0x3e60]
mov ecx, dword [esp + 0x2c]
push eax
call fcn.10058f10
test eax, eax
jne 0x1006044f
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x20]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x7c], eax
mov eax, dword [edx + 0x24]
lea edx, [esp + 0x3e60]
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x70]
push eax
push 0
push 0
push 1
push dword [esp + 0x88]
mov dword [esp + 0x5c], ecx
push dword [esp + 0x94]
mov ecx, dword [esp + 0x58]
call fcn.1005afc0
mov ecx, dword [esp + 0x3e64]
mov eax, dword [esp + 0x3e68]
mov edx, dword [esp + 0x2c]
sub eax, ecx
mov dword [esp + 0x88], eax
mov dword [esp + 0x84], ecx
mov eax, dword [edx + 4]
mov eax, dword [eax + 0x80]
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x10060031
mov eax, dword [ecx]
lea edx, [esp + 0x84]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 4]
call eax
mov edx, dword [esp + 0x2c]
cmp byte [esp + 0x27], 0
jne 0x10060058
mov eax, dword [edx + 0x20]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x7c], eax
mov eax, dword [edx + 0x24]
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x44], eax
mov eax, dword [edx + 0x20]
mov ecx, dword [esp + 0x2c]
mov dword [eax], 0
mov eax, dword [edx + 0x20]
mov edx, dword [esp + 0x38]
mov dword [eax + 4], 0
lea eax, [esp + 0x3e60]
push eax
call fcn.10058f10
test eax, eax
jne 0x1006044f
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x70]
push eax
push edi
sub esi, ebp
lea edx, [esp + 0x3e68]
push esi
push 1
push dword [esp + 0x88]
push dword [esp + 0x94]
call fcn.1005afc0
mov ecx, dword [esp + 0x3e64]
mov eax, dword [esp + 0x3e68]
mov ebp, dword [esp + 0x2c]
sub eax, ecx
mov dword [esp + 0x88], eax
mov dword [esp + 0x84], ecx
mov eax, dword [ebp + 4]
mov eax, dword [eax + 0x80]
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x100600f4
mov eax, dword [ecx]
lea edx, [esp + 0x84]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 4]
call eax
mov eax, dword [ebp + 0x20]
mov ecx, dword [esp + 0x4c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 4], ecx
mov eax, dword [ebp + 0x24]
mov ecx, dword [esp + 0x48]
mov dword [eax], ecx
mov ecx, dword [esp + 0x44]
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x68]
jmp 0x1006044f
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
je 0x10060132
cmp eax, 5
jne 0x10060186
cmp byte [esp + 0x27], 0
jne 0x10060186
test eax, eax
jne 0x10060153
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006014f
cmp dword [eax], 0
jne 0x1006014f
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060177
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10060167
sub eax, 1
jne 0x10060177
shl ecx, 0x10
jmp 0x10060177
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x60]
mov dword [ecx], eax
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x224], 0
jne 0x1005ff6f
cmp byte [esp + 0x2ec8], 0
je 0x1006021c
push dword [esp + 0x2f14]
mov edx, dword [esp + 0x2f14]
lea ecx, [esp + 0x13c]
mov byte [esp + 0x2ecd], 1
call fcn.1005a410
cmp byte [esp + 0x2f18], 0
je 0x100601fc
push 1
push dword [esp + 0x2f00]
lea eax, [esp + 0x2ef8]
push dword [esp + 0x2f00]
lea edx, [esp + 0x14c]
push eax
lea ecx, [esp + 0x148]
call fcn.10059e80
mov byte [esp + 0x2ecb], 1
mov byte [esp + 0x2ec8], 0
mov byte [esp + 0x2ec9], 0
mov byte [esp + 0x2f18], 0
cmp byte [edi + 9], 0
jne 0x1005ff6f
cmp byte [edi + 8], 0
jne 0x1005ff6f
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov edx, dword [ebx + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
jbe 0x1005ff6f
cmp byte [esp + 0x3f20], 0
je 0x1006025a
mov eax, 0x12
jmp 0x1006044f
cmp ecx, edx
jne 0x10060274
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060270
cmp dword [eax], 0
jne 0x10060270
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10060298
cmp dword [ecx - 4], 2
je 0x10060290
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006028c
cmp dword [eax], 0
jne 0x1006028c
mov dword [eax], 0xa0
xor edx, edx
jmp 0x10060298
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jne 0x100602b6
mov eax, dword [ebx + 4]
test eax, eax
je 0x100602b2
cmp dword [eax], 0
jne 0x100602b2
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x100602da
cmp dword [eax - 4], 2
je 0x100602d2
mov eax, dword [ebx + 4]
test eax, eax
je 0x100602ce
cmp dword [eax], 0
jne 0x100602ce
mov dword [eax], 0xa0
xor ebp, ebp
jmp 0x100602da
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ebp, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jne 0x100602f8
mov eax, dword [ebx + 4]
test eax, eax
je 0x100602f4
cmp dword [eax], 0
jne 0x100602f4
mov dword [eax], 0xa1
xor edi, edi
jmp 0x10060322
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x10060312
sub eax, 1
jne 0x10060322
shl edi, 0x10
jmp 0x10060322
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 0x10060340
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006033c
cmp dword [eax], 0
jne 0x1006033c
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1006036a
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1006035a
sub eax, 1
jne 0x1006036a
shl esi, 0x10
jmp 0x1006036a
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x3e60]
push eax
call fcn.10058e50
test eax, eax
jne 0x1006044f
lea eax, [esp + 0x84]
push eax
push edi
mov edi, dword [esp + 0x48]
lea edx, [esp + 0x3e68]
push esi
push 1
push dword [esp + 0x88]
mov ecx, edi
push dword [esp + 0x94]
call fcn.1005afc0
mov eax, dword [esp + 0x3e68]
lea edx, [esp + 0x3e64]
mov esi, dword [esp + 0x2c]
sub eax, dword [esp + 0x3e64]
push eax
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0x258]
call eax
lea eax, [esp + 0x3e60]
mov edx, ebp
push eax
mov ecx, esi
call fcn.10058e50
test eax, eax
jne 0x1006044f
lea eax, [esp + 0x84]
mov ecx, edi
push eax
push 0
push 0
push 1
push dword [esp + 0x88]
lea edx, [esp + 0x3e74]
push dword [esp + 0x94]
call fcn.1005afc0
mov eax, dword [esp + 0x3e68]
lea edx, [esp + 0x3e64]
sub eax, dword [esp + 0x3e64]
mov ecx, dword [esi + 4]
push eax
mov eax, dword [esi + 0x258]
call eax
mov eax, dword [esp + 0x68]
jmp 0x1006044f
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 0x1006045e
cmp dword [ecx], 0
jne 0x1006045e
mov dword [ecx], eax
mov edx, dword [esp + 0x2eb0]
mov dword [esp + 0x2ea0], 0
mov dword [esp + 0x2ea8], 0
mov dword [esp + 0x2eac], 0
test edx, edx
je 0x10060498
mov eax, dword [esp + 0x2e94]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x2eb0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
test edx, edx
je 0x100604dd
mov eax, dword [esp + 0xa0]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
mov edx, dword [esp + 0xdc]
mov dword [esp + 0xbc], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
test edx, edx
je 0x10060522
mov eax, dword [esp + 0xc0]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xdc], 0
test eax, eax
je 0x10060545
mov edx, eax
mov eax, dword [esp + 0xe0]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
test ebx, ebx
je 0x10060569
mov edx, dword [ebx + 8]
mov edi, dword [ebx]
test edx, edx
je 0x10060559
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
mov ecx, dword [esp + 0x3f0c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1018e0ca
add esp, 0x3f04
ret 0x18