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

Disassembly:
mov eax, 0x3f04
call fcn.101b5a80
mov eax, dword [0x102220c0]
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.101b69d0
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.101b69d0
mov eax, dword [esp + 0x8c]
add esp, 0xc
mov dword [esp + 0x138], esi
mov dword [esp + 0x13c], eax
movaps xmm0, xmmword [0x10214720]
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.101b69d0
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.101b69d0
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.101b69d0
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 0x1005c525
test esi, esi
jmp 0x1005c529
mov esi, ebx
test ebx, ebx
jns 0x1005c52d
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 0x1005c59c
mov eax, dword [ecx + 0x214]
mov esi, dword [eax + 0x614]
jmp 0x1005c5a1
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 0x100615ca
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 0x100615ba
je 0x1005c6e3
cmp esi, 0xfffffff
jg 0x100615ba
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 0x1005c63f
mov edx, dword [esp + 0x74]
test edx, edx
jle 0x1005c63f
lea eax, [edx*8]
push eax
push 0
push esi
call fcn.101b69d0
lea edi, [ebx + 8]
add esp, 0xc
mov dword [edi], esi
mov eax, esi
mov dword [esp + 0x1c], edi
jmp 0x1005c654
mov dword [ebx + 8], eax
lea edx, [ebx + 8]
mov dword [esp + 0x1c], edx
test ecx, ecx
jne 0x100615c1
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.10058b00
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 0x100610ef
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 0x1005c701
lea edi, [ebx + 8]
xor eax, eax
mov dword [esp + 0x1c], edi
mov dword [edi], eax
jmp 0x1005c658
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
jmp 0x1005c701
mov edi, dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
cmp eax, dword [edx + 8]
jb 0x1005c71e
test ecx, ecx
mov edx, 0xb
mov eax, 0xe
cmove edx, eax
mov dword [esp + 0x28], edx
jmp 0x1005c74d
mov cl, byte [eax]
inc eax
mov dword [edx + 0xc], eax
mov dl, cl
mov dword [esp + 0x28], edx
cmp cl, 0xb
je 0x1005c734
cmp cl, 0xe
jne 0x1005c749
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 0x1005c7f7
test ah, ah
jne 0x1005c79a
cmp dl, 1
je 0x1005c79a
cmp dl, 3
je 0x1005c79a
cmp dl, 0xd
je 0x1005c79a
cmp dl, 0xa
je 0x1005c79a
cmp dl, 0xb
je 0x1005c79a
cmp dl, 0xc
je 0x1005c79a
cmp dl, 0xe
je 0x1005c79a
cmp dl, 0x20
jae 0x1005c79a
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov dword [ebx + 0xc], eax
jmp 0x1005c701
cmp dword [esp + 0x5c], 0
mov edi, dword [esp + 0x1c]
jle 0x1005c7d0
cmp dl, 0xa
je 0x1005c7d0
cmp dl, 0xb
je 0x1005c7d0
cmp dl, 0xc
je 0x1005c7d0
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 0x1005c7f7
cmp dl, 0x20
jae 0x1005c7f7
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 0x100610ef
sub dword [esp + 0x7c], 1
je 0x10060fa0
movzx edx, dl
cmp edx, 0x1f
ja case.default.0x1005c81f
jmp dword [edx*4 + 0x10061704]
mov edx, dword [esp + 0x40]
cmp byte [edx + 9], 0
je case.0x1005c81f.0
cmp byte [edx + 0x5d], 0
jne 0x10060fa0
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005c866
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c853
cmp dword [eax], 0
jne 0x1005c853
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 0x1005c701
cmp dword [eax - 4], 2
je 0x1005c891
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c87e
cmp dword [eax], 0
jne 0x1005c87e
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 0x1005c701
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
test eax, eax
js case.0x1005c81f.0
mov dword [edx + 0x78], eax
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov dword [ebx + 0xc], eax
jmp 0x1005c701
mov edx, dword [esp + 0x40]
cmp byte [edx + 9], 0
je case.0x1005c81f.0
cmp dword [edx + 0x60], 0
je 0x10060fa0
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 0x1005c90b
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 0x100610ef
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005c928
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x1005c924
cmp dword [ecx], 0
jne 0x1005c924
mov dword [ecx], 0xa1
xor eax, eax
jmp 0x1005c94c
cmp dword [eax - 4], 2
je 0x1005c944
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005c940
cmp dword [eax], 0
jne 0x1005c940
mov dword [eax], 0xa0
xor eax, eax
jmp 0x1005c94c
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
cmp eax, dword [esp + 0x74]
ja 0x10060fa0
push eax
mov edx, ebx
mov ecx, esi
call fcn.1005bf40
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 0x1005c701
test al, al
jne 0x1005c98e
cmp byte [esp + 0x104], al
jne case.0x1005c81f.0
xor eax, eax
jmp 0x1005c998
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.1005ba10
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x224], 0
jne 0x100610ef
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1005c701
test al, al
jne 0x1005c9fa
cmp byte [esp + 0x104], al
jne case.0x1005c81f.0
xor eax, eax
push eax
lea eax, [esp + 0x2b]
push eax
lea eax, [esp + 0xa8]
jmp 0x1005c9a5
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 0x1005c9a5
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi]
sub eax, ecx
sar eax, 3
cmp eax, 1
jbe 0x1005ca5b
cmp byte [esp + 0x27], 0
jne 0x1005ca5b
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1005ca3c
sub eax, 1
jne 0x1005ca4c
shl ecx, 0x10
jmp 0x1005ca4c
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 0x100610ef
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005ca9e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ca8a
cmp dword [eax], 0
jne 0x1005ca8a
mov dword [eax], 0xa1
xor ecx, ecx
add esi, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x3f28], esi
jmp 0x1005fdcd
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005cac8
sub eax, 1
jne 0x1005cad8
shl ecx, 0x10
add esi, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x3f28], esi
jmp 0x1005fdcd
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 0x1005fdcd
mov ebp, dword [ebx + 0xc]
sub ebp, dword [edi]
xor edi, edi
sar ebp, 3
test ebp, ebp
je 0x1005cbdc
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 0x1005cb2f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cb2b
cmp dword [eax], 0
jne 0x1005cb2b
mov dword [eax], 0x82
mov ecx, dword [ebx + 0xc]
mov edx, dword [esi]
xor esi, esi
jmp 0x1005cb55
mov eax, dword [edx + edi*8 + 4]
mov esi, dword [edx + edi*8]
sub eax, 1
je 0x1005cb45
sub eax, 1
jne 0x1005cb55
shl esi, 0x10
jmp 0x1005cb55
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 0x1005cb88
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cb84
cmp dword [eax], 0
jne 0x1005cb84
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005cbaf
mov eax, dword [edx + edi*8 + 0xc]
mov ecx, dword [edx + edi*8 + 8]
sub eax, 1
je 0x1005cb9f
sub eax, 1
jne 0x1005cbaf
shl ecx, 0x10
jmp 0x1005cbaf
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.1005b590
add edi, 2
cmp edi, ebp
jb 0x1005cb00
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 0x1005c701
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 0x100606fe
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x1005cc38
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cc34
cmp dword [eax], 0
jne 0x1005cc34
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005cc5e
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x1005cc4e
sub eax, 1
jne 0x1005cc5e
shl ecx, 0x10
jmp 0x1005cc5e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x18]
test dl, dl
je 0x1005cc71
add ebp, ecx
mov dword [esp + 0x3f24], ebp
jmp 0x1005cc7e
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.1005b590
mov dl, byte [esp + 0x3f]
inc esi
mov eax, dword [esp + 0x1c]
cmp esi, edi
jb 0x1005cc14
mov dword [esp + 0x20], ebp
jmp 0x100606fe
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 0x1005cf3c
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 0x1005ccff
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ccfb
cmp dword [eax], 0
jne 0x1005ccfb
mov dword [eax], 0x82
mov esi, dword [ebx + 0xc]
mov edx, dword [ecx]
xor ecx, ecx
jmp 0x1005cd26
mov eax, dword [edx + edi*8 - 0xc]
mov ecx, dword [edx + edi*8 - 0x10]
sub eax, 1
je 0x1005cd16
sub eax, 1
jne 0x1005cd26
shl ecx, 0x10
jmp 0x1005cd26
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 0x1005cd5d
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cd59
cmp dword [eax], 0
jne 0x1005cd59
mov edx, dword [esp + 0x1c]
mov dword [eax], 0x82
mov esi, dword [ebx + 0xc]
mov edx, dword [edx]
xor ecx, ecx
jmp 0x1005cd84
mov eax, dword [edx + edi*8 - 4]
mov ecx, dword [edx + edi*8 - 8]
sub eax, 1
je 0x1005cd74
sub eax, 1
jne 0x1005cd84
shl ecx, 0x10
jmp 0x1005cd84
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 0x1005cdb8
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cdb4
cmp dword [eax], 0
jne 0x1005cdb4
mov dword [eax], 0x82
mov eax, dword [esp + 0x1c]
mov esi, dword [ebx + 0xc]
mov edx, dword [eax]
xor ecx, ecx
jmp 0x1005cdde
mov eax, dword [edx + edi*8 + 4]
mov ecx, dword [edx + edi*8]
sub eax, 1
je 0x1005cdce
sub eax, 1
jne 0x1005cdde
shl ecx, 0x10
jmp 0x1005cdde
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 0x1005ce15
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ce11
cmp dword [eax], 0
jne 0x1005ce11
mov dword [eax], 0x82
mov eax, dword [esp + 0x1c]
mov esi, dword [ebx + 0xc]
mov edx, dword [eax]
xor ecx, ecx
jmp 0x1005ce3c
mov eax, dword [edx + edi*8 + 0xc]
mov ecx, dword [edx + edi*8 + 8]
sub eax, 1
je 0x1005ce2c
sub eax, 1
jne 0x1005ce3c
shl ecx, 0x10
jmp 0x1005ce3c
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 0x1005ce6b
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ce67
cmp dword [eax], 0
jne 0x1005ce67
mov dword [eax], 0x82
mov eax, dword [esp + 0x1c]
mov esi, dword [ebx + 0xc]
mov edx, dword [eax]
xor ecx, ecx
jmp 0x1005ce92
mov eax, dword [edx + edi*8 + 0x14]
mov ecx, dword [edx + edi*8 + 0x10]
sub eax, 1
je 0x1005ce82
sub eax, 1
jne 0x1005ce92
shl ecx, 0x10
jmp 0x1005ce92
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 0x1005cebe
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ceba
cmp dword [eax], 0
jne 0x1005ceba
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005cee5
mov eax, dword [edx + edi*8 + 0x1c]
mov ecx, dword [edx + edi*8 + 0x18]
sub eax, 1
je 0x1005ced5
sub eax, 1
jne 0x1005cee5
shl ecx, 0x10
jmp 0x1005cee5
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.1005b710
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 0x1005ccd0
mov edi, dword [esp + 0x1c]
cmp byte [esp + 0x28], 0x18
jne 0x1005d028
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov esi, dword [edi]
sub eax, esi
sar eax, 3
cmp ebp, eax
jb 0x1005cf73
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cf6f
cmp dword [eax], 0
jne 0x1005cf6f
mov dword [eax], 0x82
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebx + 8]
xor edx, edx
jmp 0x1005cf99
mov eax, dword [esi + ebp*8 + 4]
mov edx, dword [esi + ebp*8]
sub eax, 1
je 0x1005cf89
sub eax, 1
jne 0x1005cf99
shl edx, 0x10
jmp 0x1005cf99
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 0x1005cfcc
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cfc8
cmp dword [eax], 0
jne 0x1005cfc8
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005cff2
mov ecx, dword [esi + eax*8]
mov eax, dword [esi + eax*8 + 4]
sub eax, 1
je 0x1005cfe2
sub eax, 1
jne 0x1005cff2
shl ecx, 0x10
jmp 0x1005cff2
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.1005b590
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1005c701
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 0x1005c701
test al, al
je case.0x1005c81f.0
cmp byte [esp + 0x2ec8], 0
je 0x1005d0cb
push dword [esp + 0x2f14]
mov edx, dword [esp + 0x2f14]
lea ecx, [esp + 0x13c]
mov byte [esp + 0x2ecd], 1
call fcn.1005b590
cmp byte [esp + 0x2f18], 0
je 0x1005d0ab
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.1005b000
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 0x1005c701
cmp ecx, 0x10
jg 0x10060fa0
lea eax, [ecx + 1]
cmp eax, dword [esp + 0x98]
jb 0x1005d10f
mov eax, dword [esp + 0x94]
test eax, eax
je 0x1005d10d
cmp dword [eax], 0
jne 0x1005d10d
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 0x1005d13e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d13a
cmp dword [eax], 0
jne 0x1005d13a
mov dword [eax], 0xa1
xor eax, eax
jmp 0x1005d162
cmp dword [eax - 4], 2
je 0x1005d15a
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d156
cmp dword [eax], 0
jne 0x1005d156
mov dword [eax], 0xa0
xor eax, eax
jmp 0x1005d162
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
mov ecx, dword [esp + 0x40]
cmp byte [ecx + 8], 0
je 0x1005d18f
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx + 0x268]
test ecx, ecx
je 0x1005d18f
push eax
call fcn.100483a0
mov edx, dword [esp + 0x10]
test eax, eax
je 0x1005d18c
mov eax, dword [eax]
jmp 0x1005d18f
or eax, 0xffffffff
cmp byte [esp + 0x28], 0x1d
xorps xmm0, xmm0
mov ecx, dword [esp + 0x2c]
movups xmmword [edx], xmm0
je 0x1005d258
mov ecx, dword [ecx + 0x234]
add ecx, eax
mov eax, dword [esp + 0x2c]
cmp ecx, dword [eax + 0x22c]
jae 0x10060fa0
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 0x1005d226
mov eax, dword [eax + 0x264]
test eax, eax
je 0x1005d1fe
test ecx, ecx
je 0x1005d1f6
mov eax, dword [eax + edx]
add eax, ecx
mov ecx, dword [esp + 0x10]
jmp 0x1005d234
mov ecx, dword [esp + 0x10]
xor eax, eax
jmp 0x1005d234
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 0x1005d22a
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 0x1005c701
mov ecx, dword [ecx + 0x238]
add ecx, eax
mov eax, dword [esp + 0x2c]
cmp ecx, dword [eax + 0x230]
jae 0x10060fa0
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 0x1005c701
cmp ecx, 1
jl 0x10060fa0
dec ecx
mov eax, ecx
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x98]
jb 0x1005d2cf
mov eax, dword [esp + 0x94]
test eax, eax
je 0x1005d2cd
cmp dword [eax], 0
jne 0x1005d2cd
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 0x1005c701
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
cmp eax, dword [edx + 8]
jae 0x1005d2fa
mov cl, byte [eax]
inc eax
mov dword [edx + 0xc], eax
jmp 0x1005d30d
mov eax, dword [edx]
test eax, eax
je 0x1005d30b
cmp dword [eax], 0
jne 0x1005d30b
mov dword [eax], 0x55
xor cl, cl
movzx eax, cl
add eax, 0xfffffff8
mov byte [esp + 0x3f], cl
cmp eax, 0x1d
ja case.0x1005d327.9
movzx eax, byte [eax + 0x1006179c]
jmp dword [eax*4 + 0x10061784]
push 0
push 0x101f4228
jmp 0x1005d394
push 0
push 0x101f40cc
lea eax, [esp + 0x140]
mov ecx, ebx
push eax
lea eax, [esp + 0x3f34]
push eax
lea edx, [esp + 0x3f34]
call fcn.1005bc40
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 0x1005c701
push 0
push 0x101f4254
jmp 0x1005d394
push 1
push 0x101f43ec
lea eax, [esp + 0x140]
mov ecx, ebx
push eax
lea eax, [esp + 0x3f34]
push eax
lea edx, [esp + 0x3f34]
call fcn.1005bc40
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 0x1005c701
mov eax, dword [esp + 0x40]
cmp byte [eax + 9], 0
jne case.0x1005d421.0
cmp cl, 0x26
jae case.0x1005d421.0
mov al, byte [eax + 8]
test al, al
je 0x1005d415
cmp dword [esp + 0x5c], 0
jle 0x1005d415
cmp cl, 0x11
je 0x1005d415
mov eax, dword [edi]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x5c], 0
mov dword [ebx + 0xc], eax
jmp 0x1005c701
movzx ecx, cl
cmp ecx, 0x21
ja case.0x1005d421.0
jmp dword [ecx*4 + 0x100617bc]
test al, al
je case.0x1005d421.0
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi]
sub eax, ecx
sar eax, 3
test eax, eax
jne 0x1005d454
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d450
cmp dword [eax], 0
jne 0x1005d450
mov dword [eax], 0x82
xor esi, esi
jmp 0x1005d478
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
sub eax, 1
je 0x1005d468
sub eax, 1
jne 0x1005d478
shl esi, 0x10
jmp 0x1005d478
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 0x1005d49d
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d499
cmp dword [eax], 0
jne 0x1005d499
mov dword [eax], 0x82
xor edi, edi
jmp 0x1005d4c2
mov eax, dword [ecx + 0x14]
mov edi, dword [ecx + 0x10]
sub eax, 1
je 0x1005d4b2
sub eax, 1
jne 0x1005d4c2
shl edi, 0x10
jmp 0x1005d4c2
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 0x1005d4ec
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d4e8
cmp dword [eax], 0
jne 0x1005d4e8
mov dword [eax], 0x82
xor edx, edx
jmp 0x1005d511
mov eax, dword [ecx + 0x24]
mov edx, dword [ecx + 0x20]
sub eax, 1
je 0x1005d501
sub eax, 1
jne 0x1005d511
shl edx, 0x10
jmp 0x1005d511
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 0x1005d537
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d533
cmp dword [eax], 0
jne 0x1005d533
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005d55c
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub eax, 1
je 0x1005d54c
sub eax, 1
jne 0x1005d55c
shl ecx, 0x10
jmp 0x1005d55c
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 0x1005d583
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d599
cmp dword [eax], 0
jne 0x1005d599
mov dword [eax], 0x82
jmp 0x1005d599
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 0x1005d5c2
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d5be
cmp dword [eax], 0
jne 0x1005d5be
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005d5e7
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
sub eax, 1
je 0x1005d5d7
sub eax, 1
jne 0x1005d5e7
shl ecx, 0x10
jmp 0x1005d5e7
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 0x1005d60e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d622
cmp dword [eax], 0
jne 0x1005d622
mov dword [eax], 0x82
jmp 0x1005d622
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 0x1005d634
mov eax, dword [eax]
jmp 0x1005d637
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.1005ba10
cmp byte [ebp + 0x224], 0
jne 0x100610ef
mov ebp, dword [esp + 0x20]
jmp 0x1005fecb
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005d691
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d68d
cmp dword [eax], 0
jne 0x1005d68d
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005d6bb
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005d6ab
sub eax, 1
jne 0x1005d6bb
shl edx, 0x10
jmp 0x1005d6bb
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 0x1005d718
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d6d4
cmp dword [eax], 0
jne 0x1005d6d4
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 0x10060c3a
mov eax, dword [ebx + 4]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x1005c701
cmp dword [eax], 0
jne 0x1005c701
mov dword [eax], 0x82
mov esi, dword [esp + 0x18]
jmp 0x1005c701
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005d732
sub eax, 1
jne 0x1005d742
shl ecx, 0x10
jmp 0x1005d742
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test ecx, ecx
je 0x1005d6d4
test edx, edx
je 0x1005d6d4
mov edx, 1
jmp 0x1005d6d6
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005d76e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d76a
cmp dword [eax], 0
jne 0x1005d76a
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005d798
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005d788
sub eax, 1
jne 0x1005d798
shl edx, 0x10
jmp 0x1005d798
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 0x1005d7b3
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d7e5
cmp dword [eax], 0
jne 0x1005d7e5
mov dword [eax], 0xa1
jmp 0x1005d7e5
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005d7cd
sub eax, 1
jne 0x1005d7dd
shl ecx, 0x10
jmp 0x1005d7dd
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test ecx, ecx
jne 0x1005d74a
test edx, edx
jne 0x1005d74a
jmp 0x1005d6d4
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005d80f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d80b
cmp dword [eax], 0
jne 0x1005d80b
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005d839
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005d829
sub eax, 1
jne 0x1005d839
shl edx, 0x10
jmp 0x1005d839
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 0x1005d6e9
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 0x1005c701
test al, al
je case.0x1005d421.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 0x10060e50
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d8a5
cmp dword [eax], 0
jne 0x1005d8a5
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10060e74
test al, al
je case.0x1005d421.0
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005d8d1
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d8cd
cmp dword [eax], 0
jne 0x1005d8cd
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005d8fb
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1005d8eb
sub eax, 1
jne 0x1005d8fb
shl ecx, 0x10
jmp 0x1005d8fb
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 0x1005d922
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d91e
cmp dword [eax], 0
jne 0x1005d91e
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005d94c
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005d93c
sub eax, 1
jne 0x1005d94c
shl ecx, 0x10
jmp 0x1005d94c
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 0x1005d96e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d96a
cmp dword [eax], 0
jne 0x1005d96a
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005d998
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005d988
sub eax, 1
jne 0x1005d998
shl edx, 0x10
jmp 0x1005d998
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 0x1005d9b5
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d9b1
cmp dword [eax], 0
jne 0x1005d9b1
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005d9df
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005d9cf
sub eax, 1
jne 0x1005d9df
shl ecx, 0x10
jmp 0x1005d9df
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 0x100610ef
cmp byte [esp + 0x33], 0
mov esi, dword [esp + 0x18]
je 0x1005fed3
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 0x1005c701
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005dab3
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005da51
cmp dword [eax], 0
jne 0x1005da51
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 0x1005de66
mov esi, dword [esp + 0x18]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x1005c701
cmp dword [eax], 0
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
jne 0x1005c701
mov dword [eax], 0x82
jmp 0x1005c701
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1005dacd
sub eax, 1
jne 0x1005dadd
shl ecx, 0x10
jmp 0x1005dadd
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 0x1005da5c
lea eax, [edi*8]
mov edi, dword [esp + 0x1c]
add eax, ebp
mov ebp, dword [esp + 0x20]
cmp esi, eax
jne 0x1005db2e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f6ec
cmp dword [eax], 0
jne 0x1005f6ec
mov dword [eax], 0x82
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jmp 0x1005c701
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 0x1005c701
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1005db6c
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005db68
cmp dword [eax], 0
jne 0x1005db68
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005db96
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005db86
sub eax, 1
jne 0x1005db96
shl esi, 0x10
jmp 0x1005db96
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 0x1005dbb3
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dbaf
cmp dword [eax], 0
jne 0x1005dbaf
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005dbdd
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005dbcd
sub eax, 1
jne 0x1005dbdd
shl edx, 0x10
jmp 0x1005dbdd
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 0x1005dc1f
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 0x1005c701
cmp dword [eax], 0
jne 0x1005c701
mov dword [eax], 0x82
jmp 0x1005c701
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 0x1005c701
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1005dc64
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dc60
cmp dword [eax], 0
jne 0x1005dc60
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005dc8e
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005dc7e
sub eax, 1
jne 0x1005dc8e
shl esi, 0x10
jmp 0x1005dc8e
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 0x1005dcab
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dca7
cmp dword [eax], 0
jne 0x1005dca7
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005dcd5
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005dcc5
sub eax, 1
jne 0x1005dcd5
shl edx, 0x10
jmp 0x1005dcd5
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 0x1005dbf0
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 0x1005c701
test al, al
je 0x1005ddc0
cmp byte [esp + 0x58], 0
je 0x1005ddc0
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005dd43
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dd3f
cmp dword [eax], 0
jne 0x1005dd3f
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005dd67
cmp dword [eax - 4], 2
je 0x1005dd5f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dd5b
cmp dword [eax], 0
jne 0x1005dd5b
mov dword [eax], 0xa0
xor edx, edx
jmp 0x1005dd67
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005dd8b
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dd80
cmp dword [eax], 0
jne 0x1005dd80
mov dword [eax], 0xa1
xor ecx, ecx
mov byte [esp + 0x58], cl
jmp 0x1005de4e
cmp dword [eax - 4], 2
je 0x1005ddae
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dda3
cmp dword [eax], 0
jne 0x1005dda3
mov dword [eax], 0xa0
xor ecx, ecx
mov byte [esp + 0x58], cl
jmp 0x1005de4e
add eax, 0xfffffff8
mov byte [esp + 0x58], 0
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
jmp 0x1005de4e
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005dddd
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ddd9
cmp dword [eax], 0
jne 0x1005ddd9
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005de07
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005ddf7
sub eax, 1
jne 0x1005de07
shl edx, 0x10
jmp 0x1005de07
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 0x1005de24
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005de20
cmp dword [eax], 0
jne 0x1005de20
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005de4e
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005de3e
sub eax, 1
jne 0x1005de4e
shl ecx, 0x10
jmp 0x1005de4e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.100474a0
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov esi, dword [ebx + 0xc]
lea ecx, [ecx + edx*8]
cmp esi, ecx
je 0x1005d6e9
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 0x1005c701
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005ded9
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dea0
cmp dword [eax], 0
jne 0x1005dea0
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 0x1005d6e9
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 0x1005c701
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1005def3
sub eax, 1
jne 0x1005df03
shl ecx, 0x10
jmp 0x1005df03
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 0x1005deab
lea eax, [esi + eax*8]
cmp edx, eax
jne 0x1005df46
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f6e8
cmp dword [eax], 0
jne 0x1005f6e8
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
mov esi, dword [esp + 0x18]
jmp 0x1005c701
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 0x1005c701
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1005df88
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005df84
cmp dword [eax], 0
jne 0x1005df84
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005dfb2
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005dfa2
sub eax, 1
jne 0x1005dfb2
shl esi, 0x10
jmp 0x1005dfb2
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 0x1005dfcf
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dfcb
cmp dword [eax], 0
jne 0x1005dfcb
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005dff9
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005dfe9
sub eax, 1
jne 0x1005dff9
shl edx, 0x10
jmp 0x1005dff9
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 0x1005dbf0
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 0x1005c701
mov ecx, dword [esp + 0x14]
test al, al
je 0x1005c701
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005e065
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e061
cmp dword [eax], 0
jne 0x1005e061
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005e089
cmp dword [eax - 4], 2
je 0x1005e081
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e07d
cmp dword [eax], 0
jne 0x1005e07d
mov dword [eax], 0xa0
xor esi, esi
jmp 0x1005e089
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005e0a6
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e0a2
cmp dword [eax], 0
jne 0x1005e0a2
mov dword [eax], 0xa1
xor edi, edi
jmp 0x1005e0ca
cmp dword [eax - 4], 2
je 0x1005e0c2
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e0be
cmp dword [eax], 0
jne 0x1005e0be
mov dword [eax], 0xa0
xor edi, edi
jmp 0x1005e0ca
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.0x1005e104
movzx eax, byte [esi + 0x10061884]
jmp dword [eax*4 + 0x10061844]
cmp edi, 3
jne 0x10060fa0
cmp byte [esp + 0x33], 0
je 0x1005e139
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0x1d4], 0
je 0x10060fa0
cmp dword [eax + 0x1d8], 7
jne 0x10060fa0
mov eax, dword [ebx + 0x10]
mov ebp, dword [esp + 0x20]
lea eax, [edx + eax*8]
cmp ecx, eax
jne 0x1005e15b
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e16b
cmp dword [eax], 0
jne 0x1005e16b
mov dword [eax], 0x82
jmp 0x1005e16b
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 0x1005e1a9
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e1b9
cmp dword [eax], 0
jne 0x1005e1b9
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
mov dword [esp + 0x54], 2
jmp 0x1005c701
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 0x1005c701
test edi, edi
jne 0x10060fa0
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 0x1005c701
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 0x1005e224
push 0
mov edx, 6
mov ecx, esi
call fcn.10047ba0
test eax, eax
jne 0x100610ef
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 0x1005c701
test edi, edi
jne 0x10060fa0
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 0x1005c701
mov ecx, dword [esp + 0x2c]
cmp dword [ecx + 0x1d4], 0
je 0x10060fa0
mov esi, dword [ecx + 0x1d8]
lea eax, [esi + 1]
mov dword [ecx + 0x1d8], eax
lea eax, [esi - 1]
cmp eax, 5
ja 0x1005f6e0
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 0x1005e2d1
push 0
mov edx, 1
mov ecx, edi
call fcn.10047ba0
test eax, eax
jne 0x10060fa0
lea eax, [esi - 3]
cmp esi, 3
jg 0x1005e2db
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 0x1005e301
cmp esi, 6
jne 0x1005f6e4
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.1005b710
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
jmp 0x1005c701
cmp edi, 1
jne 0x10060fa0
cmp byte [esp + 0x33], 0
je 0x1005e3ac
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 0x1005c701
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 0x1005c701
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x284]
mov dword [esp + 0x28], ecx
test ecx, ecx
je 0x10060fa0
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 0x10060fa0
lea edi, [edx + ebp]
test edx, edx
je 0x1005e55e
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 0x1005e458
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e454
cmp dword [eax], 0
jne 0x1005e454
mov dword [eax], 0x82
xor esi, esi
jmp 0x1005e47e
mov eax, dword [esi + ebp*8 + 4]
mov esi, dword [esi + ebp*8]
sub eax, 1
je 0x1005e46e
sub eax, 1
jne 0x1005e47e
shl esi, 0x10
jmp 0x1005e47e
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
cmp dword [ecx], 1
jbe 0x1005e511
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 0x1005e4bc
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e4b8
cmp dword [eax], 0
jne 0x1005e4b8
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005e4e2
mov eax, dword [edx + edi*8 + 4]
mov ecx, dword [edx + edi*8]
sub eax, 1
je 0x1005e4d2
sub eax, 1
jne 0x1005e4e2
shl ecx, 0x10
jmp 0x1005e4e2
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.1003ecb0
mov ecx, dword [esp + 0x28]
inc ebp
add dword [esp + 0x38], 4
add esi, eax
inc edi
cmp ebp, dword [ecx]
jb 0x1005e494
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 0x1005e537
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e548
cmp dword [eax], 0
jne 0x1005e548
mov dword [eax], 0x82
jmp 0x1005e548
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 0x1005e430
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 0x1005e59f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e5ab
cmp dword [eax], 0
jne 0x1005e5ab
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 0x1005c701
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 0x1005c701
mov ebp, dword [esp + 0x2c]
mov esi, dword [ebp + 0x284]
cmp edi, 1
jne 0x10060fa0
test esi, esi
je 0x10060fa0
cmp ecx, edx
jne 0x1005e5f5
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e5f1
cmp dword [eax], 0
jne 0x1005e5f1
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005e621
cmp dword [ecx - 4], 2
je 0x1005e611
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e60d
cmp dword [eax], 0
jne 0x1005e60d
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x1005e621
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
test ecx, ecx
js 0x10060fa0
mov edx, dword [esi]
lea eax, [edx + ecx]
cmp eax, dword [ebp + 0x28c]
ja 0x10060fa0
lea eax, [edx*4]
push eax
mov eax, dword [ebp + 0x288]
push dword [esi + 0x88]
lea eax, [eax + ecx*4]
push eax
call fcn.101b6450
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 0x1005c701
cmp edi, 2
jne 0x10060fa0
cmp ecx, edx
jne 0x1005e68e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e68a
cmp dword [eax], 0
jne 0x1005e68a
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005e6b8
lea esi, [ecx - 8]
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005e6a8
sub eax, 1
jne 0x1005e6b8
shl esi, 0x10
jmp 0x1005e6b8
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 0x1005e6da
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e6d6
cmp dword [eax], 0
jne 0x1005e6d6
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005e704
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005e6f4
sub eax, 1
jne 0x1005e704
shl edx, 0x10
jmp 0x1005e704
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 0x1005e747
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e75a
cmp dword [eax], 0
jne 0x1005e75a
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 0x1005c701
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 0x1005c701
cmp edi, 2
jne 0x10060fa0
cmp ecx, edx
jne 0x1005e79e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e79a
cmp dword [eax], 0
jne 0x1005e79a
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005e7c8
lea esi, [ecx - 8]
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005e7b8
sub eax, 1
jne 0x1005e7c8
shl esi, 0x10
jmp 0x1005e7c8
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 0x1005e7ea
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e7e6
cmp dword [eax], 0
jne 0x1005e7e6
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005e814
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005e804
sub eax, 1
jne 0x1005e814
shl edx, 0x10
jmp 0x1005e814
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 0x1005e843
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e75a
cmp dword [eax], 0
jne 0x1005e75a
mov dword [eax], 0x82
jmp 0x1005e75a
sub edx, esi
mov dword [edi], edx
jmp 0x1005e74c
cmp edi, 2
jne 0x10060fa0
cmp ecx, edx
jne 0x1005e86f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e86b
cmp dword [eax], 0
jne 0x1005e86b
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005e899
lea edx, [ecx - 8]
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005e889
sub eax, 1
jne 0x1005e899
shl edx, 0x10
jmp 0x1005e899
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 0x1005e8ba
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e8b6
cmp dword [eax], 0
jne 0x1005e8b6
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005e8e4
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005e8d4
sub eax, 1
jne 0x1005e8e4
shl ecx, 0x10
jmp 0x1005e8e4
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.1003ecb0
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov esi, dword [ebx + 0xc]
lea ecx, [ecx + edx*8]
cmp esi, ecx
jne 0x1005e927
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e937
cmp dword [eax], 0
jne 0x1005e937
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 0x1005c701
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 0x1005c701
cmp edi, 2
jne 0x10060fa0
cmp ecx, edx
jne 0x1005e977
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e973
cmp dword [eax], 0
jne 0x1005e973
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005e9a1
lea edx, [ecx - 8]
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005e991
sub eax, 1
jne 0x1005e9a1
shl edx, 0x10
jmp 0x1005e9a1
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 0x1005e9c2
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e9be
cmp dword [eax], 0
jne 0x1005e9be
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005e9ec
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005e9dc
sub eax, 1
jne 0x1005e9ec
shl ecx, 0x10
jmp 0x1005e9ec
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test edx, edx
je 0x10060fa0
call fcn.100474a0
jmp 0x1005e8e9
cmp edi, 2
jne 0x10060fa0
mov ebp, dword [esp + 0x2c]
cmp dword [ebp + 0x284], 0
je 0x10060fa0
cmp ecx, edx
jne 0x1005ea32
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ea2e
cmp dword [eax], 0
jne 0x1005ea2e
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005ea5e
cmp dword [ecx - 4], 2
je 0x1005ea4e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ea4a
cmp dword [eax], 0
jne 0x1005ea4a
mov dword [eax], 0xa0
xor edx, edx
jmp 0x1005ea5e
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
test edx, edx
js 0x10060fa0
cmp edx, dword [ebp + 0x28c]
jae 0x10060fa0
mov edi, dword [esp + 0x1c]
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1005eaa7
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ea87
cmp dword [eax], 0
jne 0x1005ea87
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 0x1005c701
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005eadd
sub eax, 1
jne 0x1005eaed
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 0x1005c701
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 0x1005c701
cmp edi, 1
jne 0x10060fa0
mov ebp, dword [esp + 0x2c]
cmp dword [ebp + 0x284], 0
je 0x10060fa0
cmp ecx, edx
jne 0x1005eb3f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005eb3b
cmp dword [eax], 0
jne 0x1005eb3b
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005eb6b
cmp dword [ecx - 4], 2
je 0x1005eb5b
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005eb57
cmp dword [eax], 0
jne 0x1005eb57
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x1005eb6b
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
test ecx, ecx
js 0x10060fa0
cmp ecx, dword [ebp + 0x28c]
jae 0x10060fa0
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 0x1005e8f8
mov dword [edx], esi
jmp 0x1005e929
cmp edi, 4
jne 0x10060fa0
cmp ecx, edx
jne 0x1005ebc1
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ebbd
cmp dword [eax], 0
jne 0x1005ebbd
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x1005ebeb
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebp, dword [ecx]
sub eax, 1
je 0x1005ebdb
sub eax, 1
jne 0x1005ebeb
shl ebp, 0x10
jmp 0x1005ebeb
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 0x1005ec0c
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ec08
cmp dword [eax], 0
jne 0x1005ec08
mov dword [eax], 0xa1
xor edi, edi
jmp 0x1005ec36
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1005ec26
sub eax, 1
jne 0x1005ec36
shl edi, 0x10
jmp 0x1005ec36
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 0x1005ec53
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ec4f
cmp dword [eax], 0
jne 0x1005ec4f
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005ec7d
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005ec6d
sub eax, 1
jne 0x1005ec7d
shl edx, 0x10
jmp 0x1005ec7d
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 0x1005ec9a
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ec96
cmp dword [eax], 0
jne 0x1005ec96
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005ecc4
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
sub eax, 1
je 0x1005ecb4
sub eax, 1
jne 0x1005ecc4
shl esi, 0x10
jmp 0x1005ecc4
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 0x1005ecf6
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e75a
cmp dword [eax], 0
jne 0x1005e75a
mov dword [eax], 0x82
jmp 0x1005e75a
cmp edi, ebp
cmovle edx, esi
mov dword [ecx], edx
jmp 0x1005e74c
test edi, edi
jne 0x10060fa0
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 0x1005eb97
jmp 0x1005e8f8
mov eax, dword [esp + 0x1c]
test edi, edi
js 0x10060fa0
test esi, esi
js 0x10060fa0
cmp edi, 3
jle 0x1005ed79
mov edi, 3
mov dword [esp + 0x5c], edi
jmp 0x1005ed96
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 0x1005c6fd
lea esi, [esp + edi*4 + 0x3e5c]
nop dword [eax]
mov edx, dword [ebx + 0xc]
cmp edx, dword [eax]
jne 0x1005edbd
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005edb9
cmp dword [eax], 0
jne 0x1005edb9
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005ede7
lea eax, [edx - 8]
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [edx - 4]
sub eax, 1
je 0x1005edd7
sub eax, 1
jne 0x1005ede7
shl ecx, 0x10
jmp 0x1005ede7
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 0x1005eda0
mov ebp, dword [esp + 0x20]
mov edi, eax
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
jmp 0x1005c701
mov ecx, dword [esp + 0x14]
test al, al
je 0x1005c701
mov eax, dword [esp + 0x54]
test eax, eax
jle 0x1005ee2a
dec eax
mov dword [esp + 0x54], eax
jmp 0x1005c701
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x10060fa0
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 0x1005d6e9
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 0x1005c701
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005eea0
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x1005c701
cmp dword [eax], 0
jne 0x1005c701
mov dword [eax], 0xa1
jmp 0x1005c701
mov ecx, dword [esp + 0x14]
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
jmp 0x1005c701
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005eecc
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005eec8
cmp dword [eax], 0
jne 0x1005eec8
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005eef0
cmp dword [eax - 4], 2
je 0x1005eee8
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005eee4
cmp dword [eax], 0
jne 0x1005eee4
mov dword [eax], 0xa0
xor esi, esi
jmp 0x1005eef0
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005ef0d
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ef09
cmp dword [eax], 0
jne 0x1005ef09
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005ef37
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005ef27
sub eax, 1
jne 0x1005ef37
shl ecx, 0x10
jmp 0x1005ef37
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x10]
cmp esi, 0x1f
ja 0x1005db21
mov dword [esp + esi*4 + 0x3e88], ecx
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jmp 0x1005c701
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005ef7f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ef71
cmp dword [eax], 0
jne 0x1005ef71
mov dword [eax], 0xa1
xor eax, eax
mov esi, dword [esp + eax*4 + 0x3e88]
jmp 0x1005ee42
cmp dword [eax - 4], 2
je 0x1005efa5
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ef97
cmp dword [eax], 0
jne 0x1005ef97
mov dword [eax], 0xa0
xor eax, eax
mov esi, dword [esp + eax*4 + 0x3e88]
jmp 0x1005ee42
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
test eax, eax
js 0x1005f6ec
cmp eax, 0x20
jge 0x1005f6ec
mov esi, dword [esp + eax*4 + 0x3e88]
jmp 0x1005ee42
mov ebp, dword [ebx + 0xc]
cmp ebp, dword [edi]
jne 0x1005efe7
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005efe3
cmp dword [eax], 0
jne 0x1005efe3
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x1005f012
add ebp, 0xfffffff8
mov dword [ebx + 0xc], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
sub eax, 1
je 0x1005f002
sub eax, 1
jne 0x1005f012
shl ebp, 0x10
jmp 0x1005f012
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 0x1005f02f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f02b
cmp dword [eax], 0
jne 0x1005f02b
mov dword [eax], 0xa1
xor edi, edi
jmp 0x1005f059
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1005f049
sub eax, 1
jne 0x1005f059
shl edi, 0x10
jmp 0x1005f059
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 0x1005f07a
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f076
cmp dword [eax], 0
jne 0x1005f076
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005f0a4
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005f094
sub eax, 1
jne 0x1005f0a4
shl edx, 0x10
jmp 0x1005f0a4
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 0x1005f0c1
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f0bd
cmp dword [eax], 0
jne 0x1005f0bd
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005f0eb
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
sub eax, 1
je 0x1005f0db
sub eax, 1
jne 0x1005f0eb
shl esi, 0x10
jmp 0x1005f0eb
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 0x1005f10b
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
jmp 0x1005da7c
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 0x1005c701
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 0x1005ee55
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f6e8
cmp dword [eax], 0
jne 0x1005f6e8
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
mov esi, dword [esp + 0x18]
jmp 0x1005c701
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005f1c3
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f1bf
cmp dword [eax], 0
jne 0x1005f1bf
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005f1ed
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005f1dd
sub eax, 1
jne 0x1005f1ed
shl edx, 0x10
jmp 0x1005f1ed
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 0x1005f20a
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f206
cmp dword [eax], 0
jne 0x1005f206
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005f234
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005f224
sub eax, 1
jne 0x1005f234
shl ecx, 0x10
jmp 0x1005f234
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.1003ecb0
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov esi, dword [ebx + 0xc]
lea ecx, [ecx + edx*8]
cmp esi, ecx
jne 0x1005de66
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f6e8
cmp dword [eax], 0
jne 0x1005f6e8
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
mov esi, dword [esp + 0x18]
jmp 0x1005c701
mov ebp, dword [ebx + 0xc]
cmp ebp, dword [edi]
jne 0x1005f2b6
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f290
cmp dword [eax], 0
jne 0x1005f290
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 0x1005f31e
mov edi, dword [esp + 0x1c]
jmp 0x1005da80
add ebp, 0xfffffff8
mov dword [ebx + 0xc], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
sub eax, 1
je 0x1005f2d1
sub eax, 1
jne 0x1005f2e1
shl ebp, 0x10
jmp 0x1005f2e1
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
test ebp, ebp
jle 0x1005f290
mov eax, ebp
mov esi, ebp
sar eax, 1
mov ecx, ebp
cmp ebp, 0xa
cmovge esi, eax
mov edx, esi
call fcn.100474a0
lea edi, [esi + 1]
add edi, eax
sar edi, 1
cmp edi, esi
je 0x1005f292
mov edx, edi
mov ecx, ebp
mov esi, edi
call fcn.100474a0
inc edi
add edi, eax
sar edi, 1
cmp edi, esi
jne 0x1005f305
jmp 0x1005f292
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 0x1005c701
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005f35c
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f358
cmp dword [eax], 0
jne 0x1005f358
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005f386
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005f376
sub eax, 1
jne 0x1005f386
shl edx, 0x10
jmp 0x1005f386
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 0x1005f3a9
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f3b9
cmp dword [eax], 0
jne 0x1005f3b9
mov dword [eax], 0x82
jmp 0x1005f3b9
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 0x10060e2f
jmp 0x1005d6e9
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1005f3ee
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f3ea
cmp dword [eax], 0
jne 0x1005f3ea
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005f418
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005f408
sub eax, 1
jne 0x1005f418
shl esi, 0x10
jmp 0x1005f418
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 0x1005f435
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f431
cmp dword [eax], 0
jne 0x1005f431
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005f45f
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005f44f
sub eax, 1
jne 0x1005f45f
shl edx, 0x10
jmp 0x1005f45f
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 0x1005f486
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f496
cmp dword [eax], 0
jne 0x1005f496
mov dword [eax], 0x82
jmp 0x1005f496
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 0x10060e2f
jmp 0x1005d6e9
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005f4cf
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f4cb
cmp dword [eax], 0
jne 0x1005f4cb
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005f4f3
cmp dword [eax - 4], 2
je 0x1005f4eb
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f4e7
cmp dword [eax], 0
jne 0x1005f4e7
mov dword [eax], 0xa0
xor edx, edx
jmp 0x1005f4f3
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 0x1005c6f3
test edx, edx
jns 0x1005f512
lea ecx, [eax - 1]
jmp 0x1005f53a
cmp edx, eax
jb 0x1005f535
xor ecx, ecx
mov eax, dword [esi + ecx*8 + 4]
mov edx, dword [esi + ecx*8]
sub eax, 1
je 0x1005f557
sub eax, 1
jne 0x1005f3b9
shl edx, 0x10
jmp 0x1005f3b9
mov ecx, eax
sub ecx, edx
dec ecx
cmp ecx, eax
jb 0x1005f518
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f550
cmp dword [eax], 0
jne 0x1005f550
mov dword [eax], 0x82
xor edx, edx
jmp 0x1005f3b9
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
jmp 0x1005f3b9
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005f589
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f585
cmp dword [eax], 0
jne 0x1005f585
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005f5ad
cmp dword [eax - 4], 2
je 0x1005f5a5
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f5a1
cmp dword [eax], 0
jne 0x1005f5a1
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x1005f5ad
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005f5df
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f5c6
cmp dword [eax], 0
jne 0x1005f5c6
mov dword [eax], 0xa1
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 2
jmp 0x1005c701
cmp dword [eax - 4], 2
je 0x1005f610
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f5f7
cmp dword [eax], 0
jne 0x1005f5f7
mov dword [eax], 0xa0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 2
jmp 0x1005c701
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 0x1005f6e8
sub eax, dword [edi]
sar eax, 3
cmp edx, eax
jbe 0x1005f665
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f6e8
cmp dword [eax], 0
jne 0x1005f6e8
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
jmp 0x1005c701
test ecx, ecx
jns 0x1005f678
neg ecx
mov eax, ecx
mov ecx, dword [esp + 0x38]
cdq
idiv ecx
neg edx
jmp 0x1005f681
mov eax, ecx
mov ecx, dword [esp + 0x38]
cdq
idiv ecx
mov dword [esp + 0x44], edx
test edx, edx
je 0x1005f6e8
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 0x1005f6c9
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 0x1005f6f9
sub esi, ebx
sub edi, eax
jmp 0x1005f701
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 0x1005c701
test esi, esi
jns 0x1005f701
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 0x1005f6a2
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 0x1005c701
test al, al
je case.0x1005d421.0
cmp byte [esp + 0x33], 0
je case.0x1005d421.0
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005f789
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f785
cmp dword [eax], 0
jne 0x1005f785
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005f7b7
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 0x1005f7a7
sub eax, 1
jne 0x1005f7bb
shl esi, 0x10
jmp 0x1005f7b7
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 0x1005f7df
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f7db
cmp dword [eax], 0
jne 0x1005f7db
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x1005f80d
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 0x1005f7fd
sub eax, 1
jne 0x1005f811
shl ebp, 0x10
jmp 0x1005f80d
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 0x1005c701
mov eax, dword [esp + 0x40]
cmp byte [eax + 8], 0
je case.0x1005c81f.0
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005f85f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f85b
cmp dword [eax], 0
jne 0x1005f85b
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005f889
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1005f879
sub eax, 1
jne 0x1005f889
shl ecx, 0x10
jmp 0x1005f889
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 0x1005f8b9
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f8b5
cmp dword [eax], 0
jne 0x1005f8b5
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005f8e3
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005f8d3
sub eax, 1
jne 0x1005f8e3
shl ecx, 0x10
jmp 0x1005f8e3
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 0x100610ef
cmp byte [esp + 0x33], 0
mov edx, dword [esp + 0x10]
je case.0x1005d421.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 0x1005c701
mov edi, dword [esp + 0x40]
cmp byte [edi + 8], 0
je 0x1006129d
test ah, ah
jne 0x1006129d
cmp byte [esp + 0x2ec8], ah
je 0x1005f9b3
push dword [esp + 0x2f14]
mov edx, dword [esp + 0x2f14]
lea ecx, [esp + 0x13c]
mov byte [esp + 0x2ecd], 1
call fcn.1005b590
cmp byte [esp + 0x2f18], 0
je 0x1005f99b
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.1005b000
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 0x1005f9ee
cmp byte [eax + 5], 0
je 0x1005fa12
mov edx, dword [esp + 0x2ecc]
lea ecx, [esp + 0x140]
push 0
push dword [esp + 0x2edc]
push eax
push dword [esp + 0x2edc]
call fcn.1005a670
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 0x1005fad2
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 0x1005fab8
test ebx, ebx
je 0x1005fab6
cmp dword [ebx], 0
jne 0x1005fab6
mov dword [ebx], 0x82
xor ebp, ebp
imul ebp, edx
dec ecx
add ebp, esi
mov dword [esp + 0x10], ebp
test ecx, ecx
jg 0x1005faa0
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 0x1005c701
mov eax, dword [ebx + 0xc]
sub eax, dword [edi]
sar eax, 3
cmp eax, 1
jbe 0x1005fb09
cmp byte [esp + 0x104], 0
jne case.0x1005c81f.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.1005ba10
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x224], 0
jne 0x100610ef
cmp byte [esp + 0x28], 0x13
jne 0x1005fb6c
mov eax, dword [esp + 0xb4]
lea ecx, [esp + 0x100]
add eax, dword [esp + 0xd4]
mov edx, dword [esp + 0x10]
push eax
call fcn.1005b990
mov eax, dword [edi]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1005c701
push 0xf1c
lea eax, [esp + 0x2f44]
push 0
push eax
call fcn.101b69d0
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.1005b990
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.1005a670
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1005c701
mov eax, dword [ebx + 0xc]
mov edx, dword [edi]
sub eax, edx
sar eax, 3
cmp eax, 2
jbe 0x1005fc8e
cmp byte [esp + 0x27], 0
jne 0x1005fc8e
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005fc6f
sub eax, 1
jne 0x1005fc7f
shl ecx, 0x10
jmp 0x1005fc7f
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 0x100610ef
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005fcd1
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005fcbd
cmp dword [eax], 0
jne 0x1005fcbd
mov dword [eax], 0xa1
xor ecx, ecx
add esi, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x3f28], esi
jmp 0x1005fd79
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005fcfb
sub eax, 1
jne 0x1005fd0b
shl ecx, 0x10
add esi, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x3f28], esi
jmp 0x1005fd79
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 0x1005fd79
mov eax, dword [ebx + 0xc]
mov edx, dword [edi]
sub eax, edx
sar eax, 3
cmp eax, 1
jbe 0x1005fd63
cmp byte [esp + 0x27], 0
jne 0x1005fd63
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005fd44
sub eax, 1
jne 0x1005fd54
shl ecx, 0x10
jmp 0x1005fd54
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 0x100610ef
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005fd96
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005fd92
cmp dword [eax], 0
jne 0x1005fd92
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005fdc0
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005fdb0
sub eax, 1
jne 0x1005fdc0
shl ecx, 0x10
jmp 0x1005fdc0
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 0x1005fed3
cmp byte [esp + 0x2ec8], 0
je 0x1005fe57
push dword [esp + 0x2f14]
mov edx, dword [esp + 0x2f14]
lea ecx, [esp + 0x13c]
mov byte [esp + 0x2ecd], 1
call fcn.1005b590
cmp byte [esp + 0x2f18], 0
je 0x1005fe3f
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.1005b000
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 0x1005fe92
cmp byte [eax + 5], 0
je 0x1005feb6
mov edx, dword [esp + 0x2ecc]
lea ecx, [esp + 0x140]
push 0
push dword [esp + 0x2edc]
push eax
push dword [esp + 0x2edc]
call fcn.1005a670
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 0x1005c701
mov ebp, dword [ebx + 0xc]
xor esi, esi
sub ebp, dword [edi]
sar ebp, 3
mov dword [esp + 0x44], ebp
cmp ebp, 6
jbe 0x1005ffe1
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 0x1005ff28
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ff24
cmp dword [eax], 0
jne 0x1005ff24
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005ff4e
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x1005ff3e
sub eax, 1
jne 0x1005ff4e
shl ecx, 0x10
jmp 0x1005ff4e
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 0x1005ff86
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ff82
cmp dword [eax], 0
jne 0x1005ff82
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005ffad
mov eax, dword [edx + esi*8 + 0xc]
mov ecx, dword [edx + esi*8 + 8]
sub eax, 1
je 0x1005ff9d
sub eax, 1
jne 0x1005ffad
shl ecx, 0x10
jmp 0x1005ffad
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.1005b590
add edi, 2
add esi, 2
cmp edi, ebp
jb 0x1005ff00
mov edi, dword [esp + 0x1c]
cmp esi, ebp
mov ebp, dword [esp + 0x20]
jae 0x10060702
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 0x10060017
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060013
cmp dword [eax], 0
jne 0x10060013
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1006003e
mov eax, dword [edx + esi*8 - 0xc]
mov ecx, dword [edx + esi*8 - 0x10]
sub eax, 1
je 0x1006002e
sub eax, 1
jne 0x1006003e
shl ecx, 0x10
jmp 0x1006003e
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 0x1006006b
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060067
cmp dword [eax], 0
jne 0x10060067
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060092
mov eax, dword [edx + esi*8 - 4]
mov ecx, dword [edx + esi*8 - 8]
sub eax, 1
je 0x10060082
sub eax, 1
jne 0x10060092
shl ecx, 0x10
jmp 0x10060092
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 0x100600c4
mov eax, dword [ebx + 4]
test eax, eax
je 0x100600c0
cmp dword [eax], 0
jne 0x100600c0
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100600ea
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x100600da
sub eax, 1
jne 0x100600ea
shl ecx, 0x10
jmp 0x100600ea
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 0x10060113
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006010f
cmp dword [eax], 0
jne 0x1006010f
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1006013a
mov eax, dword [edx + esi*8 + 0xc]
mov ecx, dword [edx + esi*8 + 8]
sub eax, 1
je 0x1006012a
sub eax, 1
jne 0x1006013a
shl ecx, 0x10
jmp 0x1006013a
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 0x10060167
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060163
cmp dword [eax], 0
jne 0x10060163
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1006018e
mov eax, dword [edx + esi*8 + 0x14]
mov ecx, dword [edx + esi*8 + 0x10]
sub eax, 1
je 0x1006017e
sub eax, 1
jne 0x1006018e
shl ecx, 0x10
jmp 0x1006018e
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 0x100601c0
mov eax, dword [ebx + 4]
test eax, eax
je 0x100601bc
cmp dword [eax], 0
jne 0x100601bc
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100601e7
mov eax, dword [edx + esi*8 + 0x1c]
mov ecx, dword [edx + esi*8 + 0x18]
sub eax, 1
je 0x100601d7
sub eax, 1
jne 0x100601e7
shl ecx, 0x10
jmp 0x100601e7
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.1005b710
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 0x1005fff0
jmp 0x100606fe
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 0x10060702
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 0x100602d6
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x1006029f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006029b
cmp dword [eax], 0
jne 0x1006029b
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100602c5
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x100602b5
sub eax, 1
jne 0x100602c5
shl ecx, 0x10
jmp 0x100602c5
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 0x100602fe
mov eax, dword [ebx + 4]
test eax, eax
je 0x100602fa
cmp dword [eax], 0
jne 0x100602fa
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060324
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x10060314
sub eax, 1
jne 0x10060324
shl ecx, 0x10
jmp 0x10060324
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 0x10060352
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006034e
cmp dword [eax], 0
jne 0x1006034e
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060378
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x10060368
sub eax, 1
jne 0x10060378
shl ecx, 0x10
jmp 0x10060378
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 0x100603ab
mov eax, dword [ebx + 4]
test eax, eax
je 0x100603a7
cmp dword [eax], 0
jne 0x100603a7
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100603d1
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x100603c1
sub eax, 1
jne 0x100603d1
shl ecx, 0x10
jmp 0x100603d1
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 0x100603fe
mov eax, dword [ebx + 4]
test eax, eax
je 0x100603fa
cmp dword [eax], 0
jne 0x100603fa
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060433
mov eax, dword [esp + 0x28]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1006041c
sub eax, 1
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx + eax*8]
jne 0x10060433
shl ecx, 0x10
jmp 0x10060433
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.1005b710
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 0x10060270
jmp 0x100606fe
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 0x10060702
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 0x10060532
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x100604f5
mov eax, dword [ebx + 4]
test eax, eax
je 0x100604f1
cmp dword [eax], 0
jne 0x100604f1
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1006051b
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x1006050b
sub eax, 1
jne 0x1006051b
shl ecx, 0x10
jmp 0x1006051b
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 0x10060536
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 0x1006055e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006055a
cmp dword [eax], 0
jne 0x1006055a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060584
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x10060574
sub eax, 1
jne 0x10060584
shl ecx, 0x10
jmp 0x10060584
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 0x100605b2
mov eax, dword [ebx + 4]
test eax, eax
je 0x100605ae
cmp dword [eax], 0
jne 0x100605ae
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100605d8
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x100605c8
sub eax, 1
jne 0x100605d8
shl ecx, 0x10
jmp 0x100605d8
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 0x10060605
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060601
cmp dword [eax], 0
jne 0x10060601
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1006063a
mov eax, dword [esp + 0x34]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10060623
sub eax, 1
mov eax, dword [esp + 0x34]
mov ecx, dword [ecx + eax*8]
jne 0x1006063a
shl ecx, 0x10
jmp 0x1006063a
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 0x1006066b
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060667
cmp dword [eax], 0
jne 0x10060667
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100606a0
mov eax, dword [esp + 0x28]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10060689
sub eax, 1
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx + eax*8]
jne 0x100606a0
shl ecx, 0x10
jmp 0x100606a0
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.1005b710
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 0x100604c6
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 0x1005c701
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 0x10060bbc
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 0x10060977
cmp edi, eax
jb 0x10060793
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006078f
cmp dword [eax], 0
jne 0x1006078f
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100607b9
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x100607a9
sub eax, 1
jne 0x100607b9
shl ecx, 0x10
jmp 0x100607b9
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 0x100607ef
mov eax, dword [ebx + 4]
test eax, eax
je 0x100607eb
cmp dword [eax], 0
jne 0x100607eb
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060815
mov eax, dword [ecx + ebp*8 + 4]
mov ecx, dword [ecx + ebp*8]
sub eax, 1
je 0x10060805
sub eax, 1
jne 0x10060815
shl ecx, 0x10
jmp 0x10060815
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 0x10060844
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060840
cmp dword [eax], 0
jne 0x10060840
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1006086a
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x1006085a
sub eax, 1
jne 0x1006086a
shl ecx, 0x10
jmp 0x1006086a
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 0x1006089a
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060896
cmp dword [eax], 0
jne 0x10060896
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100608cf
mov eax, dword [esp + 0x34]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x100608b8
sub eax, 1
mov eax, dword [esp + 0x34]
mov ecx, dword [ecx + eax*8]
jne 0x100608cf
shl ecx, 0x10
jmp 0x100608cf
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 0x10060968
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 0x1006090f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006090b
cmp dword [eax], 0
jne 0x1006090b
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060944
mov eax, dword [esp + 0x28]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1006092d
sub eax, 1
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx + eax*8]
jne 0x10060944
shl ecx, 0x10
jmp 0x10060944
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 0x10060b62
xor al, al
mov dword [esp + 0x20], esi
mov byte [esp + 0x3f], al
jmp 0x10060b62
mov edx, dword [esp + 0x20]
mov dword [esp + 0x4c], edx
cmp edi, eax
jb 0x10060999
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060995
cmp dword [eax], 0
jne 0x10060995
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100609bf
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x100609af
sub eax, 1
jne 0x100609bf
shl ecx, 0x10
jmp 0x100609bf
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 0x100609ee
mov eax, dword [ebx + 4]
test eax, eax
je 0x100609ea
cmp dword [eax], 0
jne 0x100609ea
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060a14
mov eax, dword [ecx + ebp*8 + 4]
mov ecx, dword [ecx + ebp*8]
sub eax, 1
je 0x10060a04
sub eax, 1
jne 0x10060a14
shl ecx, 0x10
jmp 0x10060a14
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 0x10060a43
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060a3f
cmp dword [eax], 0
jne 0x10060a3f
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060a69
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x10060a59
sub eax, 1
jne 0x10060a69
shl ecx, 0x10
jmp 0x10060a69
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 0x10060a99
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060a95
cmp dword [eax], 0
jne 0x10060a95
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060ace
mov eax, dword [esp + 0x34]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10060ab7
sub eax, 1
mov eax, dword [esp + 0x34]
mov ecx, dword [ecx + eax*8]
jne 0x10060ace
shl ecx, 0x10
jmp 0x10060ace
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 0x10060b59
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 0x10060b0e
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060b0a
cmp dword [eax], 0
jne 0x10060b0a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060b43
mov eax, dword [esp + 0x28]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10060b2c
sub eax, 1
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx + eax*8]
jne 0x10060b43
shl ecx, 0x10
jmp 0x10060b43
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 0x10060b5d
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.1005b710
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 0x10060760
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 0x1005c701
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x10060be9
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx edx, cl
jmp 0x10060bfc
mov eax, dword [esi]
test eax, eax
je 0x10060bfa
cmp dword [eax], 0
jne 0x10060bfa
mov dword [eax], 0x55
xor edx, edx
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x10060c1a
mov cl, byte [eax]
inc eax
shl edx, 8
mov dword [esi + 0xc], eax
movzx eax, cl
movsx edx, dx
or edx, eax
jmp 0x1005d6d6
mov eax, dword [esi]
test eax, eax
je 0x10060c2b
cmp dword [eax], 0
jne 0x10060c2b
mov dword [eax], 0x55
shl edx, 8
xor eax, eax
movsx edx, dx
or edx, eax
jmp 0x1005d6d6
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 0x1005c701
cmp byte [esp + 0x28], 0xf6
ja 0x10060c80
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 0x10060d10
jmp 0x1005d6e9
cmp byte [esp + 0x28], 0xfa
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
ja 0x10060cc8
shl edx, 8
cmp eax, ecx
jae 0x10060cab
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx eax, cl
lea esi, [eax - 0xf694]
add esi, edx
jmp 0x10060c68
mov eax, dword [esi]
test eax, eax
je 0x10060cbc
cmp dword [eax], 0
jne 0x10060cbc
mov dword [eax], 0x55
xor eax, eax
lea esi, [eax - 0xf694]
add esi, edx
jmp 0x10060c68
cmp byte [esp + 0x28], 0xfe
ja 0x10060d31
shl edx, 8
cmp eax, ecx
jae 0x10060ce1
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx eax, cl
jmp 0x10060cf4
mov eax, dword [esi]
test eax, eax
je 0x10060cf2
cmp dword [eax], 0
jne 0x10060cf2
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 0x1005d6e9
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 0x1005c701
cmp eax, ecx
jae 0x10060d40
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx edx, cl
jmp 0x10060d53
mov eax, dword [esi]
test eax, eax
je 0x10060d51
cmp dword [eax], 0
jne 0x10060d51
mov dword [eax], 0x55
xor edx, edx
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x10060d66
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx edi, cl
jmp 0x10060d79
mov eax, dword [esi]
test eax, eax
je 0x10060d77
cmp dword [eax], 0
jne 0x10060d77
mov dword [eax], 0x55
xor edi, edi
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x10060d8c
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx esi, cl
jmp 0x10060d9f
mov eax, dword [esi]
test eax, eax
je 0x10060d9d
cmp dword [eax], 0
jne 0x10060d9d
mov dword [eax], 0x55
xor esi, esi
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 8]
jae 0x10060dbe
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 0x10060dd1
mov eax, dword [ecx]
test eax, eax
je 0x10060dcf
cmp dword [eax], 0
jne 0x10060dcf
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 0x10060e18
cmp edx, 0x7d00
jg 0x10060dfa
cmp edx, 0xffff8300
jge 0x10060e0f
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 0x1005d6d6
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 0x1005d6e9
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 0x1005c701
cmp dword [eax - 4], 2
je 0x10060e6c
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060e68
cmp dword [eax], 0
jne 0x10060e68
mov dword [eax], 0xa0
xor edx, edx
jmp 0x10060e74
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 0x10060e96
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060e92
cmp dword [eax], 0
jne 0x10060e92
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10060eba
cmp dword [eax - 4], 2
je 0x10060eb2
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060eae
cmp dword [eax], 0
jne 0x10060eae
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x10060eba
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 0x10060edc
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060ed8
cmp dword [eax], 0
jne 0x10060ed8
mov dword [eax], 0xa1
xor edi, edi
jmp 0x10060f06
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x10060ef6
sub eax, 1
jne 0x10060f06
shl edi, 0x10
jmp 0x10060f06
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 0x10060f24
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060f20
cmp dword [eax], 0
jne 0x10060f20
mov dword [eax], 0xa1
xor esi, esi
jmp 0x10060f4e
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x10060f3e
sub eax, 1
jne 0x10060f4e
shl esi, 0x10
jmp 0x10060f4e
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 0x10060f6c
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060f68
cmp dword [eax], 0
jne 0x10060f68
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x10060f96
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ebp, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x10060f86
sub eax, 1
jne 0x10060f96
shl ebp, 0x10
jmp 0x10060f96
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
cmp byte [esp + 0x3f20], 0
je 0x10060faa
mov eax, 0x12
jmp 0x100615cf
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x2f], 0
je 0x10060fbe
mov eax, 0x12
jmp 0x100615cf
cmp dword [eax + 0x244], 0
jne 0x10060fe5
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x80]
cmp dword [eax + 0x34], 0
jne 0x10060fe1
mov eax, 0x12
jmp 0x100615cf
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 0x1006101c
mov edx, ecx
mov ecx, dword [esp + 0x2c]
call fcn.10058190
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x58], eax
call fcn.10058190
mov edx, eax
mov dword [esp + 0x38], edx
cmp dword [esp + 0x58], 0
jl 0x10060fa0
test edx, edx
js 0x10060fa0
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x2e], 0
je 0x100610f8
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.100480c0
test eax, eax
jne 0x100615cf
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 0x100615cf
mov ecx, dword [eax + 0xc]
call fcn.10048210
mov edx, dword [esp + 0x58]
lea eax, [esp + 0x3e60]
mov ecx, dword [esp + 0x2c]
push eax
call fcn.1005a090
test eax, eax
jne 0x100615cf
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.1005c140
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 0x100611b1
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 0x100611d8
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.1005a090
test eax, eax
jne 0x100615cf
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.1005c140
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 0x10061274
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 0x100615cf
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
je 0x100612b2
cmp eax, 5
jne 0x10061306
cmp byte [esp + 0x27], 0
jne 0x10061306
test eax, eax
jne 0x100612d3
mov eax, dword [ebx + 4]
test eax, eax
je 0x100612cf
cmp dword [eax], 0
jne 0x100612cf
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100612f7
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x100612e7
sub eax, 1
jne 0x100612f7
shl ecx, 0x10
jmp 0x100612f7
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 0x100610ef
cmp byte [esp + 0x2ec8], 0
je 0x1006139c
push dword [esp + 0x2f14]
mov edx, dword [esp + 0x2f14]
lea ecx, [esp + 0x13c]
mov byte [esp + 0x2ecd], 1
call fcn.1005b590
cmp byte [esp + 0x2f18], 0
je 0x1006137c
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.1005b000
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 0x100610ef
cmp byte [edi + 8], 0
jne 0x100610ef
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov edx, dword [ebx + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
jbe 0x100610ef
cmp byte [esp + 0x3f20], 0
je 0x100613da
mov eax, 0x12
jmp 0x100615cf
cmp ecx, edx
jne 0x100613f4
mov eax, dword [ebx + 4]
test eax, eax
je 0x100613f0
cmp dword [eax], 0
jne 0x100613f0
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10061418
cmp dword [ecx - 4], 2
je 0x10061410
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006140c
cmp dword [eax], 0
jne 0x1006140c
mov dword [eax], 0xa0
xor edx, edx
jmp 0x10061418
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jne 0x10061436
mov eax, dword [ebx + 4]
test eax, eax
je 0x10061432
cmp dword [eax], 0
jne 0x10061432
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x1006145a
cmp dword [eax - 4], 2
je 0x10061452
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006144e
cmp dword [eax], 0
jne 0x1006144e
mov dword [eax], 0xa0
xor ebp, ebp
jmp 0x1006145a
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ebp, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jne 0x10061478
mov eax, dword [ebx + 4]
test eax, eax
je 0x10061474
cmp dword [eax], 0
jne 0x10061474
mov dword [eax], 0xa1
xor edi, edi
jmp 0x100614a2
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x10061492
sub eax, 1
jne 0x100614a2
shl edi, 0x10
jmp 0x100614a2
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 0x100614c0
mov eax, dword [ebx + 4]
test eax, eax
je 0x100614bc
cmp dword [eax], 0
jne 0x100614bc
mov dword [eax], 0xa1
xor esi, esi
jmp 0x100614ea
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x100614da
sub eax, 1
jne 0x100614ea
shl esi, 0x10
jmp 0x100614ea
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.10059fd0
test eax, eax
jne 0x100615cf
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.1005c140
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.10059fd0
test eax, eax
jne 0x100615cf
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.1005c140
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 0x100615cf
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 0x100615de
cmp dword [ecx], 0
jne 0x100615de
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 0x10061618
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 0x1006165d
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 0x100616a2
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 0x100616c5
mov edx, eax
mov eax, dword [esp + 0xe0]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
test ebx, ebx
je 0x100616e9
mov edx, dword [ebx + 8]
mov edi, dword [ebx]
test edx, edx
je 0x100616d9
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.101b4c2a
add esp, 0x3f04
ret 0x18