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

Disassembly:
mov eax, 0x3f04
call fcn.101b65f0
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.101b7540
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.101b7540
mov eax, dword [esp + 0x8c]
add esp, 0xc
mov dword [esp + 0x138], esi
mov dword [esp + 0x13c], eax
movaps xmm0, xmmword [0x102148d0]
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.101b7540
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.101b7540
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.101b7540
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 0x1005c905
test esi, esi
jmp 0x1005c909
mov esi, ebx
test ebx, ebx
jns 0x1005c90d
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 0x1005c97c
mov eax, dword [ecx + 0x214]
mov esi, dword [eax + 0x614]
jmp 0x1005c981
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 0x100619aa
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 0x1006199a
je 0x1005cac3
cmp esi, 0xfffffff
jg 0x1006199a
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 0x1005ca1f
mov edx, dword [esp + 0x74]
test edx, edx
jle 0x1005ca1f
lea eax, [edx*8]
push eax
push 0
push esi
call fcn.101b7540
lea edi, [ebx + 8]
add esp, 0xc
mov dword [edi], esi
mov eax, esi
mov dword [esp + 0x1c], edi
jmp 0x1005ca34
mov dword [ebx + 8], eax
lea edx, [ebx + 8]
mov dword [esp + 0x1c], edx
test ecx, ecx
jne 0x100619a1
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.10058ed0
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 0x100614cf
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 0x1005cae1
lea edi, [ebx + 8]
xor eax, eax
mov dword [esp + 0x1c], edi
mov dword [edi], eax
jmp 0x1005ca38
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
jmp 0x1005cae1
mov edi, dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
cmp eax, dword [edx + 8]
jb 0x1005cafe
test ecx, ecx
mov edx, 0xb
mov eax, 0xe
cmove edx, eax
mov dword [esp + 0x28], edx
jmp 0x1005cb2d
mov cl, byte [eax]
inc eax
mov dword [edx + 0xc], eax
mov dl, cl
mov dword [esp + 0x28], edx
cmp cl, 0xb
je 0x1005cb14
cmp cl, 0xe
jne 0x1005cb29
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 0x1005cbd7
test ah, ah
jne 0x1005cb7a
cmp dl, 1
je 0x1005cb7a
cmp dl, 3
je 0x1005cb7a
cmp dl, 0xd
je 0x1005cb7a
cmp dl, 0xa
je 0x1005cb7a
cmp dl, 0xb
je 0x1005cb7a
cmp dl, 0xc
je 0x1005cb7a
cmp dl, 0xe
je 0x1005cb7a
cmp dl, 0x20
jae 0x1005cb7a
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov dword [ebx + 0xc], eax
jmp 0x1005cae1
cmp dword [esp + 0x5c], 0
mov edi, dword [esp + 0x1c]
jle 0x1005cbb0
cmp dl, 0xa
je 0x1005cbb0
cmp dl, 0xb
je 0x1005cbb0
cmp dl, 0xc
je 0x1005cbb0
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 0x1005cbd7
cmp dl, 0x20
jae 0x1005cbd7
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 0x100614cf
sub dword [esp + 0x7c], 1
je 0x10061380
movzx edx, dl
cmp edx, 0x1f
ja case.default.0x1005cbff
jmp dword [edx*4 + 0x10061ae4]
mov edx, dword [esp + 0x40]
cmp byte [edx + 9], 0
je case.0x1005cbff.0
cmp byte [edx + 0x5d], 0
jne 0x10061380
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005cc46
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cc33
cmp dword [eax], 0
jne 0x1005cc33
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 0x1005cae1
cmp dword [eax - 4], 2
je 0x1005cc71
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cc5e
cmp dword [eax], 0
jne 0x1005cc5e
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 0x1005cae1
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
test eax, eax
js case.0x1005cbff.0
mov dword [edx + 0x78], eax
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov dword [ebx + 0xc], eax
jmp 0x1005cae1
mov edx, dword [esp + 0x40]
cmp byte [edx + 9], 0
je case.0x1005cbff.0
cmp dword [edx + 0x60], 0
je 0x10061380
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 0x1005cceb
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 0x100614cf
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005cd08
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x1005cd04
cmp dword [ecx], 0
jne 0x1005cd04
mov dword [ecx], 0xa1
xor eax, eax
jmp 0x1005cd2c
cmp dword [eax - 4], 2
je 0x1005cd24
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cd20
cmp dword [eax], 0
jne 0x1005cd20
mov dword [eax], 0xa0
xor eax, eax
jmp 0x1005cd2c
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
cmp eax, dword [esp + 0x74]
ja 0x10061380
push eax
mov edx, ebx
mov ecx, esi
call fcn.1005c320
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 0x1005cae1
test al, al
jne 0x1005cd6e
cmp byte [esp + 0x104], al
jne case.0x1005cbff.0
xor eax, eax
jmp 0x1005cd78
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.1005bdf0
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x224], 0
jne 0x100614cf
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1005cae1
test al, al
jne 0x1005cdda
cmp byte [esp + 0x104], al
jne case.0x1005cbff.0
xor eax, eax
push eax
lea eax, [esp + 0x2b]
push eax
lea eax, [esp + 0xa8]
jmp 0x1005cd85
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 0x1005cd85
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi]
sub eax, ecx
sar eax, 3
cmp eax, 1
jbe 0x1005ce3b
cmp byte [esp + 0x27], 0
jne 0x1005ce3b
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1005ce1c
sub eax, 1
jne 0x1005ce2c
shl ecx, 0x10
jmp 0x1005ce2c
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 0x100614cf
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005ce7e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ce6a
cmp dword [eax], 0
jne 0x1005ce6a
mov dword [eax], 0xa1
xor ecx, ecx
add esi, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x3f28], esi
jmp 0x100601ad
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005cea8
sub eax, 1
jne 0x1005ceb8
shl ecx, 0x10
add esi, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x3f28], esi
jmp 0x100601ad
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 0x100601ad
mov ebp, dword [ebx + 0xc]
sub ebp, dword [edi]
xor edi, edi
sar ebp, 3
test ebp, ebp
je 0x1005cfbc
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 0x1005cf0f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cf0b
cmp dword [eax], 0
jne 0x1005cf0b
mov dword [eax], 0x82
mov ecx, dword [ebx + 0xc]
mov edx, dword [esi]
xor esi, esi
jmp 0x1005cf35
mov eax, dword [edx + edi*8 + 4]
mov esi, dword [edx + edi*8]
sub eax, 1
je 0x1005cf25
sub eax, 1
jne 0x1005cf35
shl esi, 0x10
jmp 0x1005cf35
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 0x1005cf68
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005cf64
cmp dword [eax], 0
jne 0x1005cf64
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005cf8f
mov eax, dword [edx + edi*8 + 0xc]
mov ecx, dword [edx + edi*8 + 8]
sub eax, 1
je 0x1005cf7f
sub eax, 1
jne 0x1005cf8f
shl ecx, 0x10
jmp 0x1005cf8f
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.1005b970
add edi, 2
cmp edi, ebp
jb 0x1005cee0
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 0x1005cae1
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 0x10060ade
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x1005d018
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d014
cmp dword [eax], 0
jne 0x1005d014
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005d03e
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x1005d02e
sub eax, 1
jne 0x1005d03e
shl ecx, 0x10
jmp 0x1005d03e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x18]
test dl, dl
je 0x1005d051
add ebp, ecx
mov dword [esp + 0x3f24], ebp
jmp 0x1005d05e
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.1005b970
mov dl, byte [esp + 0x3f]
inc esi
mov eax, dword [esp + 0x1c]
cmp esi, edi
jb 0x1005cff4
mov dword [esp + 0x20], ebp
jmp 0x10060ade
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 0x1005d31c
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 0x1005d0df
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d0db
cmp dword [eax], 0
jne 0x1005d0db
mov dword [eax], 0x82
mov esi, dword [ebx + 0xc]
mov edx, dword [ecx]
xor ecx, ecx
jmp 0x1005d106
mov eax, dword [edx + edi*8 - 0xc]
mov ecx, dword [edx + edi*8 - 0x10]
sub eax, 1
je 0x1005d0f6
sub eax, 1
jne 0x1005d106
shl ecx, 0x10
jmp 0x1005d106
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 0x1005d13d
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d139
cmp dword [eax], 0
jne 0x1005d139
mov edx, dword [esp + 0x1c]
mov dword [eax], 0x82
mov esi, dword [ebx + 0xc]
mov edx, dword [edx]
xor ecx, ecx
jmp 0x1005d164
mov eax, dword [edx + edi*8 - 4]
mov ecx, dword [edx + edi*8 - 8]
sub eax, 1
je 0x1005d154
sub eax, 1
jne 0x1005d164
shl ecx, 0x10
jmp 0x1005d164
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 0x1005d198
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d194
cmp dword [eax], 0
jne 0x1005d194
mov dword [eax], 0x82
mov eax, dword [esp + 0x1c]
mov esi, dword [ebx + 0xc]
mov edx, dword [eax]
xor ecx, ecx
jmp 0x1005d1be
mov eax, dword [edx + edi*8 + 4]
mov ecx, dword [edx + edi*8]
sub eax, 1
je 0x1005d1ae
sub eax, 1
jne 0x1005d1be
shl ecx, 0x10
jmp 0x1005d1be
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 0x1005d1f5
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d1f1
cmp dword [eax], 0
jne 0x1005d1f1
mov dword [eax], 0x82
mov eax, dword [esp + 0x1c]
mov esi, dword [ebx + 0xc]
mov edx, dword [eax]
xor ecx, ecx
jmp 0x1005d21c
mov eax, dword [edx + edi*8 + 0xc]
mov ecx, dword [edx + edi*8 + 8]
sub eax, 1
je 0x1005d20c
sub eax, 1
jne 0x1005d21c
shl ecx, 0x10
jmp 0x1005d21c
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 0x1005d24b
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d247
cmp dword [eax], 0
jne 0x1005d247
mov dword [eax], 0x82
mov eax, dword [esp + 0x1c]
mov esi, dword [ebx + 0xc]
mov edx, dword [eax]
xor ecx, ecx
jmp 0x1005d272
mov eax, dword [edx + edi*8 + 0x14]
mov ecx, dword [edx + edi*8 + 0x10]
sub eax, 1
je 0x1005d262
sub eax, 1
jne 0x1005d272
shl ecx, 0x10
jmp 0x1005d272
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 0x1005d29e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d29a
cmp dword [eax], 0
jne 0x1005d29a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005d2c5
mov eax, dword [edx + edi*8 + 0x1c]
mov ecx, dword [edx + edi*8 + 0x18]
sub eax, 1
je 0x1005d2b5
sub eax, 1
jne 0x1005d2c5
shl ecx, 0x10
jmp 0x1005d2c5
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.1005baf0
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 0x1005d0b0
mov edi, dword [esp + 0x1c]
cmp byte [esp + 0x28], 0x18
jne 0x1005d408
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov esi, dword [edi]
sub eax, esi
sar eax, 3
cmp ebp, eax
jb 0x1005d353
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d34f
cmp dword [eax], 0
jne 0x1005d34f
mov dword [eax], 0x82
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebx + 8]
xor edx, edx
jmp 0x1005d379
mov eax, dword [esi + ebp*8 + 4]
mov edx, dword [esi + ebp*8]
sub eax, 1
je 0x1005d369
sub eax, 1
jne 0x1005d379
shl edx, 0x10
jmp 0x1005d379
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 0x1005d3ac
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d3a8
cmp dword [eax], 0
jne 0x1005d3a8
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005d3d2
mov ecx, dword [esi + eax*8]
mov eax, dword [esi + eax*8 + 4]
sub eax, 1
je 0x1005d3c2
sub eax, 1
jne 0x1005d3d2
shl ecx, 0x10
jmp 0x1005d3d2
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.1005b970
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1005cae1
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 0x1005cae1
test al, al
je case.0x1005cbff.0
cmp byte [esp + 0x2ec8], 0
je 0x1005d4ab
push dword [esp + 0x2f14]
mov edx, dword [esp + 0x2f14]
lea ecx, [esp + 0x13c]
mov byte [esp + 0x2ecd], 1
call fcn.1005b970
cmp byte [esp + 0x2f18], 0
je 0x1005d48b
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.1005b3e0
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 0x1005cae1
cmp ecx, 0x10
jg 0x10061380
lea eax, [ecx + 1]
cmp eax, dword [esp + 0x98]
jb 0x1005d4ef
mov eax, dword [esp + 0x94]
test eax, eax
je 0x1005d4ed
cmp dword [eax], 0
jne 0x1005d4ed
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 0x1005d51e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d51a
cmp dword [eax], 0
jne 0x1005d51a
mov dword [eax], 0xa1
xor eax, eax
jmp 0x1005d542
cmp dword [eax - 4], 2
je 0x1005d53a
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d536
cmp dword [eax], 0
jne 0x1005d536
mov dword [eax], 0xa0
xor eax, eax
jmp 0x1005d542
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
mov ecx, dword [esp + 0x40]
cmp byte [ecx + 8], 0
je 0x1005d56f
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx + 0x268]
test ecx, ecx
je 0x1005d56f
push eax
call fcn.10048770
mov edx, dword [esp + 0x10]
test eax, eax
je 0x1005d56c
mov eax, dword [eax]
jmp 0x1005d56f
or eax, 0xffffffff
cmp byte [esp + 0x28], 0x1d
xorps xmm0, xmm0
mov ecx, dword [esp + 0x2c]
movups xmmword [edx], xmm0
je 0x1005d638
mov ecx, dword [ecx + 0x234]
add ecx, eax
mov eax, dword [esp + 0x2c]
cmp ecx, dword [eax + 0x22c]
jae 0x10061380
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 0x1005d606
mov eax, dword [eax + 0x264]
test eax, eax
je 0x1005d5de
test ecx, ecx
je 0x1005d5d6
mov eax, dword [eax + edx]
add eax, ecx
mov ecx, dword [esp + 0x10]
jmp 0x1005d614
mov ecx, dword [esp + 0x10]
xor eax, eax
jmp 0x1005d614
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 0x1005d60a
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 0x1005cae1
mov ecx, dword [ecx + 0x238]
add ecx, eax
mov eax, dword [esp + 0x2c]
cmp ecx, dword [eax + 0x230]
jae 0x10061380
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 0x1005cae1
cmp ecx, 1
jl 0x10061380
dec ecx
mov eax, ecx
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x98]
jb 0x1005d6af
mov eax, dword [esp + 0x94]
test eax, eax
je 0x1005d6ad
cmp dword [eax], 0
jne 0x1005d6ad
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 0x1005cae1
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
cmp eax, dword [edx + 8]
jae 0x1005d6da
mov cl, byte [eax]
inc eax
mov dword [edx + 0xc], eax
jmp 0x1005d6ed
mov eax, dword [edx]
test eax, eax
je 0x1005d6eb
cmp dword [eax], 0
jne 0x1005d6eb
mov dword [eax], 0x55
xor cl, cl
movzx eax, cl
add eax, 0xfffffff8
mov byte [esp + 0x3f], cl
cmp eax, 0x1d
ja case.0x1005d707.9
movzx eax, byte [eax + 0x10061b7c]
jmp dword [eax*4 + 0x10061b64]
push 0
push 0x101f4268
jmp 0x1005d774
push 0
push 0x101f410c
lea eax, [esp + 0x140]
mov ecx, ebx
push eax
lea eax, [esp + 0x3f34]
push eax
lea edx, [esp + 0x3f34]
call fcn.1005c020
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 0x1005cae1
push 0
push 0x101f4294
jmp 0x1005d774
push 1
push 0x101f442c
lea eax, [esp + 0x140]
mov ecx, ebx
push eax
lea eax, [esp + 0x3f34]
push eax
lea edx, [esp + 0x3f34]
call fcn.1005c020
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 0x1005cae1
mov eax, dword [esp + 0x40]
cmp byte [eax + 9], 0
jne case.0x1005d801.0
cmp cl, 0x26
jae case.0x1005d801.0
mov al, byte [eax + 8]
test al, al
je 0x1005d7f5
cmp dword [esp + 0x5c], 0
jle 0x1005d7f5
cmp cl, 0x11
je 0x1005d7f5
mov eax, dword [edi]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x5c], 0
mov dword [ebx + 0xc], eax
jmp 0x1005cae1
movzx ecx, cl
cmp ecx, 0x21
ja case.0x1005d801.0
jmp dword [ecx*4 + 0x10061b9c]
test al, al
je case.0x1005d801.0
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi]
sub eax, ecx
sar eax, 3
test eax, eax
jne 0x1005d834
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d830
cmp dword [eax], 0
jne 0x1005d830
mov dword [eax], 0x82
xor esi, esi
jmp 0x1005d858
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
sub eax, 1
je 0x1005d848
sub eax, 1
jne 0x1005d858
shl esi, 0x10
jmp 0x1005d858
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 0x1005d87d
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d879
cmp dword [eax], 0
jne 0x1005d879
mov dword [eax], 0x82
xor edi, edi
jmp 0x1005d8a2
mov eax, dword [ecx + 0x14]
mov edi, dword [ecx + 0x10]
sub eax, 1
je 0x1005d892
sub eax, 1
jne 0x1005d8a2
shl edi, 0x10
jmp 0x1005d8a2
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 0x1005d8cc
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d8c8
cmp dword [eax], 0
jne 0x1005d8c8
mov dword [eax], 0x82
xor edx, edx
jmp 0x1005d8f1
mov eax, dword [ecx + 0x24]
mov edx, dword [ecx + 0x20]
sub eax, 1
je 0x1005d8e1
sub eax, 1
jne 0x1005d8f1
shl edx, 0x10
jmp 0x1005d8f1
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 0x1005d917
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d913
cmp dword [eax], 0
jne 0x1005d913
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005d93c
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub eax, 1
je 0x1005d92c
sub eax, 1
jne 0x1005d93c
shl ecx, 0x10
jmp 0x1005d93c
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 0x1005d963
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d979
cmp dword [eax], 0
jne 0x1005d979
mov dword [eax], 0x82
jmp 0x1005d979
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 0x1005d9a2
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005d99e
cmp dword [eax], 0
jne 0x1005d99e
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005d9c7
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
sub eax, 1
je 0x1005d9b7
sub eax, 1
jne 0x1005d9c7
shl ecx, 0x10
jmp 0x1005d9c7
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 0x1005d9ee
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005da02
cmp dword [eax], 0
jne 0x1005da02
mov dword [eax], 0x82
jmp 0x1005da02
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 0x1005da14
mov eax, dword [eax]
jmp 0x1005da17
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.1005bdf0
cmp byte [ebp + 0x224], 0
jne 0x100614cf
mov ebp, dword [esp + 0x20]
jmp 0x100602ab
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005da71
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005da6d
cmp dword [eax], 0
jne 0x1005da6d
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005da9b
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005da8b
sub eax, 1
jne 0x1005da9b
shl edx, 0x10
jmp 0x1005da9b
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 0x1005daf8
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dab4
cmp dword [eax], 0
jne 0x1005dab4
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 0x1006101a
mov eax, dword [ebx + 4]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x1005cae1
cmp dword [eax], 0
jne 0x1005cae1
mov dword [eax], 0x82
mov esi, dword [esp + 0x18]
jmp 0x1005cae1
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005db12
sub eax, 1
jne 0x1005db22
shl ecx, 0x10
jmp 0x1005db22
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test ecx, ecx
je 0x1005dab4
test edx, edx
je 0x1005dab4
mov edx, 1
jmp 0x1005dab6
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005db4e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005db4a
cmp dword [eax], 0
jne 0x1005db4a
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005db78
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005db68
sub eax, 1
jne 0x1005db78
shl edx, 0x10
jmp 0x1005db78
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 0x1005db93
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dbc5
cmp dword [eax], 0
jne 0x1005dbc5
mov dword [eax], 0xa1
jmp 0x1005dbc5
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005dbad
sub eax, 1
jne 0x1005dbbd
shl ecx, 0x10
jmp 0x1005dbbd
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test ecx, ecx
jne 0x1005db2a
test edx, edx
jne 0x1005db2a
jmp 0x1005dab4
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005dbef
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dbeb
cmp dword [eax], 0
jne 0x1005dbeb
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005dc19
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005dc09
sub eax, 1
jne 0x1005dc19
shl edx, 0x10
jmp 0x1005dc19
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 0x1005dac9
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 0x1005cae1
test al, al
je case.0x1005d801.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 0x10061230
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dc85
cmp dword [eax], 0
jne 0x1005dc85
mov dword [eax], 0xa1
xor edx, edx
jmp 0x10061254
test al, al
je case.0x1005d801.0
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005dcb1
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dcad
cmp dword [eax], 0
jne 0x1005dcad
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005dcdb
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1005dccb
sub eax, 1
jne 0x1005dcdb
shl ecx, 0x10
jmp 0x1005dcdb
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 0x1005dd02
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dcfe
cmp dword [eax], 0
jne 0x1005dcfe
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005dd2c
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005dd1c
sub eax, 1
jne 0x1005dd2c
shl ecx, 0x10
jmp 0x1005dd2c
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 0x1005dd4e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dd4a
cmp dword [eax], 0
jne 0x1005dd4a
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005dd78
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005dd68
sub eax, 1
jne 0x1005dd78
shl edx, 0x10
jmp 0x1005dd78
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 0x1005dd95
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005dd91
cmp dword [eax], 0
jne 0x1005dd91
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005ddbf
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005ddaf
sub eax, 1
jne 0x1005ddbf
shl ecx, 0x10
jmp 0x1005ddbf
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 0x100614cf
cmp byte [esp + 0x33], 0
mov esi, dword [esp + 0x18]
je 0x100602b3
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 0x1005cae1
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005de93
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005de31
cmp dword [eax], 0
jne 0x1005de31
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 0x1005e246
mov esi, dword [esp + 0x18]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x1005cae1
cmp dword [eax], 0
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
jne 0x1005cae1
mov dword [eax], 0x82
jmp 0x1005cae1
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1005dead
sub eax, 1
jne 0x1005debd
shl ecx, 0x10
jmp 0x1005debd
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 0x1005de3c
lea eax, [edi*8]
mov edi, dword [esp + 0x1c]
add eax, ebp
mov ebp, dword [esp + 0x20]
cmp esi, eax
jne 0x1005df0e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005facc
cmp dword [eax], 0
jne 0x1005facc
mov dword [eax], 0x82
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jmp 0x1005cae1
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 0x1005cae1
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1005df4c
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005df48
cmp dword [eax], 0
jne 0x1005df48
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005df76
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005df66
sub eax, 1
jne 0x1005df76
shl esi, 0x10
jmp 0x1005df76
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 0x1005df93
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005df8f
cmp dword [eax], 0
jne 0x1005df8f
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005dfbd
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005dfad
sub eax, 1
jne 0x1005dfbd
shl edx, 0x10
jmp 0x1005dfbd
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 0x1005dfff
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 0x1005cae1
cmp dword [eax], 0
jne 0x1005cae1
mov dword [eax], 0x82
jmp 0x1005cae1
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 0x1005cae1
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1005e044
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e040
cmp dword [eax], 0
jne 0x1005e040
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005e06e
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005e05e
sub eax, 1
jne 0x1005e06e
shl esi, 0x10
jmp 0x1005e06e
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 0x1005e08b
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e087
cmp dword [eax], 0
jne 0x1005e087
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005e0b5
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005e0a5
sub eax, 1
jne 0x1005e0b5
shl edx, 0x10
jmp 0x1005e0b5
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 0x1005dfd0
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 0x1005cae1
test al, al
je 0x1005e1a0
cmp byte [esp + 0x58], 0
je 0x1005e1a0
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005e123
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e11f
cmp dword [eax], 0
jne 0x1005e11f
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005e147
cmp dword [eax - 4], 2
je 0x1005e13f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e13b
cmp dword [eax], 0
jne 0x1005e13b
mov dword [eax], 0xa0
xor edx, edx
jmp 0x1005e147
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005e16b
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e160
cmp dword [eax], 0
jne 0x1005e160
mov dword [eax], 0xa1
xor ecx, ecx
mov byte [esp + 0x58], cl
jmp 0x1005e22e
cmp dword [eax - 4], 2
je 0x1005e18e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e183
cmp dword [eax], 0
jne 0x1005e183
mov dword [eax], 0xa0
xor ecx, ecx
mov byte [esp + 0x58], cl
jmp 0x1005e22e
add eax, 0xfffffff8
mov byte [esp + 0x58], 0
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
jmp 0x1005e22e
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005e1bd
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e1b9
cmp dword [eax], 0
jne 0x1005e1b9
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005e1e7
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005e1d7
sub eax, 1
jne 0x1005e1e7
shl edx, 0x10
jmp 0x1005e1e7
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 0x1005e204
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e200
cmp dword [eax], 0
jne 0x1005e200
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005e22e
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005e21e
sub eax, 1
jne 0x1005e22e
shl ecx, 0x10
jmp 0x1005e22e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.10047870
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov esi, dword [ebx + 0xc]
lea ecx, [ecx + edx*8]
cmp esi, ecx
je 0x1005dac9
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 0x1005cae1
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005e2b9
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e280
cmp dword [eax], 0
jne 0x1005e280
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 0x1005dac9
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 0x1005cae1
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1005e2d3
sub eax, 1
jne 0x1005e2e3
shl ecx, 0x10
jmp 0x1005e2e3
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 0x1005e28b
lea eax, [esi + eax*8]
cmp edx, eax
jne 0x1005e326
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005fac8
cmp dword [eax], 0
jne 0x1005fac8
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
mov esi, dword [esp + 0x18]
jmp 0x1005cae1
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 0x1005cae1
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1005e368
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e364
cmp dword [eax], 0
jne 0x1005e364
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005e392
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005e382
sub eax, 1
jne 0x1005e392
shl esi, 0x10
jmp 0x1005e392
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 0x1005e3af
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e3ab
cmp dword [eax], 0
jne 0x1005e3ab
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005e3d9
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005e3c9
sub eax, 1
jne 0x1005e3d9
shl edx, 0x10
jmp 0x1005e3d9
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 0x1005dfd0
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 0x1005cae1
mov ecx, dword [esp + 0x14]
test al, al
je 0x1005cae1
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005e445
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e441
cmp dword [eax], 0
jne 0x1005e441
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005e469
cmp dword [eax - 4], 2
je 0x1005e461
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e45d
cmp dword [eax], 0
jne 0x1005e45d
mov dword [eax], 0xa0
xor esi, esi
jmp 0x1005e469
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005e486
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e482
cmp dword [eax], 0
jne 0x1005e482
mov dword [eax], 0xa1
xor edi, edi
jmp 0x1005e4aa
cmp dword [eax - 4], 2
je 0x1005e4a2
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e49e
cmp dword [eax], 0
jne 0x1005e49e
mov dword [eax], 0xa0
xor edi, edi
jmp 0x1005e4aa
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.0x1005e4e4
movzx eax, byte [esi + 0x10061c64]
jmp dword [eax*4 + 0x10061c24]
cmp edi, 3
jne 0x10061380
cmp byte [esp + 0x33], 0
je 0x1005e519
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0x1d4], 0
je 0x10061380
cmp dword [eax + 0x1d8], 7
jne 0x10061380
mov eax, dword [ebx + 0x10]
mov ebp, dword [esp + 0x20]
lea eax, [edx + eax*8]
cmp ecx, eax
jne 0x1005e53b
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e54b
cmp dword [eax], 0
jne 0x1005e54b
mov dword [eax], 0x82
jmp 0x1005e54b
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 0x1005e589
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e599
cmp dword [eax], 0
jne 0x1005e599
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
mov dword [esp + 0x54], 2
jmp 0x1005cae1
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 0x1005cae1
test edi, edi
jne 0x10061380
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 0x1005cae1
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 0x1005e604
push 0
mov edx, 6
mov ecx, esi
call fcn.10047f70
test eax, eax
jne 0x100614cf
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 0x1005cae1
test edi, edi
jne 0x10061380
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 0x1005cae1
mov ecx, dword [esp + 0x2c]
cmp dword [ecx + 0x1d4], 0
je 0x10061380
mov esi, dword [ecx + 0x1d8]
lea eax, [esi + 1]
mov dword [ecx + 0x1d8], eax
lea eax, [esi - 1]
cmp eax, 5
ja 0x1005fac0
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 0x1005e6b1
push 0
mov edx, 1
mov ecx, edi
call fcn.10047f70
test eax, eax
jne 0x10061380
lea eax, [esi - 3]
cmp esi, 3
jg 0x1005e6bb
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 0x1005e6e1
cmp esi, 6
jne 0x1005fac4
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.1005baf0
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
jmp 0x1005cae1
cmp edi, 1
jne 0x10061380
cmp byte [esp + 0x33], 0
je 0x1005e78c
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 0x1005cae1
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 0x1005cae1
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x284]
mov dword [esp + 0x28], ecx
test ecx, ecx
je 0x10061380
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 0x10061380
lea edi, [edx + ebp]
test edx, edx
je 0x1005e93e
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 0x1005e838
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e834
cmp dword [eax], 0
jne 0x1005e834
mov dword [eax], 0x82
xor esi, esi
jmp 0x1005e85e
mov eax, dword [esi + ebp*8 + 4]
mov esi, dword [esi + ebp*8]
sub eax, 1
je 0x1005e84e
sub eax, 1
jne 0x1005e85e
shl esi, 0x10
jmp 0x1005e85e
mov eax, esi
shr eax, 0x1f
sub esi, eax
add esi, 0x2000
sar esi, 0xe
cmp dword [ecx], 1
jbe 0x1005e8f1
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 0x1005e89c
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e898
cmp dword [eax], 0
jne 0x1005e898
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005e8c2
mov eax, dword [edx + edi*8 + 4]
mov ecx, dword [edx + edi*8]
sub eax, 1
je 0x1005e8b2
sub eax, 1
jne 0x1005e8c2
shl ecx, 0x10
jmp 0x1005e8c2
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.1003f080
mov ecx, dword [esp + 0x28]
inc ebp
add dword [esp + 0x38], 4
add esi, eax
inc edi
cmp ebp, dword [ecx]
jb 0x1005e874
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 0x1005e917
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e928
cmp dword [eax], 0
jne 0x1005e928
mov dword [eax], 0x82
jmp 0x1005e928
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 0x1005e810
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 0x1005e97f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e98b
cmp dword [eax], 0
jne 0x1005e98b
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 0x1005cae1
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 0x1005cae1
mov ebp, dword [esp + 0x2c]
mov esi, dword [ebp + 0x284]
cmp edi, 1
jne 0x10061380
test esi, esi
je 0x10061380
cmp ecx, edx
jne 0x1005e9d5
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e9d1
cmp dword [eax], 0
jne 0x1005e9d1
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005ea01
cmp dword [ecx - 4], 2
je 0x1005e9f1
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005e9ed
cmp dword [eax], 0
jne 0x1005e9ed
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x1005ea01
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
test ecx, ecx
js 0x10061380
mov edx, dword [esi]
lea eax, [edx + ecx]
cmp eax, dword [ebp + 0x28c]
ja 0x10061380
lea eax, [edx*4]
push eax
mov eax, dword [ebp + 0x288]
push dword [esi + 0x88]
lea eax, [eax + ecx*4]
push eax
call fcn.101b6fc0
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 0x1005cae1
cmp edi, 2
jne 0x10061380
cmp ecx, edx
jne 0x1005ea6e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ea6a
cmp dword [eax], 0
jne 0x1005ea6a
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005ea98
lea esi, [ecx - 8]
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005ea88
sub eax, 1
jne 0x1005ea98
shl esi, 0x10
jmp 0x1005ea98
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 0x1005eaba
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005eab6
cmp dword [eax], 0
jne 0x1005eab6
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005eae4
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005ead4
sub eax, 1
jne 0x1005eae4
shl edx, 0x10
jmp 0x1005eae4
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 0x1005eb27
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005eb3a
cmp dword [eax], 0
jne 0x1005eb3a
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 0x1005cae1
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 0x1005cae1
cmp edi, 2
jne 0x10061380
cmp ecx, edx
jne 0x1005eb7e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005eb7a
cmp dword [eax], 0
jne 0x1005eb7a
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005eba8
lea esi, [ecx - 8]
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005eb98
sub eax, 1
jne 0x1005eba8
shl esi, 0x10
jmp 0x1005eba8
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 0x1005ebca
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ebc6
cmp dword [eax], 0
jne 0x1005ebc6
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005ebf4
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005ebe4
sub eax, 1
jne 0x1005ebf4
shl edx, 0x10
jmp 0x1005ebf4
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 0x1005ec23
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005eb3a
cmp dword [eax], 0
jne 0x1005eb3a
mov dword [eax], 0x82
jmp 0x1005eb3a
sub edx, esi
mov dword [edi], edx
jmp 0x1005eb2c
cmp edi, 2
jne 0x10061380
cmp ecx, edx
jne 0x1005ec4f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ec4b
cmp dword [eax], 0
jne 0x1005ec4b
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005ec79
lea edx, [ecx - 8]
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005ec69
sub eax, 1
jne 0x1005ec79
shl edx, 0x10
jmp 0x1005ec79
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 0x1005ec9a
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ec96
cmp dword [eax], 0
jne 0x1005ec96
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005ecc4
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005ecb4
sub eax, 1
jne 0x1005ecc4
shl ecx, 0x10
jmp 0x1005ecc4
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.1003f080
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov esi, dword [ebx + 0xc]
lea ecx, [ecx + edx*8]
cmp esi, ecx
jne 0x1005ed07
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ed17
cmp dword [eax], 0
jne 0x1005ed17
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 0x1005cae1
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 0x1005cae1
cmp edi, 2
jne 0x10061380
cmp ecx, edx
jne 0x1005ed57
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ed53
cmp dword [eax], 0
jne 0x1005ed53
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005ed81
lea edx, [ecx - 8]
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005ed71
sub eax, 1
jne 0x1005ed81
shl edx, 0x10
jmp 0x1005ed81
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 0x1005eda2
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ed9e
cmp dword [eax], 0
jne 0x1005ed9e
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005edcc
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005edbc
sub eax, 1
jne 0x1005edcc
shl ecx, 0x10
jmp 0x1005edcc
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test edx, edx
je 0x10061380
call fcn.10047870
jmp 0x1005ecc9
cmp edi, 2
jne 0x10061380
mov ebp, dword [esp + 0x2c]
cmp dword [ebp + 0x284], 0
je 0x10061380
cmp ecx, edx
jne 0x1005ee12
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ee0e
cmp dword [eax], 0
jne 0x1005ee0e
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005ee3e
cmp dword [ecx - 4], 2
je 0x1005ee2e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ee2a
cmp dword [eax], 0
jne 0x1005ee2a
mov dword [eax], 0xa0
xor edx, edx
jmp 0x1005ee3e
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
test edx, edx
js 0x10061380
cmp edx, dword [ebp + 0x28c]
jae 0x10061380
mov edi, dword [esp + 0x1c]
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1005ee87
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ee67
cmp dword [eax], 0
jne 0x1005ee67
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 0x1005cae1
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005eebd
sub eax, 1
jne 0x1005eecd
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 0x1005cae1
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 0x1005cae1
cmp edi, 1
jne 0x10061380
mov ebp, dword [esp + 0x2c]
cmp dword [ebp + 0x284], 0
je 0x10061380
cmp ecx, edx
jne 0x1005ef1f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ef1b
cmp dword [eax], 0
jne 0x1005ef1b
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005ef4b
cmp dword [ecx - 4], 2
je 0x1005ef3b
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ef37
cmp dword [eax], 0
jne 0x1005ef37
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x1005ef4b
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
test ecx, ecx
js 0x10061380
cmp ecx, dword [ebp + 0x28c]
jae 0x10061380
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 0x1005ecd8
mov dword [edx], esi
jmp 0x1005ed09
cmp edi, 4
jne 0x10061380
cmp ecx, edx
jne 0x1005efa1
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005ef9d
cmp dword [eax], 0
jne 0x1005ef9d
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x1005efcb
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebp, dword [ecx]
sub eax, 1
je 0x1005efbb
sub eax, 1
jne 0x1005efcb
shl ebp, 0x10
jmp 0x1005efcb
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 0x1005efec
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005efe8
cmp dword [eax], 0
jne 0x1005efe8
mov dword [eax], 0xa1
xor edi, edi
jmp 0x1005f016
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1005f006
sub eax, 1
jne 0x1005f016
shl edi, 0x10
jmp 0x1005f016
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 0x1005f033
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f02f
cmp dword [eax], 0
jne 0x1005f02f
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005f05d
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005f04d
sub eax, 1
jne 0x1005f05d
shl edx, 0x10
jmp 0x1005f05d
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 0x1005f07a
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f076
cmp dword [eax], 0
jne 0x1005f076
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005f0a4
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
sub eax, 1
je 0x1005f094
sub eax, 1
jne 0x1005f0a4
shl esi, 0x10
jmp 0x1005f0a4
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 0x1005f0d6
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005eb3a
cmp dword [eax], 0
jne 0x1005eb3a
mov dword [eax], 0x82
jmp 0x1005eb3a
cmp edi, ebp
cmovle edx, esi
mov dword [ecx], edx
jmp 0x1005eb2c
test edi, edi
jne 0x10061380
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 0x1005ef77
jmp 0x1005ecd8
mov eax, dword [esp + 0x1c]
test edi, edi
js 0x10061380
test esi, esi
js 0x10061380
cmp edi, 3
jle 0x1005f159
mov edi, 3
mov dword [esp + 0x5c], edi
jmp 0x1005f176
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 0x1005cadd
lea esi, [esp + edi*4 + 0x3e5c]
nop dword [eax]
mov edx, dword [ebx + 0xc]
cmp edx, dword [eax]
jne 0x1005f19d
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f199
cmp dword [eax], 0
jne 0x1005f199
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005f1c7
lea eax, [edx - 8]
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [edx - 4]
sub eax, 1
je 0x1005f1b7
sub eax, 1
jne 0x1005f1c7
shl ecx, 0x10
jmp 0x1005f1c7
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 0x1005f180
mov ebp, dword [esp + 0x20]
mov edi, eax
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
jmp 0x1005cae1
mov ecx, dword [esp + 0x14]
test al, al
je 0x1005cae1
mov eax, dword [esp + 0x54]
test eax, eax
jle 0x1005f20a
dec eax
mov dword [esp + 0x54], eax
jmp 0x1005cae1
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x10061380
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 0x1005dac9
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 0x1005cae1
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005f280
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x1005cae1
cmp dword [eax], 0
jne 0x1005cae1
mov dword [eax], 0xa1
jmp 0x1005cae1
mov ecx, dword [esp + 0x14]
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
jmp 0x1005cae1
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005f2ac
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f2a8
cmp dword [eax], 0
jne 0x1005f2a8
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005f2d0
cmp dword [eax - 4], 2
je 0x1005f2c8
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f2c4
cmp dword [eax], 0
jne 0x1005f2c4
mov dword [eax], 0xa0
xor esi, esi
jmp 0x1005f2d0
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005f2ed
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f2e9
cmp dword [eax], 0
jne 0x1005f2e9
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005f317
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005f307
sub eax, 1
jne 0x1005f317
shl ecx, 0x10
jmp 0x1005f317
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x10]
cmp esi, 0x1f
ja 0x1005df01
mov dword [esp + esi*4 + 0x3e88], ecx
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jmp 0x1005cae1
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005f35f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f351
cmp dword [eax], 0
jne 0x1005f351
mov dword [eax], 0xa1
xor eax, eax
mov esi, dword [esp + eax*4 + 0x3e88]
jmp 0x1005f222
cmp dword [eax - 4], 2
je 0x1005f385
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f377
cmp dword [eax], 0
jne 0x1005f377
mov dword [eax], 0xa0
xor eax, eax
mov esi, dword [esp + eax*4 + 0x3e88]
jmp 0x1005f222
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov eax, dword [eax]
test eax, eax
js 0x1005facc
cmp eax, 0x20
jge 0x1005facc
mov esi, dword [esp + eax*4 + 0x3e88]
jmp 0x1005f222
mov ebp, dword [ebx + 0xc]
cmp ebp, dword [edi]
jne 0x1005f3c7
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f3c3
cmp dword [eax], 0
jne 0x1005f3c3
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x1005f3f2
add ebp, 0xfffffff8
mov dword [ebx + 0xc], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
sub eax, 1
je 0x1005f3e2
sub eax, 1
jne 0x1005f3f2
shl ebp, 0x10
jmp 0x1005f3f2
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 0x1005f40f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f40b
cmp dword [eax], 0
jne 0x1005f40b
mov dword [eax], 0xa1
xor edi, edi
jmp 0x1005f439
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1005f429
sub eax, 1
jne 0x1005f439
shl edi, 0x10
jmp 0x1005f439
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 0x1005f45a
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f456
cmp dword [eax], 0
jne 0x1005f456
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005f484
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005f474
sub eax, 1
jne 0x1005f484
shl edx, 0x10
jmp 0x1005f484
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 0x1005f4a1
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f49d
cmp dword [eax], 0
jne 0x1005f49d
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005f4cb
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
sub eax, 1
je 0x1005f4bb
sub eax, 1
jne 0x1005f4cb
shl esi, 0x10
jmp 0x1005f4cb
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 0x1005f4eb
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
jmp 0x1005de5c
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 0x1005cae1
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 0x1005f235
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005fac8
cmp dword [eax], 0
jne 0x1005fac8
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
mov esi, dword [esp + 0x18]
jmp 0x1005cae1
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005f5a3
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f59f
cmp dword [eax], 0
jne 0x1005f59f
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005f5cd
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005f5bd
sub eax, 1
jne 0x1005f5cd
shl edx, 0x10
jmp 0x1005f5cd
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 0x1005f5ea
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f5e6
cmp dword [eax], 0
jne 0x1005f5e6
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005f614
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
je 0x1005f604
sub eax, 1
jne 0x1005f614
shl ecx, 0x10
jmp 0x1005f614
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.1003f080
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov esi, dword [ebx + 0xc]
lea ecx, [ecx + edx*8]
cmp esi, ecx
jne 0x1005e246
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005fac8
cmp dword [eax], 0
jne 0x1005fac8
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
mov esi, dword [esp + 0x18]
jmp 0x1005cae1
mov ebp, dword [ebx + 0xc]
cmp ebp, dword [edi]
jne 0x1005f696
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f670
cmp dword [eax], 0
jne 0x1005f670
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 0x1005f6fe
mov edi, dword [esp + 0x1c]
jmp 0x1005de60
add ebp, 0xfffffff8
mov dword [ebx + 0xc], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
sub eax, 1
je 0x1005f6b1
sub eax, 1
jne 0x1005f6c1
shl ebp, 0x10
jmp 0x1005f6c1
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
test ebp, ebp
jle 0x1005f670
mov eax, ebp
mov esi, ebp
sar eax, 1
mov ecx, ebp
cmp ebp, 0xa
cmovge esi, eax
mov edx, esi
call fcn.10047870
lea edi, [esi + 1]
add edi, eax
sar edi, 1
cmp edi, esi
je 0x1005f672
mov edx, edi
mov ecx, ebp
mov esi, edi
call fcn.10047870
inc edi
add edi, eax
sar edi, 1
cmp edi, esi
jne 0x1005f6e5
jmp 0x1005f672
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 0x1005cae1
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x1005f73c
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f738
cmp dword [eax], 0
jne 0x1005f738
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005f766
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1005f756
sub eax, 1
jne 0x1005f766
shl edx, 0x10
jmp 0x1005f766
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 0x1005f789
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f799
cmp dword [eax], 0
jne 0x1005f799
mov dword [eax], 0x82
jmp 0x1005f799
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 0x1006120f
jmp 0x1005dac9
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi]
jne 0x1005f7ce
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f7ca
cmp dword [eax], 0
jne 0x1005f7ca
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005f7f8
add esi, 0xfffffff8
mov dword [ebx + 0xc], esi
mov eax, dword [esi + 4]
mov esi, dword [esi]
sub eax, 1
je 0x1005f7e8
sub eax, 1
jne 0x1005f7f8
shl esi, 0x10
jmp 0x1005f7f8
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 0x1005f815
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f811
cmp dword [eax], 0
jne 0x1005f811
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005f83f
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1005f82f
sub eax, 1
jne 0x1005f83f
shl edx, 0x10
jmp 0x1005f83f
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 0x1005f866
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f876
cmp dword [eax], 0
jne 0x1005f876
mov dword [eax], 0x82
jmp 0x1005f876
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 0x1006120f
jmp 0x1005dac9
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005f8af
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f8ab
cmp dword [eax], 0
jne 0x1005f8ab
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1005f8d3
cmp dword [eax - 4], 2
je 0x1005f8cb
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f8c7
cmp dword [eax], 0
jne 0x1005f8c7
mov dword [eax], 0xa0
xor edx, edx
jmp 0x1005f8d3
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 0x1005cad3
test edx, edx
jns 0x1005f8f2
lea ecx, [eax - 1]
jmp 0x1005f91a
cmp edx, eax
jb 0x1005f915
xor ecx, ecx
mov eax, dword [esi + ecx*8 + 4]
mov edx, dword [esi + ecx*8]
sub eax, 1
je 0x1005f937
sub eax, 1
jne 0x1005f799
shl edx, 0x10
jmp 0x1005f799
mov ecx, eax
sub ecx, edx
dec ecx
cmp ecx, eax
jb 0x1005f8f8
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f930
cmp dword [eax], 0
jne 0x1005f930
mov dword [eax], 0x82
xor edx, edx
jmp 0x1005f799
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
jmp 0x1005f799
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005f969
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f965
cmp dword [eax], 0
jne 0x1005f965
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005f98d
cmp dword [eax - 4], 2
je 0x1005f985
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f981
cmp dword [eax], 0
jne 0x1005f981
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x1005f98d
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi]
jne 0x1005f9bf
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f9a6
cmp dword [eax], 0
jne 0x1005f9a6
mov dword [eax], 0xa1
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 2
jmp 0x1005cae1
cmp dword [eax - 4], 2
je 0x1005f9f0
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005f9d7
cmp dword [eax], 0
jne 0x1005f9d7
mov dword [eax], 0xa0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 2
jmp 0x1005cae1
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 0x1005fac8
sub eax, dword [edi]
sar eax, 3
cmp edx, eax
jbe 0x1005fa45
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005fac8
cmp dword [eax], 0
jne 0x1005fac8
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
jmp 0x1005cae1
test ecx, ecx
jns 0x1005fa58
neg ecx
mov eax, ecx
mov ecx, dword [esp + 0x38]
cdq
idiv ecx
neg edx
jmp 0x1005fa61
mov eax, ecx
mov ecx, dword [esp + 0x38]
cdq
idiv ecx
mov dword [esp + 0x44], edx
test edx, edx
je 0x1005fac8
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 0x1005faa9
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 0x1005fad9
sub esi, ebx
sub edi, eax
jmp 0x1005fae1
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 0x1005cae1
test esi, esi
jns 0x1005fae1
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 0x1005fa82
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 0x1005cae1
test al, al
je case.0x1005d801.0
cmp byte [esp + 0x33], 0
je case.0x1005d801.0
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005fb69
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005fb65
cmp dword [eax], 0
jne 0x1005fb65
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1005fb97
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 0x1005fb87
sub eax, 1
jne 0x1005fb9b
shl esi, 0x10
jmp 0x1005fb97
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 0x1005fbbf
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005fbbb
cmp dword [eax], 0
jne 0x1005fbbb
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x1005fbed
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 0x1005fbdd
sub eax, 1
jne 0x1005fbf1
shl ebp, 0x10
jmp 0x1005fbed
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 0x1005cae1
mov eax, dword [esp + 0x40]
cmp byte [eax + 8], 0
je case.0x1005cbff.0
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi]
jne 0x1005fc3f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005fc3b
cmp dword [eax], 0
jne 0x1005fc3b
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005fc69
add ecx, 0xfffffff8
mov dword [ebx + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1005fc59
sub eax, 1
jne 0x1005fc69
shl ecx, 0x10
jmp 0x1005fc69
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 0x1005fc99
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005fc95
cmp dword [eax], 0
jne 0x1005fc95
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1005fcc3
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1005fcb3
sub eax, 1
jne 0x1005fcc3
shl ecx, 0x10
jmp 0x1005fcc3
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 0x100614cf
cmp byte [esp + 0x33], 0
mov edx, dword [esp + 0x10]
je case.0x1005d801.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 0x1005cae1
mov edi, dword [esp + 0x40]
cmp byte [edi + 8], 0
je 0x1006167d
test ah, ah
jne 0x1006167d
cmp byte [esp + 0x2ec8], ah
je 0x1005fd93
push dword [esp + 0x2f14]
mov edx, dword [esp + 0x2f14]
lea ecx, [esp + 0x13c]
mov byte [esp + 0x2ecd], 1
call fcn.1005b970
cmp byte [esp + 0x2f18], 0
je 0x1005fd7b
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.1005b3e0
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 0x1005fdce
cmp byte [eax + 5], 0
je 0x1005fdf2
mov edx, dword [esp + 0x2ecc]
lea ecx, [esp + 0x140]
push 0
push dword [esp + 0x2edc]
push eax
push dword [esp + 0x2edc]
call fcn.1005aa50
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 0x1005feb2
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 0x1005fe98
test ebx, ebx
je 0x1005fe96
cmp dword [ebx], 0
jne 0x1005fe96
mov dword [ebx], 0x82
xor ebp, ebp
imul ebp, edx
dec ecx
add ebp, esi
mov dword [esp + 0x10], ebp
test ecx, ecx
jg 0x1005fe80
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 0x1005cae1
mov eax, dword [ebx + 0xc]
sub eax, dword [edi]
sar eax, 3
cmp eax, 1
jbe 0x1005fee9
cmp byte [esp + 0x104], 0
jne case.0x1005cbff.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.1005bdf0
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x224], 0
jne 0x100614cf
cmp byte [esp + 0x28], 0x13
jne 0x1005ff4c
mov eax, dword [esp + 0xb4]
lea ecx, [esp + 0x100]
add eax, dword [esp + 0xd4]
mov edx, dword [esp + 0x10]
push eax
call fcn.1005bd70
mov eax, dword [edi]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1005cae1
push 0xf1c
lea eax, [esp + 0x2f44]
push 0
push eax
call fcn.101b7540
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.1005bd70
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.1005aa50
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
jmp 0x1005cae1
mov eax, dword [ebx + 0xc]
mov edx, dword [edi]
sub eax, edx
sar eax, 3
cmp eax, 2
jbe 0x1006006e
cmp byte [esp + 0x27], 0
jne 0x1006006e
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1006004f
sub eax, 1
jne 0x1006005f
shl ecx, 0x10
jmp 0x1006005f
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 0x100614cf
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x100600b1
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006009d
cmp dword [eax], 0
jne 0x1006009d
mov dword [eax], 0xa1
xor ecx, ecx
add esi, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x3f28], esi
jmp 0x10060159
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x100600db
sub eax, 1
jne 0x100600eb
shl ecx, 0x10
add esi, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x3f28], esi
jmp 0x10060159
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 0x10060159
mov eax, dword [ebx + 0xc]
mov edx, dword [edi]
sub eax, edx
sar eax, 3
cmp eax, 1
jbe 0x10060143
cmp byte [esp + 0x27], 0
jne 0x10060143
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10060124
sub eax, 1
jne 0x10060134
shl ecx, 0x10
jmp 0x10060134
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 0x100614cf
mov edx, dword [ebx + 0xc]
cmp edx, dword [edi]
jne 0x10060176
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060172
cmp dword [eax], 0
jne 0x10060172
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x100601a0
add edx, 0xfffffff8
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10060190
sub eax, 1
jne 0x100601a0
shl ecx, 0x10
jmp 0x100601a0
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 0x100602b3
cmp byte [esp + 0x2ec8], 0
je 0x10060237
push dword [esp + 0x2f14]
mov edx, dword [esp + 0x2f14]
lea ecx, [esp + 0x13c]
mov byte [esp + 0x2ecd], 1
call fcn.1005b970
cmp byte [esp + 0x2f18], 0
je 0x1006021f
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.1005b3e0
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 0x10060272
cmp byte [eax + 5], 0
je 0x10060296
mov edx, dword [esp + 0x2ecc]
lea ecx, [esp + 0x140]
push 0
push dword [esp + 0x2edc]
push eax
push dword [esp + 0x2edc]
call fcn.1005aa50
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 0x1005cae1
mov ebp, dword [ebx + 0xc]
xor esi, esi
sub ebp, dword [edi]
sar ebp, 3
mov dword [esp + 0x44], ebp
cmp ebp, 6
jbe 0x100603c1
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 0x10060308
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060304
cmp dword [eax], 0
jne 0x10060304
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1006032e
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x1006031e
sub eax, 1
jne 0x1006032e
shl ecx, 0x10
jmp 0x1006032e
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 0x10060366
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060362
cmp dword [eax], 0
jne 0x10060362
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1006038d
mov eax, dword [edx + esi*8 + 0xc]
mov ecx, dword [edx + esi*8 + 8]
sub eax, 1
je 0x1006037d
sub eax, 1
jne 0x1006038d
shl ecx, 0x10
jmp 0x1006038d
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.1005b970
add edi, 2
add esi, 2
cmp edi, ebp
jb 0x100602e0
mov edi, dword [esp + 0x1c]
cmp esi, ebp
mov ebp, dword [esp + 0x20]
jae 0x10060ae2
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 0x100603f7
mov eax, dword [ebx + 4]
test eax, eax
je 0x100603f3
cmp dword [eax], 0
jne 0x100603f3
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1006041e
mov eax, dword [edx + esi*8 - 0xc]
mov ecx, dword [edx + esi*8 - 0x10]
sub eax, 1
je 0x1006040e
sub eax, 1
jne 0x1006041e
shl ecx, 0x10
jmp 0x1006041e
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 0x1006044b
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060447
cmp dword [eax], 0
jne 0x10060447
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060472
mov eax, dword [edx + esi*8 - 4]
mov ecx, dword [edx + esi*8 - 8]
sub eax, 1
je 0x10060462
sub eax, 1
jne 0x10060472
shl ecx, 0x10
jmp 0x10060472
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 0x100604a4
mov eax, dword [ebx + 4]
test eax, eax
je 0x100604a0
cmp dword [eax], 0
jne 0x100604a0
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100604ca
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x100604ba
sub eax, 1
jne 0x100604ca
shl ecx, 0x10
jmp 0x100604ca
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 0x100604f3
mov eax, dword [ebx + 4]
test eax, eax
je 0x100604ef
cmp dword [eax], 0
jne 0x100604ef
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1006051a
mov eax, dword [edx + esi*8 + 0xc]
mov ecx, dword [edx + esi*8 + 8]
sub eax, 1
je 0x1006050a
sub eax, 1
jne 0x1006051a
shl ecx, 0x10
jmp 0x1006051a
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 0x10060547
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060543
cmp dword [eax], 0
jne 0x10060543
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1006056e
mov eax, dword [edx + esi*8 + 0x14]
mov ecx, dword [edx + esi*8 + 0x10]
sub eax, 1
je 0x1006055e
sub eax, 1
jne 0x1006056e
shl ecx, 0x10
jmp 0x1006056e
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 0x100605a0
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006059c
cmp dword [eax], 0
jne 0x1006059c
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100605c7
mov eax, dword [edx + esi*8 + 0x1c]
mov ecx, dword [edx + esi*8 + 0x18]
sub eax, 1
je 0x100605b7
sub eax, 1
jne 0x100605c7
shl ecx, 0x10
jmp 0x100605c7
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.1005baf0
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 0x100603d0
jmp 0x10060ade
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 0x10060ae2
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 0x100606b6
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x1006067f
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006067b
cmp dword [eax], 0
jne 0x1006067b
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100606a5
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x10060695
sub eax, 1
jne 0x100606a5
shl ecx, 0x10
jmp 0x100606a5
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 0x100606de
mov eax, dword [ebx + 4]
test eax, eax
je 0x100606da
cmp dword [eax], 0
jne 0x100606da
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060704
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x100606f4
sub eax, 1
jne 0x10060704
shl ecx, 0x10
jmp 0x10060704
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 0x10060732
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006072e
cmp dword [eax], 0
jne 0x1006072e
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060758
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x10060748
sub eax, 1
jne 0x10060758
shl ecx, 0x10
jmp 0x10060758
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 0x1006078b
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060787
cmp dword [eax], 0
jne 0x10060787
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100607b1
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x100607a1
sub eax, 1
jne 0x100607b1
shl ecx, 0x10
jmp 0x100607b1
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 0x100607de
mov eax, dword [ebx + 4]
test eax, eax
je 0x100607da
cmp dword [eax], 0
jne 0x100607da
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060813
mov eax, dword [esp + 0x28]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x100607fc
sub eax, 1
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx + eax*8]
jne 0x10060813
shl ecx, 0x10
jmp 0x10060813
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.1005baf0
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 0x10060650
jmp 0x10060ade
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 0x10060ae2
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 0x10060912
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x100608d5
mov eax, dword [ebx + 4]
test eax, eax
je 0x100608d1
cmp dword [eax], 0
jne 0x100608d1
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100608fb
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x100608eb
sub eax, 1
jne 0x100608fb
shl ecx, 0x10
jmp 0x100608fb
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 0x10060916
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 0x1006093e
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006093a
cmp dword [eax], 0
jne 0x1006093a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060964
mov eax, dword [ecx + esi*8 + 4]
mov ecx, dword [ecx + esi*8]
sub eax, 1
je 0x10060954
sub eax, 1
jne 0x10060964
shl ecx, 0x10
jmp 0x10060964
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 0x10060992
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006098e
cmp dword [eax], 0
jne 0x1006098e
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100609b8
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x100609a8
sub eax, 1
jne 0x100609b8
shl ecx, 0x10
jmp 0x100609b8
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 0x100609e5
mov eax, dword [ebx + 4]
test eax, eax
je 0x100609e1
cmp dword [eax], 0
jne 0x100609e1
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060a1a
mov eax, dword [esp + 0x34]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10060a03
sub eax, 1
mov eax, dword [esp + 0x34]
mov ecx, dword [ecx + eax*8]
jne 0x10060a1a
shl ecx, 0x10
jmp 0x10060a1a
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 0x10060a4b
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060a47
cmp dword [eax], 0
jne 0x10060a47
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060a80
mov eax, dword [esp + 0x28]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10060a69
sub eax, 1
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx + eax*8]
jne 0x10060a80
shl ecx, 0x10
jmp 0x10060a80
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.1005baf0
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 0x100608a6
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 0x1005cae1
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 0x10060f9c
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 0x10060d57
cmp edi, eax
jb 0x10060b73
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060b6f
cmp dword [eax], 0
jne 0x10060b6f
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060b99
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x10060b89
sub eax, 1
jne 0x10060b99
shl ecx, 0x10
jmp 0x10060b99
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 0x10060bcf
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060bcb
cmp dword [eax], 0
jne 0x10060bcb
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060bf5
mov eax, dword [ecx + ebp*8 + 4]
mov ecx, dword [ecx + ebp*8]
sub eax, 1
je 0x10060be5
sub eax, 1
jne 0x10060bf5
shl ecx, 0x10
jmp 0x10060bf5
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 0x10060c24
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060c20
cmp dword [eax], 0
jne 0x10060c20
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060c4a
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x10060c3a
sub eax, 1
jne 0x10060c4a
shl ecx, 0x10
jmp 0x10060c4a
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 0x10060c7a
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060c76
cmp dword [eax], 0
jne 0x10060c76
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060caf
mov eax, dword [esp + 0x34]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10060c98
sub eax, 1
mov eax, dword [esp + 0x34]
mov ecx, dword [ecx + eax*8]
jne 0x10060caf
shl ecx, 0x10
jmp 0x10060caf
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 0x10060d48
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 0x10060cef
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060ceb
cmp dword [eax], 0
jne 0x10060ceb
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060d24
mov eax, dword [esp + 0x28]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10060d0d
sub eax, 1
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx + eax*8]
jne 0x10060d24
shl ecx, 0x10
jmp 0x10060d24
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 0x10060f42
xor al, al
mov dword [esp + 0x20], esi
mov byte [esp + 0x3f], al
jmp 0x10060f42
mov edx, dword [esp + 0x20]
mov dword [esp + 0x4c], edx
cmp edi, eax
jb 0x10060d79
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060d75
cmp dword [eax], 0
jne 0x10060d75
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060d9f
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x10060d8f
sub eax, 1
jne 0x10060d9f
shl ecx, 0x10
jmp 0x10060d9f
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 0x10060dce
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060dca
cmp dword [eax], 0
jne 0x10060dca
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060df4
mov eax, dword [ecx + ebp*8 + 4]
mov ecx, dword [ecx + ebp*8]
sub eax, 1
je 0x10060de4
sub eax, 1
jne 0x10060df4
shl ecx, 0x10
jmp 0x10060df4
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 0x10060e23
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060e1f
cmp dword [eax], 0
jne 0x10060e1f
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060e49
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x10060e39
sub eax, 1
jne 0x10060e49
shl ecx, 0x10
jmp 0x10060e49
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 0x10060e79
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060e75
cmp dword [eax], 0
jne 0x10060e75
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060eae
mov eax, dword [esp + 0x34]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10060e97
sub eax, 1
mov eax, dword [esp + 0x34]
mov ecx, dword [ecx + eax*8]
jne 0x10060eae
shl ecx, 0x10
jmp 0x10060eae
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 0x10060f39
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 0x10060eee
mov eax, dword [ebx + 4]
test eax, eax
je 0x10060eea
cmp dword [eax], 0
jne 0x10060eea
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10060f23
mov eax, dword [esp + 0x28]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10060f0c
sub eax, 1
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx + eax*8]
jne 0x10060f23
shl ecx, 0x10
jmp 0x10060f23
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 0x10060f3d
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.1005baf0
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 0x10060b40
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 0x1005cae1
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x10060fc9
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx edx, cl
jmp 0x10060fdc
mov eax, dword [esi]
test eax, eax
je 0x10060fda
cmp dword [eax], 0
jne 0x10060fda
mov dword [eax], 0x55
xor edx, edx
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x10060ffa
mov cl, byte [eax]
inc eax
shl edx, 8
mov dword [esi + 0xc], eax
movzx eax, cl
movsx edx, dx
or edx, eax
jmp 0x1005dab6
mov eax, dword [esi]
test eax, eax
je 0x1006100b
cmp dword [eax], 0
jne 0x1006100b
mov dword [eax], 0x55
shl edx, 8
xor eax, eax
movsx edx, dx
or edx, eax
jmp 0x1005dab6
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 0x1005cae1
cmp byte [esp + 0x28], 0xf6
ja 0x10061060
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 0x100610f0
jmp 0x1005dac9
cmp byte [esp + 0x28], 0xfa
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
ja 0x100610a8
shl edx, 8
cmp eax, ecx
jae 0x1006108b
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx eax, cl
lea esi, [eax - 0xf694]
add esi, edx
jmp 0x10061048
mov eax, dword [esi]
test eax, eax
je 0x1006109c
cmp dword [eax], 0
jne 0x1006109c
mov dword [eax], 0x55
xor eax, eax
lea esi, [eax - 0xf694]
add esi, edx
jmp 0x10061048
cmp byte [esp + 0x28], 0xfe
ja 0x10061111
shl edx, 8
cmp eax, ecx
jae 0x100610c1
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx eax, cl
jmp 0x100610d4
mov eax, dword [esi]
test eax, eax
je 0x100610d2
cmp dword [eax], 0
jne 0x100610d2
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 0x1005dac9
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 0x1005cae1
cmp eax, ecx
jae 0x10061120
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx edx, cl
jmp 0x10061133
mov eax, dword [esi]
test eax, eax
je 0x10061131
cmp dword [eax], 0
jne 0x10061131
mov dword [eax], 0x55
xor edx, edx
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x10061146
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx edi, cl
jmp 0x10061159
mov eax, dword [esi]
test eax, eax
je 0x10061157
cmp dword [eax], 0
jne 0x10061157
mov dword [eax], 0x55
xor edi, edi
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x1006116c
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movzx esi, cl
jmp 0x1006117f
mov eax, dword [esi]
test eax, eax
je 0x1006117d
cmp dword [eax], 0
jne 0x1006117d
mov dword [eax], 0x55
xor esi, esi
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 8]
jae 0x1006119e
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 0x100611b1
mov eax, dword [ecx]
test eax, eax
je 0x100611af
cmp dword [eax], 0
jne 0x100611af
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 0x100611f8
cmp edx, 0x7d00
jg 0x100611da
cmp edx, 0xffff8300
jge 0x100611ef
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 0x1005dab6
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 0x1005dac9
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 0x1005cae1
cmp dword [eax - 4], 2
je 0x1006124c
mov eax, dword [ebx + 4]
test eax, eax
je 0x10061248
cmp dword [eax], 0
jne 0x10061248
mov dword [eax], 0xa0
xor edx, edx
jmp 0x10061254
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 0x10061276
mov eax, dword [ebx + 4]
test eax, eax
je 0x10061272
cmp dword [eax], 0
jne 0x10061272
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1006129a
cmp dword [eax - 4], 2
je 0x10061292
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006128e
cmp dword [eax], 0
jne 0x1006128e
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x1006129a
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 0x100612bc
mov eax, dword [ebx + 4]
test eax, eax
je 0x100612b8
cmp dword [eax], 0
jne 0x100612b8
mov dword [eax], 0xa1
xor edi, edi
jmp 0x100612e6
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x100612d6
sub eax, 1
jne 0x100612e6
shl edi, 0x10
jmp 0x100612e6
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 0x10061304
mov eax, dword [ebx + 4]
test eax, eax
je 0x10061300
cmp dword [eax], 0
jne 0x10061300
mov dword [eax], 0xa1
xor esi, esi
jmp 0x1006132e
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1006131e
sub eax, 1
jne 0x1006132e
shl esi, 0x10
jmp 0x1006132e
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 0x1006134c
mov eax, dword [ebx + 4]
test eax, eax
je 0x10061348
cmp dword [eax], 0
jne 0x10061348
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x10061376
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ebp, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x10061366
sub eax, 1
jne 0x10061376
shl ebp, 0x10
jmp 0x10061376
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
cmp byte [esp + 0x3f20], 0
je 0x1006138a
mov eax, 0x12
jmp 0x100619af
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x2f], 0
je 0x1006139e
mov eax, 0x12
jmp 0x100619af
cmp dword [eax + 0x244], 0
jne 0x100613c5
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x80]
cmp dword [eax + 0x34], 0
jne 0x100613c1
mov eax, 0x12
jmp 0x100619af
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 0x100613fc
mov edx, ecx
mov ecx, dword [esp + 0x2c]
call fcn.10058560
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x58], eax
call fcn.10058560
mov edx, eax
mov dword [esp + 0x38], edx
cmp dword [esp + 0x58], 0
jl 0x10061380
test edx, edx
js 0x10061380
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x2e], 0
je 0x100614d8
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.10048490
test eax, eax
jne 0x100619af
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 0x100619af
mov ecx, dword [eax + 0xc]
call fcn.100485e0
mov edx, dword [esp + 0x58]
lea eax, [esp + 0x3e60]
mov ecx, dword [esp + 0x2c]
push eax
call fcn.1005a470
test eax, eax
jne 0x100619af
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.1005c520
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 0x10061591
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 0x100615b8
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.1005a470
test eax, eax
jne 0x100619af
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.1005c520
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 0x10061654
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 0x100619af
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
je 0x10061692
cmp eax, 5
jne 0x100616e6
cmp byte [esp + 0x27], 0
jne 0x100616e6
test eax, eax
jne 0x100616b3
mov eax, dword [ebx + 4]
test eax, eax
je 0x100616af
cmp dword [eax], 0
jne 0x100616af
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100616d7
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x100616c7
sub eax, 1
jne 0x100616d7
shl ecx, 0x10
jmp 0x100616d7
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 0x100614cf
cmp byte [esp + 0x2ec8], 0
je 0x1006177c
push dword [esp + 0x2f14]
mov edx, dword [esp + 0x2f14]
lea ecx, [esp + 0x13c]
mov byte [esp + 0x2ecd], 1
call fcn.1005b970
cmp byte [esp + 0x2f18], 0
je 0x1006175c
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.1005b3e0
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 0x100614cf
cmp byte [edi + 8], 0
jne 0x100614cf
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov edx, dword [ebx + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
jbe 0x100614cf
cmp byte [esp + 0x3f20], 0
je 0x100617ba
mov eax, 0x12
jmp 0x100619af
cmp ecx, edx
jne 0x100617d4
mov eax, dword [ebx + 4]
test eax, eax
je 0x100617d0
cmp dword [eax], 0
jne 0x100617d0
mov dword [eax], 0xa1
xor edx, edx
jmp 0x100617f8
cmp dword [ecx - 4], 2
je 0x100617f0
mov eax, dword [ebx + 4]
test eax, eax
je 0x100617ec
cmp dword [eax], 0
jne 0x100617ec
mov dword [eax], 0xa0
xor edx, edx
jmp 0x100617f8
lea eax, [ecx - 8]
mov dword [ebx + 0xc], eax
mov edx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jne 0x10061816
mov eax, dword [ebx + 4]
test eax, eax
je 0x10061812
cmp dword [eax], 0
jne 0x10061812
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x1006183a
cmp dword [eax - 4], 2
je 0x10061832
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006182e
cmp dword [eax], 0
jne 0x1006182e
mov dword [eax], 0xa0
xor ebp, ebp
jmp 0x1006183a
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov ebp, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jne 0x10061858
mov eax, dword [ebx + 4]
test eax, eax
je 0x10061854
cmp dword [eax], 0
jne 0x10061854
mov dword [eax], 0xa1
xor edi, edi
jmp 0x10061882
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov edi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x10061872
sub eax, 1
jne 0x10061882
shl edi, 0x10
jmp 0x10061882
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 0x100618a0
mov eax, dword [ebx + 4]
test eax, eax
je 0x1006189c
cmp dword [eax], 0
jne 0x1006189c
mov dword [eax], 0xa1
xor esi, esi
jmp 0x100618ca
add eax, 0xfffffff8
mov dword [ebx + 0xc], eax
mov esi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x100618ba
sub eax, 1
jne 0x100618ca
shl esi, 0x10
jmp 0x100618ca
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.1005a3b0
test eax, eax
jne 0x100619af
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.1005c520
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.1005a3b0
test eax, eax
jne 0x100619af
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.1005c520
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 0x100619af
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 0x100619be
cmp dword [ecx], 0
jne 0x100619be
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 0x100619f8
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 0x10061a3d
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 0x10061a82
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 0x10061aa5
mov edx, eax
mov eax, dword [esp + 0xe0]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
test ebx, ebx
je 0x10061ac9
mov edx, dword [ebx + 8]
mov edi, dword [ebx]
test edx, edx
je 0x10061ab9
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.101b579a
add esp, 0x3f04
ret 0x18