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

Disassembly:
mov eax, 0x3ef4
call fcn.1017e400
push ebx
push ebp
push esi
xor eax, eax
mov dword [esp + 0x38], edx
push edi
mov edi, ecx
mov dword [esp + 0x6c], eax
push 0x80
mov dword [esp + 0x48], edi
mov dword [esp + 0x74], 0x1312d00
mov eax, dword [edi + 0xb0]
lea ebx, [edi + 4]
mov esi, dword [edi + 0x34]
mov ebp, dword [edi]
mov dword [esp + 0x28], eax
mov eax, dword [eax + 0x218]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x80], esi
mov eax, dword [eax + 0x220]
shl eax, 0x10
mov dword [esp + 0x84], eax
xor eax, eax
push eax
mov dword [esp + 0x58], eax
mov byte [esp + 0x68], al
mov byte [esp + 0x33], al
mov dword [esp + 0x60], eax
lea eax, [esp + 0x160]
push eax
call fcn.1017ea60
xor eax, eax
mov dword [esp + 0x98], 0
add esp, 0xc
mov dword [esp + 0x78], eax
vpxor xmm0, xmm0, xmm0
mov dword [esp + 0x120], eax
mov dword [esp + 0xf0], eax
push 0x2e08
push eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
lea eax, [esp + 0x1e0]
push eax
vmovq qword [esp + 0x90], xmm0
vmovdqu xmmword [esp + 0x130], xmm0
vmovq qword [esp + 0x140], xmm0
mov dword [esp + 0x110], ebp
mov dword [esp + 0x114], ebx
mov dword [esp + 0x118], 0x10
mov dword [esp + 0x11c], 0
mov dword [esp + 0x120], 0xa
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0xf0], ebp
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], 0x14
mov dword [esp + 0x100], 0xa
mov dword [esp + 0xd0], ebp
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], 0x14
mov dword [esp + 0xe0], 0xa
vmovlpd qword [esp + 0xb8], xmm0
vmovlpd qword [esp + 0xc0], xmm0
vmovlpd qword [esp + 0xc8], xmm0
mov dword [esp + 0xb4], ebx
call fcn.1017ea60
mov eax, dword [esp + 0x3f14]
add esp, 0xc
vmovdqa xmm0, xmmword [0x10228b80]
mov dword [esp + 0x1d8], edi
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x2f34], ebp
mov dword [esp + 0x2f38], ebx
push 0xf1c
lea eax, [esp + 0x201c]
mov dword [esp + 0x2f50], 0
push 0
push eax
vmovdqu xmmword [esp + 0x2f48], xmm0
mov dword [esp + 0x2f5c], 0
call fcn.1017ea60
mov bl, byte [edi + 0xb8]
lea eax, [esp + 0x2024]
add esp, 0xc
mov dword [esp + 0x201c], eax
lea eax, [esp + 0x2f34]
mov byte [esp + 0x2025], bl
mov dword [esp + 0x2020], eax
lea eax, [esp + 0x10fc]
mov dword [esp + 0x2028], esi
push 0xf1c
push 0
push eax
mov dword [esp + 0x2024], edi
call fcn.1017ea60
add esp, 0xc
mov byte [esp + 0x1109], bl
lea eax, [esp + 0x2018]
mov dword [esp + 0x110c], esi
mov dword [esp + 0x1100], eax
lea eax, [esp + 0x2f34]
mov dword [esp + 0x1104], eax
lea eax, [esp + 0x1e0]
push 0xf1c
push 0
push eax
mov dword [esp + 0x1108], edi
call fcn.1017ea60
mov ecx, dword [esp + 0x3f18]
lea eax, [esp + 0x2024]
mov dword [esp + 0x1f0], eax
add esp, 0xc
lea eax, [esp + 0x2f34]
mov dword [esp + 0x1f0], esi
mov dword [esp + 0x1e8], eax
mov eax, dword [edi + 0x28]
mov dword [esp + 0x2f54], eax
mov eax, dword [edi + 0x30]
mov dword [esp + 0x2f58], eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x2f60], eax
lea eax, [esp + 0xe4]
mov dword [esp + 0x2f6c], eax
lea eax, [esp + 0xc4]
mov dword [esp + 0x2f70], eax
lea eax, [esp + 0xa8]
mov dword [esp + 0x2f74], eax
mov eax, dword [esp + 0x3f18]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2f78], eax
lea eax, [edi + 0xf0]
mov dword [esp + 0x2f7c], eax
mov al, byte [edi + 0xb9]
mov byte [esp + 0x2f6a], al
mov dword [esp + 0x2f5c], esi
mov esi, dword [edi + 0xe4]
mov eax, esi
cdq
mov dword [esp + 0x2f64], ecx
mov ecx, eax
xor ecx, edx
mov dword [esp + 0x1e0], edi
mov edi, dword [edi + 0xe8]
sub ecx, edx
mov eax, edi
mov byte [esp + 0x1ed], bl
cdq
xor eax, edx
mov dword [esp + 0x2f80], esi
sub eax, edx
mov dword [esp + 0x2f84], edi
cmp ecx, eax
jle 0x1004d23a
test esi, esi
jmp 0x1004d23e
mov esi, edi
test edi, edi
jns 0x1004d242
neg esi
mov ecx, dword [esp + 0x24]
lea eax, [esi + esi]
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x3f1c]
mov dword [esp + 0x2f88], eax
mov dword [esp + 0x2f8c], 0x199a
cmp byte [edx + 9], 0
mov byte [esp + 0x2f6b], 1
mov word [esp + 0x2f68], 0
setne byte [esp + 0x23]
mov byte [esp + 0x2fb8], 0
mov eax, dword [ecx + 0x218]
mov eax, dword [eax + 0x21c]
shl eax, 0x10
mov dword [esi], eax
cmp byte [edx + 9], 0
je 0x1004d2ae
mov eax, dword [ecx + 0x214]
mov ebx, dword [eax + 0x614]
jmp 0x1004d2b3
mov ebx, 0x30
mov eax, dword [ebp + 4]
mov edx, 0x14
mov ecx, ebp
mov dword [esp + 0x74], ebx
call eax
mov esi, eax
test esi, esi
je 0x1005124c
mov eax, dword [esp + 0x64]
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi], ebp
mov dword [esi + 4], eax
test ebx, ebx
js 0x1005123c
je 0x1004d346
cmp ebx, 0xfffffff
jg 0x1005123c
mov eax, dword [ebp + 4]
lea edx, [ebx*8]
mov ecx, ebp
call eax
mov edi, eax
xor ecx, ecx
test edi, edi
mov eax, 0x40
cmovne eax, ecx
mov ecx, edi
je 0x1004d33a
test ebx, ebx
jle 0x1004d33a
lea eax, [ebx*8]
push eax
push 0
push edi
call fcn.1017ea60
add esp, 0xc
jmp 0x1004d348
mov dword [esi + 8], ecx
test eax, eax
je 0x1004d34b
jmp 0x10051243
xor edi, edi
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
lea ecx, [esp + 0x104]
mov edi, 0x11
mov dword [esi + 0x10], ebx
mov edx, edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0xa4], esi
call fcn.10049b60
mov ecx, dword [esp + 0x118]
test al, al
mov eax, dword [esp + 0x64]
cmovne ecx, edi
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x120]
mov ebx, ecx
cmp dword [eax], 0
mov dword [esp + 0x78], ecx
mov dword [esp + 0x18], ebx
jne 0x10050f1f
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x108]
mov edi, dword [esp + 0x3f14]
mov ebp, dword [esp + 0x1c]
vmovdqu xmm0, xmmword [eax]
mov eax, dword [esp + 0x10c]
vmovdqu xmmword [ecx], xmm0
xor ecx, ecx
mov dword [esp + 0x68], esi
mov dword [esp + 0xa0], eax
mov dword [esp + 0x98], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jb 0x1004d405
test ecx, ecx
mov ebx, 0xb
mov eax, 0xe
cmove ebx, eax
mov dword [esp + 0x34], ebx
jmp 0x1004d432
mov cl, byte [eax]
inc eax
mov dword [ebx + 0xc], eax
mov bl, cl
mov dword [esp + 0x34], ebx
cmp cl, 0xb
je 0x1004d41b
cmp cl, 0xe
jne 0x1004d42e
mov ecx, dword [esp + 0x44]
xor edx, edx
movzx ebx, bl
cmp byte [ecx + 9], dl
cmovne ebx, edx
mov dword [esp + 0x34], ebx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
mov al, byte [eax + 8]
mov ah, byte [esp + 0x2b]
test al, al
je 0x1004d4cf
test ah, ah
jne 0x1004d480
cmp bl, 1
je 0x1004d480
cmp bl, 3
je 0x1004d480
cmp bl, 0xd
je 0x1004d480
cmp bl, 0xa
je 0x1004d480
cmp bl, 0xb
je 0x1004d480
cmp bl, 0xc
je 0x1004d480
cmp bl, 0xe
je 0x1004d480
cmp bl, 0x20
jae 0x1004d480
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
mov edx, dword [esp + 0x58]
test edx, edx
jle 0x1004d4ab
cmp bl, 0xa
je 0x1004d4ab
cmp bl, 0xb
je 0x1004d4ab
cmp bl, 0xc
je 0x1004d4ab
cmp bl, 0x20
mov dword [esp + 0x3c], 0
cmovb edx, dword [esp + 0x3c]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x60]
test dl, dl
je 0x1004d4cf
cmp bl, 0x20
jae 0x1004d4cf
cmp bl, 0xc
movzx edx, dl
mov dword [esp + 0x3c], 0
cmovne edx, dword [esp + 0x3c]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x64]
cmp dword [edx], 0
jne 0x10050f1f
sub dword [esp + 0x70], 1
je 0x1004e5c1
movzx edx, bl
cmp edx, 0x1f
ja case.default.0x1004d4f3
jmp dword [edx*4 + 0x10051378]
mov ebx, dword [esp + 0x44]
cmp byte [ebx + 9], 0
je case.0x1004d4f3.0
cmp byte [ebx + 0x5d], 0
jne 0x1004e5c1
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004d53c
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d528
cmp dword [eax], 0
jne 0x1004d528
mov dword [eax], 0xa1
xor eax, eax
mov dword [ebx + 0x78], eax
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
cmp dword [eax - 4], 2
je 0x1004d568
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d554
cmp dword [eax], 0
jne 0x1004d554
mov dword [eax], 0xa0
xor eax, eax
mov dword [ebx + 0x78], eax
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
test eax, eax
js case.0x1004d4f3.0
mov dword [ebx + 0x78], eax
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
mov ebx, dword [esp + 0x44]
cmp byte [ebx + 9], 0
je case.0x1004d4f3.0
cmp dword [ebx + 0x60], 0
je 0x1004e5c1
mov eax, dword [ebx + 0x224]
lea ecx, [ebx + 0x5c]
push dword [ebx + 0x80]
mov edx, dword [ebx + 0x78]
push dword [ebx + 0x7c]
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x1004d5de
mov eax, dword [ebx + 0x224]
lea ecx, [ebx + 0x5c]
push dword [ebx + 0x80]
mov edx, dword [ebx + 0x78]
push dword [ebx + 0x7c]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 0x6c], eax
test eax, eax
jne 0x10050f1f
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004d5fc
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d5f8
cmp dword [eax], 0
jne 0x1004d5f8
mov dword [eax], 0xa1
xor eax, eax
jmp 0x1004d620
cmp dword [eax - 4], 2
je 0x1004d618
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d614
cmp dword [eax], 0
jne 0x1004d614
mov dword [eax], 0xa0
xor eax, eax
jmp 0x1004d620
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
cmp eax, dword [esp + 0x74]
ja 0x1004e5c1
push eax
mov edx, esi
lea ecx, [ebx + 0x5c]
call fcn.1004ccb0
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov byte [ebx + 0x5d], 1
mov ebx, dword [esp + 0x18]
jmp 0x1004d3e8
test al, al
jne 0x1004d65f
cmp byte [esp + 0xac], al
jne case.0x1004d4f3.0
xor eax, eax
jmp 0x1004d669
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x20]
mov eax, dword [eax + 4]
push eax
lea eax, [esp + 0x27]
push eax
lea eax, [esp + 0xec]
push dword [esp + 0x3f24]
mov ecx, dword [esp + 0x50]
mov edx, esi
push eax
call fcn.1004c7f0
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x224], 0
jne 0x10050f1f
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
test al, al
jne 0x1004d6cf
cmp byte [esp + 0xac], al
jne case.0x1004d4f3.0
xor eax, eax
push eax
lea eax, [esp + 0x27]
push eax
lea eax, [esp + 0xcc]
jmp 0x1004d676
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x20]
mov eax, dword [eax]
push eax
lea eax, [esp + 0x27]
push eax
lea eax, [esp + 0xcc]
jmp 0x1004d676
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp eax, 1
jbe 0x1004d734
cmp byte [esp + 0x23], 0
jne 0x1004d734
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1004d712
sub eax, 1
jne 0x1004d722
shl ecx, 0x10
jmp 0x1004d722
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x80]
add eax, ecx
mov ecx, dword [esp + 0x3f1c]
mov dword [ecx], eax
mov edx, dword [esp + 0x24]
mov byte [esp + 0x23], 1
cmp byte [edx + 0x224], 0
jne 0x10050f1f
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004d768
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d764
cmp dword [eax], 0
jne 0x1004d764
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004d792
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004d782
sub eax, 1
jne 0x1004d792
shl ecx, 0x10
jmp 0x1004d792
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
add ebp, ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x3f18], ebp
cmp dword [edx + 0x1d4], 0
jne 0x1004feaf
push ebp
mov edx, edi
lea ecx, [esp + 0x1dc]
call fcn.1004c310
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
mov ebp, dword [esi + 0xc]
xor ebx, ebx
sub ebp, dword [esi + 8]
sar ebp, 3
test ebp, ebp
je 0x10050b72
mov ecx, dword [esi + 0xc]
mov eax, ecx
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp ebx, eax
jb 0x1004d80e
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d80a
cmp dword [eax], 0
jne 0x1004d80a
mov dword [eax], 0x82
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor edi, edi
jmp 0x1004d834
mov eax, dword [edx + ebx*8 + 4]
mov edi, dword [edx + ebx*8]
sub eax, 1
je 0x1004d824
sub eax, 1
jne 0x1004d834
shl edi, 0x10
jmp 0x1004d834
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
add dword [esp + 0x10], edi
lea eax, [ebx + 1]
mov edi, dword [esp + 0x10]
sub ecx, edx
sar ecx, 3
mov dword [esp + 0x3f14], edi
cmp eax, ecx
jb 0x1004d865
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d861
cmp dword [eax], 0
jne 0x1004d861
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004d88c
mov eax, dword [edx + ebx*8 + 0xc]
mov ecx, dword [edx + ebx*8 + 8]
sub eax, 1
je 0x1004d87c
sub eax, 1
jne 0x1004d88c
shl ecx, 0x10
jmp 0x1004d88c
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
mov edx, edi
add eax, ecx
lea ecx, [esp + 0x1d8]
push eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x3f1c], eax
call fcn.1004c3a0
add ebx, 2
cmp ebx, ebp
jb 0x1004d7e1
mov eax, dword [esi + 8]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
mov ebp, dword [esi + 0xc]
sub ebp, dword [esi + 8]
sar ebp, 3
cmp bl, 6
sete bl
xor edi, edi
test ebp, ebp
je 0x1004d97c
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x1004d90c
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d908
cmp dword [eax], 0
jne 0x1004d908
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004d932
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x1004d922
sub eax, 1
jne 0x1004d932
shl ecx, 0x10
jmp 0x1004d932
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test bl, bl
je 0x1004d949
mov eax, dword [esp + 0x10]
add eax, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x3f14], eax
jmp 0x1004d95e
mov eax, dword [esp + 0x1c]
add eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3f18], eax
mov eax, dword [esp + 0x10]
push dword [esp + 0x1c]
mov edx, eax
lea ecx, [esp + 0x1dc]
xor bl, 1
call fcn.1004c3a0
inc edi
cmp edi, ebp
jb 0x1004d8e7
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
mov eax, dword [esi + 0xc]
xor ebp, ebp
sub eax, dword [esi + 8]
sar eax, 3
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], ebp
cmp eax, 6
jb 0x1004dc14
lea ebx, [ebp + 2]
mov edi, dword [esi + 0xc]
mov eax, edi
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp ebp, eax
jb 0x1004d9e3
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d9df
cmp dword [eax], 0
jne 0x1004d9df
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1004da0a
mov eax, dword [edx + ebx*8 - 0xc]
mov ecx, dword [edx + ebx*8 - 0x10]
sub eax, 1
je 0x1004d9fa
sub eax, 1
jne 0x1004da0a
shl ecx, 0x10
jmp 0x1004da0a
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x10]
add eax, ecx
mov ecx, edi
sub ecx, edx
mov dword [esp + 0x4c], eax
sar ecx, 3
lea eax, [ebx - 1]
cmp eax, ecx
jb 0x1004da3e
mov eax, dword [esi + 4]
test eax, eax
je 0x1004da3a
cmp dword [eax], 0
jne 0x1004da3a
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1004da65
mov eax, dword [edx + ebx*8 - 4]
mov ecx, dword [edx + ebx*8 - 8]
sub eax, 1
je 0x1004da55
sub eax, 1
jne 0x1004da65
shl ecx, 0x10
jmp 0x1004da65
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebp, dword [esp + 0x1c]
mov eax, edi
sub eax, edx
add ebp, ecx
sar eax, 3
mov dword [esp + 0x3c], ebp
cmp ebx, eax
jb 0x1004da96
mov eax, dword [esi + 4]
test eax, eax
je 0x1004da92
cmp dword [eax], 0
jne 0x1004da92
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1004dabc
mov eax, dword [edx + ebx*8 + 4]
mov ecx, dword [edx + ebx*8]
sub eax, 1
je 0x1004daac
sub eax, 1
jne 0x1004dabc
shl ecx, 0x10
jmp 0x1004dabc
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x4c]
add eax, ecx
mov ecx, edi
sub ecx, edx
mov dword [esp + 0x48], eax
sar ecx, 3
lea eax, [ebx + 1]
cmp eax, ecx
jb 0x1004daf0
mov eax, dword [esi + 4]
test eax, eax
je 0x1004daec
cmp dword [eax], 0
jne 0x1004daec
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1004db17
mov eax, dword [edx + ebx*8 + 0xc]
mov ecx, dword [edx + ebx*8 + 8]
sub eax, 1
je 0x1004db07
sub eax, 1
jne 0x1004db17
shl ecx, 0x10
jmp 0x1004db17
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
add ebp, ecx
lea eax, [ebx + 2]
mov ecx, edi
sub ecx, edx
sar ecx, 3
cmp eax, ecx
jb 0x1004db43
mov eax, dword [esi + 4]
test eax, eax
je 0x1004db3f
cmp dword [eax], 0
jne 0x1004db3f
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1004db6a
mov eax, dword [edx + ebx*8 + 0x14]
mov ecx, dword [edx + ebx*8 + 0x10]
sub eax, 1
je 0x1004db5a
sub eax, 1
jne 0x1004db6a
shl ecx, 0x10
jmp 0x1004db6a
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x48]
sub edi, edx
add eax, ecx
sar edi, 3
mov dword [esp + 0x10], eax
lea eax, [ebx + 3]
cmp eax, edi
jb 0x1004db96
mov eax, dword [esi + 4]
test eax, eax
je 0x1004db92
cmp dword [eax], 0
jne 0x1004db92
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004dbbd
mov eax, dword [edx + ebx*8 + 0x1c]
mov ecx, dword [edx + ebx*8 + 0x18]
sub eax, 1
je 0x1004dbad
sub eax, 1
jne 0x1004dbbd
shl ecx, 0x10
jmp 0x1004dbbd
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edi, dword [esp + 0x10]
lea eax, [ecx + ebp]
mov edx, dword [esp + 0x4c]
lea ecx, [esp + 0x1d8]
push eax
push edi
push ebp
push dword [esp + 0x54]
mov dword [esp + 0x2c], eax
push dword [esp + 0x4c]
call fcn.1004c520
mov eax, dword [esp + 0x1c]
add ebx, 6
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x3f18], eax
add ebp, 6
mov dword [esp + 0x3f14], edi
lea eax, [ebx + 4]
mov dword [esp + 0x38], ebp
cmp eax, dword [esp + 0x2c]
jbe 0x1004d9b6
mov ebx, dword [esp + 0x34]
cmp bl, 0x18
jne 0x10050b72
mov ecx, dword [esi + 0xc]
mov eax, ecx
mov edi, dword [esi + 8]
sub eax, edi
sar eax, 3
cmp ebp, eax
jb 0x1004dc4a
mov eax, dword [esi + 4]
test eax, eax
je 0x1004dc46
cmp dword [eax], 0
jne 0x1004dc46
mov dword [eax], 0x82
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
xor edx, edx
jmp 0x1004dc70
mov eax, dword [edi + ebp*8 + 4]
mov edx, dword [edi + ebp*8]
sub eax, 1
je 0x1004dc60
sub eax, 1
jne 0x1004dc70
shl edx, 0x10
jmp 0x1004dc70
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esp + 0x10]
sub ecx, edi
add eax, edx
sar ecx, 3
mov dword [esp + 0x10], eax
mov dword [esp + 0x3f14], eax
lea eax, [ebp + 1]
cmp eax, ecx
jb 0x1004dca3
mov eax, dword [esi + 4]
test eax, eax
je 0x1004dc9f
cmp dword [eax], 0
jne 0x1004dc9f
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004dcc9
mov ecx, dword [edi + eax*8]
mov eax, dword [edi + eax*8 + 4]
sub eax, 1
je 0x1004dcb9
sub eax, 1
jne 0x1004dcc9
shl ecx, 0x10
jmp 0x1004dcc9
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
add eax, ecx
push eax
mov edx, edi
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x1dc]
mov dword [esp + 0x3f1c], eax
call fcn.1004c3a0
mov eax, dword [esi + 8]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
test al, al
je case.0x1004d4f3.0
cmp byte [esp + 0x2f68], 0
je 0x1004dd87
push dword [esp + 0x2fb4]
mov edx, dword [esp + 0x2fb4]
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x2f6d], 1
call fcn.1004c3a0
cmp byte [esp + 0x2fb8], 0
je 0x1004dd6d
push 1
push dword [esp + 0x2fa0]
lea eax, [esp + 0x2f98]
push dword [esp + 0x2fa0]
lea edx, [esp + 0x1ec]
push eax
lea ecx, [esp + 0x1e8]
call fcn.1004beb0
mov byte [esp + 0x2f6b], 1
mov word [esp + 0x2f68], 0
mov byte [esp + 0x2fb8], 0
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x23], 1
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
cmp ecx, 0x10
jg 0x1004e5c1
inc ecx
cmp ecx, dword [esp + 0x9c]
jb 0x1004ddca
mov eax, dword [esp + 0x98]
test eax, eax
je 0x1004ddc8
cmp dword [eax], 0
jne 0x1004ddc8
mov dword [eax], 0x82
xor ecx, ecx
mov eax, dword [esp + 0xa0]
imul eax, ecx
add eax, dword [esp + 0x78]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004ddfa
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ddf6
cmp dword [eax], 0
jne 0x1004ddf6
mov dword [eax], 0xa1
xor eax, eax
jmp 0x1004de1e
cmp dword [eax - 4], 2
je 0x1004de16
mov eax, dword [esi + 4]
test eax, eax
je 0x1004de12
cmp dword [eax], 0
jne 0x1004de12
mov dword [eax], 0xa0
xor eax, eax
jmp 0x1004de1e
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
cmp byte [ecx + 8], 0
je 0x1004de54
mov ecx, dword [edx + 0x268]
test ecx, ecx
je 0x1004de54
push eax
call fcn.1003a010
mov edx, dword [esp + 0x24]
mov ecx, dword [eax]
lea eax, [ecx + 4]
neg ecx
sbb ecx, ecx
and ecx, eax
je 0x1004de51
mov eax, dword [ecx]
jmp 0x1004de54
or eax, 0xffffffff
cmp bl, 0x1d
mov ebx, dword [esp + 0x18]
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [ebx], xmm0
je 0x1004df25
mov ecx, dword [edx + 0x234]
add ecx, eax
cmp ecx, dword [edx + 0x22c]
jae 0x1004e5c1
mov eax, dword [esp + 0x24]
lea edx, [ecx*4]
mov eax, dword [eax + 0x23c]
mov ecx, dword [edx + eax]
mov eax, dword [esp + 0x24]
mov dword [ebx + 4], ecx
cmp byte [eax + 0x30], 0
je 0x1004ded9
mov eax, dword [eax + 0x264]
test eax, eax
je 0x1004deb7
test ecx, ecx
je 0x1004deb3
mov eax, dword [eax + edx]
add eax, ecx
jmp 0x1004dee3
xor eax, eax
jmp 0x1004dee3
mov eax, dword [esp + 0x24]
mov dword [esp + 0x3c], 0
mov eax, dword [eax + 0x260]
test eax, eax
cmovs eax, dword [esp + 0x3c]
add eax, ecx
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x23c]
mov eax, dword [edx + eax + 4]
mov ecx, ebx
mov edx, 8
mov dword [ecx + edx], eax
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
inc ecx
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x68], esi
mov dword [esp + 0xa4], eax
jmp 0x1004d3e4
mov ecx, dword [edx + 0x238]
add ecx, eax
cmp ecx, dword [edx + 0x230]
jae 0x1004e5c1
mov eax, dword [edx + 0x240]
mov eax, dword [eax + ecx*4]
mov dword [ebx + 0xc], eax
mov dword [ebx + 4], eax
mov eax, dword [edx + 0x240]
mov eax, dword [eax + ecx*4 + 4]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 8], eax
inc ecx
jmp 0x1004d3e4
cmp ecx, 1
jl 0x1004e5c1
dec ecx
mov eax, ecx
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x9c]
jb 0x1004df90
mov edx, dword [esp + 0x98]
test edx, edx
je 0x1004df8e
cmp dword [edx], 0
jne 0x1004df8e
mov dword [edx], 0x82
xor eax, eax
mov ebx, dword [esp + 0xa0]
imul ebx, eax
add ebx, dword [esp + 0x78]
mov dword [esp + 0x18], ebx
jmp 0x1004d3e8
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x1004dfbb
mov dl, byte [eax]
inc eax
mov dword [ebx + 0xc], eax
jmp 0x1004dfce
mov eax, dword [ebx]
test eax, eax
je 0x1004dfcc
cmp dword [eax], 0
jne 0x1004dfcc
mov dword [eax], 0x55
xor dl, dl
movzx ecx, dl
mov byte [esp + 0x57], dl
lea eax, [ecx - 8]
cmp eax, 0x1d
ja case.0x1004dfe8.9
movzx eax, byte [eax + 0x10051410]
jmp dword [eax*4 + 0x100513f8]
push 0
push 0x101bd414
jmp 0x1004e052
push 0
push 0x101bd408
lea eax, [esp + 0x1e0]
mov ecx, esi
push eax
lea eax, [esp + 0x3f24]
push eax
lea edx, [esp + 0x3f24]
call fcn.1004c9d0
mov ebp, dword [esp + 0x3f18]
mov edi, dword [esp + 0x3f14]
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x10], edi
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
push 0
push 0x101bd3fc
jmp 0x1004e052
push 1
push 0x101bd3f0
lea eax, [esp + 0x1e0]
mov ecx, esi
push eax
lea eax, [esp + 0x3f24]
push eax
lea edx, [esp + 0x3f24]
call fcn.1004c9d0
mov ebp, dword [esp + 0x3f18]
mov edi, dword [esp + 0x3f14]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x10], edi
jmp 0x1004d3e8
mov eax, dword [esp + 0x44]
cmp byte [eax + 9], 0
jne case.0x1004e0d9.0
cmp dl, 0x26
jae case.0x1004e0d9.0
mov al, byte [eax + 8]
test al, al
je 0x1004e0d0
cmp dword [esp + 0x58], 0
jle 0x1004e0d0
cmp dl, 0x11
je 0x1004e0d0
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x58], 0
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
cmp ecx, 0x21
ja case.0x1004e0d9.0
jmp dword [ecx*4 + 0x10051430]
test al, al
je case.0x1004e0d9.0
xor edx, edx
mov ecx, esi
call fcn.100515c0
mov edi, dword [esi + 0xc]
mov ecx, edi
mov edx, dword [esi + 8]
sub ecx, edx
sar ecx, 3
mov dword [esp + 0x3c], eax
cmp ecx, 2
ja 0x1004e123
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e11f
cmp dword [eax], 0
jne 0x1004e11f
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebp, ebp
jmp 0x1004e148
mov eax, dword [edx + 0x14]
mov ebp, dword [edx + 0x10]
sub eax, 1
je 0x1004e138
sub eax, 1
jne 0x1004e148
shl ebp, 0x10
jmp 0x1004e148
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
mov eax, edi
sub eax, edx
sar eax, 3
cmp eax, 4
ja 0x1004e174
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e170
cmp dword [eax], 0
jne 0x1004e170
mov dword [eax], 0x82
mov eax, dword [esp + 0x5c]
mov edi, dword [eax + 0xc]
mov edx, dword [eax + 8]
xor ebx, ebx
jmp 0x1004e199
mov eax, dword [edx + 0x24]
mov ebx, dword [edx + 0x20]
sub eax, 1
je 0x1004e189
sub eax, 1
jne 0x1004e199
shl ebx, 0x10
jmp 0x1004e199
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
mov eax, edi
sub eax, edx
sar eax, 3
cmp eax, 1
ja 0x1004e1c5
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e1c1
cmp dword [eax], 0
jne 0x1004e1c1
mov dword [eax], 0x82
mov eax, dword [esp + 0x5c]
mov edi, dword [eax + 0xc]
mov edx, dword [eax + 8]
xor ecx, ecx
jmp 0x1004e1ea
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 8]
sub eax, 1
je 0x1004e1da
sub eax, 1
jne 0x1004e1ea
shl ecx, 0x10
jmp 0x1004e1ea
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
sub edi, edx
sar edi, 3
cmp edi, 2
jae 0x1004e208
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e21d
cmp dword [eax], 0
jne 0x1004e21d
mov dword [eax], 0x82
jmp 0x1004e21d
mov eax, ebp
sub eax, ecx
sub eax, dword [esp + 0x3c]
mov dword [edx + 0x10], eax
mov eax, dword [esi + 8]
mov dword [eax + 0x14], 0
mov ecx, dword [esi + 0xc]
mov eax, ecx
mov edi, dword [esi + 8]
sub eax, edi
sar eax, 3
cmp eax, 3
ja 0x1004e24b
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e247
cmp dword [eax], 0
jne 0x1004e247
mov dword [eax], 0x82
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
xor edx, edx
jmp 0x1004e270
mov eax, dword [edi + 0x1c]
mov edx, dword [edi + 0x18]
sub eax, 1
je 0x1004e260
sub eax, 1
jne 0x1004e270
shl edx, 0x10
jmp 0x1004e270
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
sub ecx, edi
sar ecx, 3
cmp ecx, 4
jae 0x1004e28e
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e29f
cmp dword [eax], 0
jne 0x1004e29f
mov dword [eax], 0x82
jmp 0x1004e29f
sub ebx, edx
sub ebx, ebp
mov dword [edi + 0x20], ebx
mov eax, dword [esi + 8]
mov dword [eax + 0x24], 0
cmp byte [esp + 0x57], 1
mov ebx, dword [esp + 0x24]
mov eax, dword [ebx + 0x20]
jne 0x1004e2b1
mov eax, dword [eax]
jmp 0x1004e2b4
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0xe4]
push eax
lea eax, [esp + 0x27]
push eax
push dword [esp + 0x3f24]
lea eax, [esp + 0xd0]
cmovne eax, edx
mov edx, esi
push eax
call fcn.1004c7f0
cmp byte [ebx + 0x224], 0
jne 0x10050f1f
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x1004e32c
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e328
cmp dword [eax], 0
jne 0x1004e328
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebx, ebx
jmp 0x1004e358
lea eax, [ecx - 8]
mov ecx, eax
mov dword [esi + 0xc], eax
mov eax, dword [eax + 4]
mov ebx, dword [ecx]
sub eax, 1
je 0x1004e348
sub eax, 1
jne 0x1004e358
shl ebx, 0x10
jmp 0x1004e358
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
cmp ecx, edx
jne 0x1004e3bf
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e378
cmp dword [eax], 0
jne 0x1004e378
mov dword [eax], 0xa1
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
xor edi, edi
mov eax, dword [esi + 0x10]
lea eax, [edx + eax*8]
cmp ecx, eax
jne 0x1004e4ab
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x1004d3e8
cmp dword [eax], 0
jne 0x1004d3e8
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
jmp 0x1004d3e8
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1004e3d9
sub eax, 1
jne 0x1004e3e9
shl edi, 0x10
jmp 0x1004e3e9
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
test edi, edi
je 0x1004e378
test ebx, ebx
je 0x1004e378
mov edi, 1
jmp 0x1004e37a
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x1004e41e
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e41a
cmp dword [eax], 0
jne 0x1004e41a
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebx, ebx
jmp 0x1004e44a
lea eax, [ecx - 8]
mov ecx, eax
mov dword [esi + 0xc], eax
mov eax, dword [eax + 4]
mov ebx, dword [ecx]
sub eax, 1
je 0x1004e43a
sub eax, 1
jne 0x1004e44a
shl ebx, 0x10
jmp 0x1004e44a
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
cmp ecx, edx
jne 0x1004e46c
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e49e
cmp dword [eax], 0
jne 0x1004e49e
mov dword [eax], 0xa1
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
jmp 0x1004e49e
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1004e486
sub eax, 1
jne 0x1004e496
shl edi, 0x10
jmp 0x1004e496
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
test edi, edi
jne 0x1004e3f1
test ebx, ebx
jne 0x1004e3f1
jmp 0x1004e378
mov ebx, dword [esp + 0x18]
mov dword [ecx], edi
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x1004d3e8
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
cmp ecx, edi
jne 0x1004e4f2
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e4ee
cmp dword [eax], 0
jne 0x1004e4ee
mov dword [eax], 0xa1
mov edi, dword [esi + 8]
mov ecx, dword [esi + 0xc]
xor edx, edx
jmp 0x1004e51e
lea eax, [ecx - 8]
mov ecx, eax
mov dword [esi + 0xc], eax
mov eax, dword [eax + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1004e50e
sub eax, 1
jne 0x1004e51e
shl edx, 0x10
jmp 0x1004e51e
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esi + 0x10]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x10]
cmp ecx, eax
jne 0x1004e557
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d3e8
cmp dword [eax], 0
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
jne 0x1004d3e8
mov dword [eax], 0x82
jmp 0x1004d3e8
xor eax, eax
test edx, edx
sete al
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x1004d3e8
test al, al
je case.0x1004e0d9.0
mov eax, dword [esp + 0x24]
mov ecx, esi
mov edx, dword [eax + 4]
call fcn.10051520
mov ebp, eax
call fcn.10051520
mov ebx, eax
call fcn.10051570
mov ecx, esi
mov dword [esp + 0x74], eax
call fcn.10051570
mov ecx, esi
mov edi, eax
call fcn.10051570
cmp byte [esp + 0x3f10], 0
mov dword [esp + 0x70], eax
je 0x10050e0b
mov eax, 0x12
jmp 0x10051251
test al, al
je case.0x1004e0d9.0
mov ecx, esi
call fcn.10051570
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x24]
mov dword [ecx + 4], eax
mov ecx, esi
call fcn.10051570
mov ecx, dword [edx + 0x24]
mov dword [ecx], eax
mov ecx, esi
call fcn.10051570
mov ecx, esi
mov edx, eax
call fcn.10051570
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x23], 1
mov ecx, dword [ecx + 0x20]
add dword [ecx], eax
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 0x20]
add dword [ecx + 4], edx
mov ecx, dword [esp + 0x24]
cmp byte [ecx + 0x2f], 0
jne 0x10050f1f
cmp byte [esp + 0x2b], 0
mov ecx, dword [esp + 0x14]
je 0x1004feb7
add edi, eax
mov eax, dword [esi + 8]
add ebp, edx
mov dword [esp + 0x10], edi
mov dword [esp + 0x3f14], edi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x3f18], ebp
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
mov ecx, esi
call fcn.10051570
cmp eax, 0x80000001
jge 0x1004e6b8
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1004e69b
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e728
cmp dword [eax], 0
jne 0x1004e728
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
jmp 0x1004d3e8
mov ecx, dword [esp + 0x14]
mov dword [edx], 0x7fffffff
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1004d3e8
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea ecx, [ecx + edx*8]
cmp edi, ecx
jne 0x1004f752
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e724
mov edi, dword [esp + 0x10]
cmp dword [eax], 0
jne 0x1004e728
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
jmp 0x1004d3e8
mov ecx, esi
call fcn.10051570
mov ecx, esi
mov ebx, eax
call fcn.10051570
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea ecx, [ecx + edx*8]
cmp edi, ecx
jne 0x1004e735
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e720
cmp dword [eax], 0
je 0x1004e3a8
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
jmp 0x1004d3e8
mov ecx, dword [esp + 0x14]
add eax, ebx
mov ebx, dword [esp + 0x18]
mov dword [edi], eax
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x10]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1004d3e8
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x1004e77e
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e77a
cmp dword [eax], 0
jne 0x1004e77a
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebx, ebx
jmp 0x1004e7aa
lea eax, [ecx - 8]
mov ecx, eax
mov dword [esi + 0xc], eax
mov eax, dword [eax + 4]
mov ebx, dword [ecx]
sub eax, 1
je 0x1004e79a
sub eax, 1
jne 0x1004e7aa
shl ebx, 0x10
jmp 0x1004e7aa
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
cmp ecx, edx
jne 0x1004e7ce
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e7ca
cmp dword [eax], 0
jne 0x1004e7ca
mov dword [eax], 0xa1
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
xor edi, edi
jmp 0x1004e7f8
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1004e7e8
sub eax, 1
jne 0x1004e7f8
shl edi, 0x10
jmp 0x1004e7f8
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esi + 0x10]
lea eax, [edx + eax*8]
cmp ecx, eax
je 0x1004e388
sub edi, ebx
mov ebx, dword [esp + 0x18]
mov dword [ecx], edi
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1004d3e8
test al, al
je 0x1004e853
cmp byte [esp + 0x60], 0
je 0x1004e853
mov ecx, esi
call fcn.10051520
mov edx, eax
call fcn.10051520
mov ecx, eax
mov byte [esp + 0x60], 0
call fcn.100395a0
jmp 0x1004e6bd
mov ecx, esi
call fcn.10051570
mov ecx, esi
mov edx, eax
call fcn.10051570
mov ecx, eax
call fcn.100395a0
jmp 0x1004e6bd
mov ecx, dword [esi + 0xc]
cmp ecx, dword [esi + 8]
jne 0x1004e8c5
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e889
cmp dword [eax], 0
jne 0x1004e889
mov dword [eax], 0xa1
mov eax, dword [esp + 0xa4]
xor ecx, ecx
mov edi, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov eax, dword [eax + 0x10]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x10]
cmp edx, eax
je 0x1004e52c
neg ecx
mov dword [edx], ecx
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1004d3e8
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1004e8df
sub eax, 1
jne 0x1004e8ef
shl ecx, 0x10
jmp 0x1004e8ef
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x94]
mov edi, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov eax, dword [eax + 0x10]
cmp ecx, 0x80000001
jge 0x1004e89b
lea eax, [edi + eax*8]
cmp edx, eax
je 0x1004e6d1
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [edx], 0x7fffffff
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1004d3e8
mov ecx, esi
call fcn.10051570
mov ecx, dword [esi + 0xc]
mov ebx, eax
mov edi, dword [esi + 8]
cmp ecx, edi
jne 0x1004e962
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e95e
cmp dword [eax], 0
jne 0x1004e95e
mov dword [eax], 0xa1
mov edi, dword [esi + 8]
mov ecx, dword [esi + 0xc]
xor edx, edx
jmp 0x1004e98e
lea eax, [ecx - 8]
mov ecx, eax
mov dword [esi + 0xc], eax
mov eax, dword [eax + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1004e97e
sub eax, 1
jne 0x1004e98e
shl edx, 0x10
jmp 0x1004e98e
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esi + 0x10]
lea eax, [edi + eax*8]
cmp ecx, eax
jne 0x1004e9c3
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e720
cmp dword [eax], 0
jne 0x1004e720
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
jmp 0x1004d3e8
mov edi, dword [esp + 0x10]
xor eax, eax
cmp edx, ebx
mov ebx, dword [esp + 0x18]
sete al
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x1004d3e8
mov ecx, dword [esp + 0x14]
test al, al
je 0x1004d3e8
mov ecx, esi
call fcn.10051520
mov edx, eax
call fcn.10051520
mov ebx, dword [esi + 0xc]
mov ebp, eax
mov edi, dword [esi + 8]
mov ecx, ebx
sub ecx, edi
mov dword [esp + 0x38], ebp
sar ecx, 3
xor eax, eax
sub ecx, ebp
mov dword [esp + 0x50], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x58], eax
cmp edx, 0x1c
ja case.0x1004ea38.4
movzx eax, byte [edx + 0x100514f8]
jmp dword [eax*4 + 0x100514b8]
cmp ebp, 3
jne 0x1004e5c1
cmp byte [esp + 0x2b], 0
je 0x1004ea6d
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x1d4], 0
je 0x1004e5c1
cmp dword [eax + 0x1d8], 7
jne 0x1004e5c1
mov eax, dword [esi + 0x10]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x10]
cmp ebx, eax
jne 0x1004ea8f
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ea9f
cmp dword [eax], 0
jne 0x1004ea9f
mov dword [eax], 0x82
jmp 0x1004ea9f
mov dword [ebx], edi
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov ebp, dword [esp + 0x1c]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1004eada
mov eax, dword [esi + 4]
test eax, eax
je 0x1004eaea
cmp dword [eax], 0
jne 0x1004eaea
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
mov dword [esp + 0x50], 2
jmp 0x1004d3e8
mov dword [edx], ebp
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], 2
jmp 0x1004d3e8
test ebp, ebp
jne 0x1004e5c1
cmp byte [esp + 0x2b], 0
je 0x1004e720
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xc]
movsx eax, word [ecx + 0x16]
movsx edx, word [ecx + 0x3a]
add eax, 6
add eax, edx
cmp eax, dword [ecx + 4]
jbe 0x1004eb3c
push ebp
lea edx, [ebp + 6]
call fcn.10039ca0
test eax, eax
jne 0x10050f1f
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov dword [ecx + 0x1d4], 1
mov dword [ecx + 0x1d8], 0
mov ecx, dword [esp + 0x14]
jmp 0x1004d3e8
test ebp, ebp
jne 0x1004e5c1
cmp byte [esp + 0x2b], 0
je 0x1004e720
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x1d4], ebp
je 0x1004e5c1
mov edi, dword [ecx + 0x1d8]
lea eax, [edi + 1]
mov dword [ecx + 0x1d8], eax
lea eax, [edi - 1]
cmp eax, 5
ja 0x1004e720
mov ecx, dword [ecx + 0xc]
movsx eax, word [ecx + 0x16]
movsx edx, word [ecx + 0x3a]
inc eax
add eax, edx
cmp eax, dword [ecx + 4]
jbe 0x1004ebcb
push ebp
lea edx, [ebp + 1]
call fcn.10039ca0
test eax, eax
jne 0x1004e5c1
lea eax, [edi - 3]
cmp edi, 3
jg 0x1004ebd5
mov eax, edi
mov ebp, dword [esp + 0x10]
add eax, eax
mov dword [esp + eax*4 + 0x11c], ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x120], ebp
cmp edi, 3
je 0x1004ebfb
cmp edi, 6
jne 0x1004e720
push dword [esp + 0x138]
mov edx, dword [esp + 0x128]
lea ecx, [esp + 0x1dc]
push dword [esp + 0x138]
push dword [esp + 0x138]
push dword [esp + 0x138]
push dword [esp + 0x138]
call fcn.1004c520
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jmp 0x1004d3e8
cmp ebp, 1
jne 0x1004e5c1
cmp byte [esp + 0x2b], 0
je 0x1004ec9e
mov eax, dword [esp + 0x64]
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [esp + 0xa8], xmm0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xf8], 0
vmovq qword [esp + 0xb8], xmm0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xa8], eax
mov word [esp + 0xac], 0x100
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], 1
jmp 0x1004d3e8
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0xc], edi
mov edi, dword [esp + 0x10]
jmp 0x1004d3e8
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x284]
mov dword [esp + 0x34], ebx
test ebx, ebx
je 0x1004e5c1
xor eax, eax
cmp edx, 0x12
sete al
add eax, 0xfffffff3
add edx, eax
mov eax, dword [ebx]
imul eax, edx
mov dword [esp + 0x50], edx
cmp ebp, eax
jne 0x1004e5c1
lea edi, [edx + ecx]
test edx, edx
je 0x1004edb6
mov dword [esp + 0x4c], edx
mov edx, ecx
mov ecx, esi
call fcn.100515c0
cmp dword [ebx], 1
mov ebp, eax
jbe 0x1004ed69
mov eax, 1
mov ebx, 4
sub eax, edi
mov dword [esp + 0x3c], eax
mov edx, edi
mov ecx, esi
call fcn.100515c0
mov edx, dword [esp + 0x34]
mov ecx, eax
mov edx, dword [edx + 0x88]
mov edx, dword [ebx + edx]
call fcn.10039080
mov ecx, dword [esp + 0x34]
lea ebx, [ebx + 4]
add ebp, eax
inc edi
mov eax, dword [esp + 0x3c]
add eax, edi
cmp eax, dword [ecx]
jb 0x1004ed36
mov ebx, ecx
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
sub eax, edx
mov ecx, dword [esp + 0x48]
sar eax, 3
cmp ecx, eax
jbe 0x1004ed90
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ed9e
cmp dword [eax], 0
jne 0x1004ed9e
mov dword [eax], 0x82
jmp 0x1004ed9e
mov dword [edx + ecx*8], ebp
mov eax, dword [esi + 8]
mov dword [eax + ecx*8 + 4], 0
inc ecx
sub dword [esp + 0x4c], 1
mov dword [esp + 0x48], ecx
jne 0x1004ed16
mov ebp, dword [esp + 0x38]
mov edx, dword [esp + 0x50]
mov ecx, dword [esi + 0xc]
sub ebp, edx
mov eax, ecx
sub eax, dword [esi + 8]
sar eax, 3
cmp ebp, eax
jbe 0x1004edee
mov eax, dword [esi + 4]
test eax, eax
je 0x1004edfa
cmp dword [eax], 0
jne 0x1004edfa
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0xa1
jmp 0x1004d3e8
lea eax, [ebp*8]
sub ecx, eax
mov dword [esi + 0xc], ecx
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jmp 0x1004d3e8
mov ebx, dword [esp + 0x24]
mov edi, dword [ebx + 0x284]
cmp ebp, 1
jne 0x1004e5c1
test edi, edi
je 0x1004e5c1
mov ecx, esi
call fcn.10051520
mov edx, eax
test edx, edx
js 0x1004e5c1
mov eax, dword [edi]
lea ecx, [edx + eax]
cmp ecx, dword [ebx + 0x28c]
ja 0x1004e5c1
lea ecx, [eax*4]
mov eax, dword [ebx + 0x288]
push ecx
push dword [edi + 0x88]
lea eax, [eax + edx*4]
push eax
call fcn.10180380
mov ebp, dword [esp + 0x28]
add esp, 0xc
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jmp 0x1004d3e8
cmp ebp, 2
jne 0x1004e5c1
mov ecx, esi
call fcn.10051570
mov ecx, esi
mov ebx, eax
call fcn.10051570
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea ecx, [ecx + edx*8]
cmp edi, ecx
jne 0x1004eed9
mov eax, dword [esi + 4]
test eax, eax
je 0x1004eeeb
cmp dword [eax], 0
jne 0x1004eeeb
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
mov dword [esp + 0x50], 1
jmp 0x1004d3e8
add eax, ebx
mov dword [edi], eax
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], 1
jmp 0x1004d3e8
cmp ebp, 2
jne 0x1004e5c1
mov ecx, esi
call fcn.10051570
mov ecx, esi
mov ebx, eax
call fcn.10051570
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea ecx, [ecx + edx*8]
cmp edi, ecx
jne 0x1004ef45
mov eax, dword [esi + 4]
test eax, eax
je 0x1004eeeb
cmp dword [eax], 0
jne 0x1004eeeb
mov dword [eax], 0x82
jmp 0x1004eeeb
sub eax, ebx
jmp 0x1004eedb
cmp ebp, 2
jne 0x1004e5c1
mov ecx, esi
call fcn.10051570
mov ecx, esi
mov edx, eax
call fcn.10051570
mov ecx, eax
call fcn.10039080
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea ecx, [ecx + edx*8]
cmp edi, ecx
jne 0x1004eedb
mov eax, dword [esi + 4]
test eax, eax
je 0x1004eeeb
cmp dword [eax], 0
jne 0x1004eeeb
mov dword [eax], 0x82
jmp 0x1004eeeb
cmp ebp, 2
jne 0x1004e5c1
mov ecx, esi
call fcn.10051570
mov ecx, esi
mov edx, eax
call fcn.10051570
test edx, edx
je 0x1004e5c1
mov ecx, eax
call fcn.100395a0
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea ecx, [ecx + edx*8]
cmp edi, ecx
jne 0x1004eedb
mov eax, dword [esi + 4]
test eax, eax
je 0x1004eeeb
cmp dword [eax], 0
jne 0x1004eeeb
mov dword [eax], 0x82
jmp 0x1004eeeb
cmp ebp, 2
jne 0x1004e5c1
mov ebx, dword [esp + 0x24]
cmp dword [ebx + 0x284], 0
je 0x1004e5c1
mov ecx, esi
call fcn.10051520
mov edx, eax
test edx, edx
js 0x1004e5c1
cmp edx, dword [ebx + 0x28c]
jae 0x1004e5c1
call fcn.10051570
mov ecx, dword [ebx + 0x288]
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 0x14]
jmp 0x1004d3e8
cmp ebp, 1
jne 0x1004e5c1
mov edx, dword [esp + 0x24]
cmp dword [edx + 0x284], 0
je 0x1004e5c1
mov ecx, esi
call fcn.10051520
test eax, eax
js 0x1004e5c1
cmp eax, dword [edx + 0x28c]
jae 0x1004e5c1
mov ecx, dword [edx + 0x288]
mov edx, dword [esi + 0xc]
mov edi, dword [ecx + eax*4]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1004f0be
mov eax, dword [esi + 4]
test eax, eax
je 0x1004eeeb
cmp dword [eax], 0
jne 0x1004eeeb
mov dword [eax], 0x82
jmp 0x1004eeeb
mov dword [edx], edi
jmp 0x1004eedd
cmp ebp, 4
jne 0x1004e5c1
mov ecx, esi
call fcn.10051570
mov ecx, esi
mov ebx, eax
call fcn.10051570
mov ecx, esi
mov ebp, eax
call fcn.10051570
mov ecx, esi
mov edi, eax
call fcn.10051570
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0xc]
lea ecx, [ecx + edx*8]
cmp eax, ecx
jne 0x1004f123
mov eax, dword [esi + 4]
test eax, eax
je 0x1004eeeb
cmp dword [eax], 0
jne 0x1004eeeb
mov dword [eax], 0x82
jmp 0x1004eeeb
cmp ebp, ebx
cmovle edi, dword [esp + 0x3c]
mov dword [eax], edi
jmp 0x1004eedd
test ebp, ebp
jne 0x1004e5c1
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x218]
mov ecx, dword [edx + 0x288]
mov eax, ecx
shl eax, 0xd
movzx edi, cx
xor ecx, eax
mov eax, ecx
inc edi
shr eax, 0x11
xor ecx, eax
mov eax, ecx
shl eax, 5
xor eax, ecx
mov dword [edx + 0x288], eax
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1004f0be
mov eax, dword [esi + 4]
test eax, eax
je 0x1004eeeb
cmp dword [eax], ebp
jne 0x1004eeeb
mov dword [eax], 0x82
jmp 0x1004eeeb
test ebp, ebp
js 0x1004e5c1
test edx, edx
js 0x1004e5c1
cmp ebp, 3
jle 0x1004f1ba
mov ebp, 3
mov dword [esp + 0x58], ebp
jmp 0x1004f1c7
mov dword [esp + 0x58], ebp
cmp ebp, 1
jl 0x1004e720
lea edx, [esp + ebp*4 + 0x80]
nop
mov ecx, esi
call fcn.10051570
mov dword [edx], eax
lea edx, [edx - 4]
sub ebp, 1
jne 0x1004f1d0
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jmp 0x1004d3e8
mov ecx, dword [esp + 0x14]
test al, al
je 0x1004d3e8
mov edx, dword [esp + 0x50]
test edx, edx
jle 0x1004f214
dec edx
mov dword [esp + 0x50], edx
jmp 0x1004d3e8
mov eax, dword [esp + 0x58]
test eax, eax
je 0x1004e5c1
mov edi, dword [esp + eax*4 + 0x80]
dec eax
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 8]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1004f384
mov edi, dword [esp + 0x10]
jmp 0x1004e52c
mov ecx, esi
call fcn.10051570
mov ecx, dword [esp + 0x14]
jmp 0x1004d3e8
mov ecx, esi
call fcn.10051520
mov edx, eax
call fcn.10051570
cmp edx, 0x1f
ja 0x1004e728
mov ecx, dword [esp + 0x14]
mov dword [esp + edx*4 + 0x158], eax
jmp 0x1004d3e8
mov ecx, esi
call fcn.10051520
cmp eax, 0x1f
ja 0x1004e728
mov edi, dword [esp + eax*4 + 0x158]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1004f384
jmp 0x1004e6d1
mov ecx, esi
call fcn.10051570
mov ecx, esi
mov ebx, eax
call fcn.10051570
mov ecx, esi
mov ebp, eax
call fcn.10051570
mov ecx, esi
mov edi, eax
call fcn.10051570
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0xc]
lea ecx, [ecx + edx*8]
cmp eax, ecx
jne 0x1004f315
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e720
cmp dword [eax], 0
jne 0x1004e720
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [eax], 0x82
jmp 0x1004d3e8
mov ecx, dword [esp + 0x14]
cmp ebp, ebx
mov ebp, dword [esp + 0x1c]
cmovle edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x18]
mov dword [eax], edi
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x10]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1004d3e8
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x218]
mov ecx, dword [edx + 0x288]
mov eax, ecx
shl eax, 0xd
movzx edi, cx
xor ecx, eax
mov eax, ecx
inc edi
shr eax, 0x11
xor ecx, eax
mov eax, ecx
shl eax, 5
xor eax, ecx
mov dword [edx + 0x288], eax
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
je 0x1004e6d1
mov ecx, dword [esp + 0x14]
mov dword [edx], edi
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x10]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1004d3e8
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x1004f3bf
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f3bb
cmp dword [eax], 0
jne 0x1004f3bb
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1004f3e9
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1004f3d9
sub eax, 1
jne 0x1004f3e9
shl edx, 0x10
jmp 0x1004f3e9
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004f40f
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f403
cmp dword [eax], 0
jne 0x1004f403
mov dword [eax], 0xa1
xor ecx, ecx
call fcn.10039080
jmp 0x1004e6bd
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004f431
sub eax, 1
jne 0x1004f441
shl ecx, 0x10
call fcn.10039080
jmp 0x1004e6bd
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.10039080
jmp 0x1004e6bd
mov ebp, dword [esi + 0xc]
cmp ebp, dword [esi + 8]
jne 0x1004f4a6
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f465
cmp dword [eax], 0
jne 0x1004f465
mov dword [eax], 0xa1
xor ebx, ebx
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov ebp, dword [esp + 0x1c]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x14]
cmp edx, eax
jne 0x1004f512
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x18]
test eax, eax
je 0x1004d3e8
cmp dword [eax], 0
jne 0x1004d3e8
mov dword [eax], 0x82
jmp 0x1004d3e8
add ebp, 0xfffffff8
mov dword [esi + 0xc], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
sub eax, 1
je 0x1004f4c1
sub eax, 1
jne 0x1004f4d1
shl ebp, 0x10
jmp 0x1004f4d1
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
test ebp, ebp
jle 0x1004f465
mov eax, ebp
mov edi, ebp
sar eax, 1
mov ecx, ebp
cmp ebp, 0xa
cmovge edi, eax
mov edx, edi
call fcn.100395a0
lea ebx, [edi + 1]
add ebx, eax
sar ebx, 1
cmp ebx, edi
je 0x1004f509
mov edx, ebx
mov ecx, ebp
mov edi, ebx
call fcn.100395a0
inc ebx
add ebx, eax
sar ebx, 1
cmp ebx, edi
jne 0x1004f4f5
mov edi, dword [esp + 0x10]
jmp 0x1004f467
mov dword [edx], ebx
mov eax, dword [esi + 0xc]
mov ebx, dword [esp + 0x18]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1004d3e8
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x1004f549
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f545
cmp dword [eax], 0
jne 0x1004f545
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1004f573
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1004f563
sub eax, 1
jne 0x1004f573
shl edx, 0x10
jmp 0x1004f573
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edi, eax
jne 0x1004f597
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f5a7
cmp dword [eax], 0
jne 0x1004f5a7
mov dword [eax], 0x82
jmp 0x1004f5a7
mov dword [edi], edx
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x14]
cmp edi, eax
jne 0x1004f5c4
mov edi, dword [esp + 0x10]
jmp 0x1004e530
mov dword [edi], edx
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x10]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1004d3e8
mov edi, dword [esi + 0xc]
cmp edi, dword [esi + 8]
jne 0x1004f5fb
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f5f7
cmp dword [eax], 0
jne 0x1004f5f7
mov dword [eax], 0xa1
xor edi, edi
jmp 0x1004f625
add edi, 0xfffffff8
mov dword [esi + 0xc], edi
mov eax, dword [edi + 4]
mov edi, dword [edi]
sub eax, 1
je 0x1004f615
sub eax, 1
jne 0x1004f625
shl edi, 0x10
jmp 0x1004f625
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004f643
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f63f
cmp dword [eax], 0
jne 0x1004f63f
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1004f66d
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov edx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004f65d
sub eax, 1
jne 0x1004f66d
shl edx, 0x10
jmp 0x1004f66d
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov ebx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp ebx, eax
jne 0x1004f691
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f6a1
cmp dword [eax], 0
jne 0x1004f6a1
mov dword [eax], 0x82
jmp 0x1004f6a1
mov dword [ebx], edi
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edi, eax
je 0x1004e388
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [edi], edx
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x10]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1004d3e8
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004f6f4
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f6f0
cmp dword [eax], 0
jne 0x1004f6f0
mov dword [eax], 0xa1
xor eax, eax
jmp 0x1004f718
cmp dword [eax - 4], 2
je 0x1004f710
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f70c
cmp dword [eax], 0
jne 0x1004f70c
mov dword [eax], 0xa0
xor eax, eax
jmp 0x1004f718
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov edx, dword [esi + 0xc]
sub edx, dword [esi + 8]
mov ecx, dword [esp + 0x14]
sar edx, 3
test edx, edx
je 0x1004d3e8
test eax, eax
js 0x1004f745
cmp eax, edx
jb 0x1004f743
xor edx, edx
mov ecx, esi
call fcn.100515c0
jmp 0x1004e6bd
sub edx, eax
dec edx
mov ecx, esi
call fcn.100515c0
jmp 0x1004e6bd
mov ecx, dword [esp + 0x14]
mov dword [edi], eax
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x10]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1004d3e8
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004f78d
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f789
cmp dword [eax], 0
jne 0x1004f789
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1004f7b1
cmp dword [eax - 4], 2
je 0x1004f7a9
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f7a5
cmp dword [eax], 0
jne 0x1004f7a5
mov dword [eax], 0xa0
xor edx, edx
jmp 0x1004f7b1
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov edx, dword [eax]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004f7e4
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f7cb
cmp dword [eax], 0
jne 0x1004f7cb
mov dword [eax], 0xa1
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 2
jmp 0x1004d3e8
cmp dword [eax - 4], 2
je 0x1004f815
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f7fc
cmp dword [eax], 0
jne 0x1004f7fc
mov dword [eax], 0xa0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 2
jmp 0x1004d3e8
add eax, 0xfffffff8
mov dword [esp + 0x34], 0
mov dword [esi + 0xc], eax
mov dword [esp + 0x38], 2
mov ecx, dword [eax]
mov dword [esp + 0x48], ecx
cmp ecx, 2
jl 0x1004e728
sub eax, dword [esi + 8]
sar eax, 3
cmp ecx, eax
jbe 0x1004f854
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e728
jmp 0x1004e6dc
test edx, edx
jns 0x1004f863
neg edx
mov eax, edx
cdq
idiv ecx
neg edx
jmp 0x1004f868
mov eax, edx
cdq
idiv ecx
mov dword [esp + 0x30], edx
test edx, edx
je 0x1004e728
lea eax, [ecx*8]
mov dword [esp + 0x4c], ecx
or ebp, 0xffffffff
mov dword [esp + 0x2c], eax
lea eax, [edx*8]
or edi, ebp
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x2c]
lea ebx, [ebp - 7]
nop word [eax + eax]
cmp ebp, edi
jne 0x1004f8c8
mov eax, dword [esi + 8]
inc ebp
mov edi, ebp
lea ebx, [ebp*8]
mov edx, dword [ebx + eax]
mov dword [esp + 0x34], edx
mov edx, dword [ebx + eax + 4]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x30]
add ebx, dword [esp + 0x3c]
add edi, edx
cmp edi, ecx
jl 0x1004f8d8
sub edi, ecx
sub ebx, eax
jmp 0x1004f8e0
test edi, edi
jns 0x1004f8e0
add edi, ecx
add ebx, eax
sub dword [esp + 0x48], 1
mov eax, dword [esi + 8]
mov esi, dword [esp + 0x34]
mov ecx, dword [ebx + eax]
mov edx, dword [ebx + eax + 4]
mov dword [ebx + eax], esi
mov esi, dword [esp + 0x38]
mov dword [ebx + eax + 4], esi
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x30]
jne 0x1004f8a0
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jmp 0x1004d3e8
test al, al
je case.0x1004e0d9.0
cmp byte [esp + 0x2b], 0
je case.0x1004e0d9.0
mov ecx, esi
call fcn.10051570
mov ebp, eax
mov ecx, esi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x3f18], ebp
call fcn.10051570
mov ecx, dword [esp + 0x14]
mov edi, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], edi
mov dword [esp + 0x3f14], edi
mov dword [eax + 0x1d4], 0
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
mov eax, dword [esp + 0x44]
cmp byte [eax + 8], 0
je case.0x1004d4f3.0
mov ecx, dword [esi + 0xc]
cmp ecx, dword [esi + 8]
jne 0x1004f9b1
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f9ad
cmp dword [eax], 0
jne 0x1004f9ad
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004f9db
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1004f9cb
sub eax, 1
jne 0x1004f9db
shl ecx, 0x10
jmp 0x1004f9db
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x24]
mov dword [eax], ecx
mov eax, dword [edx + 0x24]
mov dword [eax + 4], 0
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004fa0c
mov eax, dword [esi + 4]
test eax, eax
je 0x1004fa08
cmp dword [eax], 0
jne 0x1004fa08
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004fa36
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004fa26
sub eax, 1
jne 0x1004fa36
shl ecx, 0x10
jmp 0x1004fa36
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [edx + 0x20]
mov byte [esp + 0x23], 1
add dword [eax], ecx
cmp byte [edx + 0x2f], 0
jne 0x10050f1f
cmp byte [esp + 0x2b], 0
mov ebx, dword [esp + 0x18]
je case.0x1004e0d9.0
mov eax, dword [esi + 8]
add edi, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], edi
mov dword [esp + 0x3f14], edi
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
mov ebx, dword [esp + 0x44]
cmp byte [ebx + 8], 0
je 0x1005105c
test ah, ah
jne 0x1005105c
push ebp
mov edx, edi
lea ecx, [esp + 0x1dc]
call fcn.1004c310
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x64]
mov byte [esp + 0x2b], 1
mov dword [esp + 0xd8], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xc0], 0
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [esp + 0xa8], xmm0
mov dword [esp + 0xa8], eax
mov word [esp + 0xac], 0x100
vmovq qword [esp + 0xb8], xmm0
test ecx, ecx
jle 0x1004fb4a
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 0x9c]
mov ebx, dword [esp + 0xa0]
nop dword [eax]
lea eax, [ecx - 1]
cmp eax, edx
jb 0x1004fb2a
test ebp, ebp
je 0x1004fb28
cmp dword [ebp], 0
jne 0x1004fb28
mov dword [ebp], 0x82
xor eax, eax
mov edi, ebx
dec ecx
imul edi, eax
add edi, esi
mov dword [esp + 0x18], edi
test ecx, ecx
jg 0x1004fb10
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp eax, 1
jbe 0x1004fb7b
cmp byte [esp + 0xac], 0
jne case.0x1004d4f3.0
mov ecx, dword [esp + 0x44]
lea eax, [esp + 0x23]
push 0
push eax
push dword [esp + 0x3f24]
lea eax, [esp + 0xd0]
mov edx, esi
push eax
call fcn.1004c7f0
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x224], 0
jne 0x10050f1f
cmp bl, 0x13
jne 0x1004fbe2
mov eax, dword [esp + 0xd8]
lea ecx, [esp + 0xa8]
add eax, dword [esp + 0xf8]
mov ebx, dword [esp + 0x18]
mov edx, ebx
push eax
call fcn.1004c770
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
push 0xf1c
lea eax, [esp + 0x2fe4]
push 0
push eax
call fcn.1017ea60
mov ecx, dword [esp + 0x50]
add esp, 0xc
mov ebx, dword [esp + 0x18]
mov edx, ebx
vxorpd xmm0, xmm0, xmm0
mov dword [esp + 0x2fe0], ecx
mov al, byte [ecx + 0xb8]
mov byte [esp + 0x2fed], al
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x2ff0], eax
lea eax, [esp + 0x2018]
mov dword [esp + 0x2fe4], eax
lea eax, [esp + 0x2f34]
mov dword [esp + 0x2fe8], eax
lea eax, [ecx + 4]
mov dword [esp + 0x13c], eax
lea ecx, [esp + 0x13c]
mov eax, dword [esp + 0xd8]
add eax, dword [esp + 0xf8]
push eax
vmovlpd qword [esp + 0x144], xmm0
vmovlpd qword [esp + 0x14c], xmm0
vmovlpd qword [esp + 0x154], xmm0
call fcn.1004c770
push 0
push 0
lea eax, [esp + 0x144]
push eax
lea eax, [esp + 0xd0]
push eax
lea edx, [esp + 0xf4]
lea ecx, [esp + 0x2ff0]
call fcn.1004b500
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp eax, 2
jbe 0x1004fd05
cmp byte [esp + 0x23], 0
jne 0x1004fd05
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1004fce3
sub eax, 1
jne 0x1004fcf3
shl ecx, 0x10
jmp 0x1004fcf3
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x80]
add eax, ecx
mov ecx, dword [esp + 0x3f1c]
mov dword [ecx], eax
mov edx, dword [esp + 0x24]
mov byte [esp + 0x23], 1
cmp byte [edx + 0x224], 0
jne 0x10050f1f
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004fd39
mov eax, dword [esi + 4]
test eax, eax
je 0x1004fd35
cmp dword [eax], 0
jne 0x1004fd35
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004fd63
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004fd53
sub eax, 1
jne 0x1004fd63
shl ecx, 0x10
jmp 0x1004fd63
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esi + 0xc]
add ebp, ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x3f18], ebp
cmp eax, dword [esi + 8]
jne 0x1004fd9e
mov eax, dword [esi + 4]
test eax, eax
je 0x1004fd8a
cmp dword [eax], 0
jne 0x1004fd8a
mov dword [eax], 0xa1
xor ecx, ecx
add edi, ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x3f14], edi
jmp 0x1004d79f
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004fdc8
sub eax, 1
jne 0x1004fdd8
shl ecx, 0x10
add edi, ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x3f14], edi
jmp 0x1004d79f
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
add edi, ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x3f14], edi
jmp 0x1004d79f
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
jbe 0x1004fe37
cmp byte [esp + 0x23], 0
jne 0x1004fe37
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1004fe15
sub eax, 1
jne 0x1004fe25
shl ecx, 0x10
jmp 0x1004fe25
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x80]
add eax, ecx
mov ecx, dword [esp + 0x3f1c]
mov dword [ecx], eax
mov edx, dword [esp + 0x24]
mov byte [esp + 0x23], 1
cmp byte [edx + 0x224], 0
jne 0x10050f1f
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004fe6b
mov eax, dword [esi + 4]
test eax, eax
je 0x1004fe67
cmp dword [eax], 0
jne 0x1004fe67
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004fe95
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004fe85
sub eax, 1
jne 0x1004fe95
shl ecx, 0x10
jmp 0x1004fe95
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
add edi, ecx
cmp dword [edx + 0x1d4], 0
mov dword [esp + 0x10], edi
mov dword [esp + 0x3f14], edi
je 0x1004d7ac
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
mov ebp, dword [esi + 0xc]
xor edi, edi
sub ebp, dword [esi + 8]
sar ebp, 3
mov dword [esp + 0x4c], ebp
cmp ebp, 6
jbe 0x1004ffbb
lea ebx, [edi + 6]
nop dword [eax]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x1004ff05
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ff01
cmp dword [eax], 0
jne 0x1004ff01
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004ff2b
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x1004ff1b
sub eax, 1
jne 0x1004ff2b
shl ecx, 0x10
jmp 0x1004ff2b
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 8]
add eax, ecx
mov ecx, dword [esi + 0xc]
sub ecx, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x3f14], eax
lea eax, [ebx - 5]
sar ecx, 3
cmp eax, ecx
jb 0x1004ff64
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ff60
cmp dword [eax], 0
jne 0x1004ff60
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004ff8b
mov eax, dword [edx + edi*8 + 0xc]
mov ecx, dword [edx + edi*8 + 8]
sub eax, 1
je 0x1004ff7b
sub eax, 1
jne 0x1004ff8b
shl ecx, 0x10
jmp 0x1004ff8b
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, ecx
push eax
lea ecx, [esp + 0x1dc]
mov dword [esp + 0x20], eax
mov dword [esp + 0x3f1c], eax
call fcn.1004c3a0
add ebx, 2
add edi, 2
cmp ebx, ebp
jb 0x1004fee0
cmp edi, ebp
jae 0x1005021a
add edi, 2
mov ecx, dword [esi + 0xc]
lea eax, [edi - 2]
mov edx, dword [esi + 8]
sub ecx, edx
sar ecx, 3
cmp eax, ecx
jb 0x1004ffee
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ffea
cmp dword [eax], 0
jne 0x1004ffea
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050015
mov eax, dword [edx + edi*8 - 0xc]
mov ecx, dword [edx + edi*8 - 0x10]
sub eax, 1
je 0x10050005
sub eax, 1
jne 0x10050015
shl ecx, 0x10
jmp 0x10050015
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebp, dword [esp + 0x10]
lea eax, [edi - 1]
mov edx, dword [esi + 8]
add ebp, ecx
mov ecx, dword [esi + 0xc]
sub ecx, edx
mov dword [esp + 0x48], ebp
sar ecx, 3
cmp eax, ecx
jb 0x10050047
mov eax, dword [esi + 4]
test eax, eax
je 0x10050043
cmp dword [eax], 0
jne 0x10050043
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005006e
mov eax, dword [edx + edi*8 - 4]
mov ecx, dword [edx + edi*8 - 8]
sub eax, 1
je 0x1005005e
sub eax, 1
jne 0x1005006e
shl ecx, 0x10
jmp 0x1005006e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebx, dword [esp + 0x1c]
mov eax, dword [esi + 0xc]
add ebx, ecx
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
mov dword [esp + 0x3c], ebx
cmp edi, eax
jb 0x1005009d
mov eax, dword [esi + 4]
test eax, eax
je 0x10050099
cmp dword [eax], 0
jne 0x10050099
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100500c3
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x100500b3
sub eax, 1
jne 0x100500c3
shl ecx, 0x10
jmp 0x100500c3
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esi + 8]
lea eax, [edi + 1]
add ebp, ecx
mov ecx, dword [esi + 0xc]
sub ecx, edx
sar ecx, 3
cmp eax, ecx
jb 0x100500ed
mov eax, dword [esi + 4]
test eax, eax
je 0x100500e9
cmp dword [eax], 0
jne 0x100500e9
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050114
mov eax, dword [edx + edi*8 + 0xc]
mov ecx, dword [edx + edi*8 + 8]
sub eax, 1
je 0x10050104
sub eax, 1
jne 0x10050114
shl ecx, 0x10
jmp 0x10050114
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esi + 8]
lea eax, [edi + 2]
add ebx, ecx
mov ecx, dword [esi + 0xc]
sub ecx, edx
sar ecx, 3
cmp eax, ecx
jb 0x1005013e
mov eax, dword [esi + 4]
test eax, eax
je 0x1005013a
cmp dword [eax], 0
jne 0x1005013a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050165
mov eax, dword [edx + edi*8 + 0x14]
mov ecx, dword [edx + edi*8 + 0x10]
sub eax, 1
je 0x10050155
sub eax, 1
jne 0x10050165
shl ecx, 0x10
jmp 0x10050165
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esi + 8]
lea eax, [ecx + ebp]
mov ecx, dword [esi + 0xc]
sub ecx, edx
mov dword [esp + 0x10], eax
sar ecx, 3
lea eax, [edi + 3]
cmp eax, ecx
jb 0x10050194
mov eax, dword [esi + 4]
test eax, eax
je 0x10050190
cmp dword [eax], 0
jne 0x10050190
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100501bb
mov eax, dword [edx + edi*8 + 0x1c]
mov ecx, dword [edx + edi*8 + 0x18]
sub eax, 1
je 0x100501ab
sub eax, 1
jne 0x100501bb
shl ecx, 0x10
jmp 0x100501bb
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x48]
lea eax, [ebx + ecx]
push eax
push dword [esp + 0x14]
lea ecx, [esp + 0x1e0]
mov dword [esp + 0x24], eax
push ebx
push ebp
push dword [esp + 0x4c]
call fcn.1004c520
mov eax, dword [esp + 0x10]
add edi, 6
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x3f14], eax
mov dword [esp + 0x3f18], ebp
lea eax, [edi - 2]
cmp eax, dword [esp + 0x4c]
jb 0x1004ffc6
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
mov eax, dword [esi + 8]
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
mov edi, dword [esi + 0xc]
sub edi, dword [esi + 8]
sar edi, 3
mov ecx, edi
and ecx, 0xfffffffd
sub edi, ecx
mov dword [esp + 0x3c], ecx
cmp edi, ecx
jae 0x100506ef
lea eax, [edi + 3]
lea ebx, [edi + 2]
mov dword [esp + 0x2c], eax
lea edx, [edi + 1]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], edx
sub ecx, edi
test cl, 1
je 0x100502cf
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x10050292
mov eax, dword [esi + 4]
test eax, eax
je 0x1005028e
cmp dword [eax], 0
jne 0x1005028e
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100502b8
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x100502a8
sub eax, 1
jne 0x100502b8
shl ecx, 0x10
jmp 0x100502b8
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebp, dword [esp + 0x10]
inc edx
inc ebx
mov dword [esp + 0x38], edx
add ebp, ecx
mov dword [esp + 0x34], ebx
inc edi
inc dword [esp + 0x2c]
jmp 0x100502d3
mov ebp, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x100502f8
mov eax, dword [esi + 4]
test eax, eax
je 0x100502f4
cmp dword [eax], 0
jne 0x100502f4
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005031e
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x1005030e
sub eax, 1
jne 0x1005031e
shl ecx, 0x10
jmp 0x1005031e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebx, dword [esp + 0x1c]
mov eax, dword [esi + 0xc]
add ebx, ecx
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edx, eax
jb 0x10050349
mov eax, dword [esi + 4]
test eax, eax
je 0x10050345
cmp dword [eax], 0
jne 0x10050345
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005036f
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x1005035f
sub eax, 1
jne 0x1005036f
shl ecx, 0x10
jmp 0x1005036f
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x34]
lea eax, [ecx + ebp]
mov ecx, dword [esi + 8]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0xc]
sub eax, ecx
sar eax, 3
cmp edx, eax
jb 0x1005039f
mov eax, dword [esi + 4]
test eax, eax
je 0x1005039b
cmp dword [eax], 0
jne 0x1005039b
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100503c5
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x100503b5
sub eax, 1
jne 0x100503c5
shl ecx, 0x10
jmp 0x100503c5
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esi + 0xc]
lea edx, [ebx + ecx]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x2c], eax
jb 0x100503ef
mov eax, dword [esi + 4]
test eax, eax
je 0x100503eb
cmp dword [eax], 0
jne 0x100503eb
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050424
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1005040d
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x10050424
shl ecx, 0x10
jmp 0x10050424
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [edx + ecx]
push eax
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x1dc]
mov eax, dword [esp + 0x14]
push eax
push edx
push eax
push ebx
mov edx, ebp
call fcn.1004c520
mov edx, dword [esp + 0x38]
add edi, 4
mov ebx, dword [esp + 0x34]
add edx, 4
add dword [esp + 0x2c], 4
add ebx, 4
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x3f14], eax
mov dword [esp + 0x3f18], ebp
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], ebx
cmp edi, ecx
jb 0x10050266
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
mov edi, dword [esi + 0xc]
sub edi, dword [esi + 8]
sar edi, 3
mov ecx, edi
and ecx, 0xfffffffd
sub edi, ecx
mov dword [esp + 0x3c], ecx
cmp edi, ecx
jae 0x100506ef
lea eax, [edi + 3]
lea ebx, [edi + 2]
mov dword [esp + 0x2c], eax
lea edx, [edi + 1]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], edx
nop word [eax + eax]
sub ecx, edi
test cl, 1
je 0x10050533
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x100504fc
mov eax, dword [esi + 4]
test eax, eax
je 0x100504f8
cmp dword [eax], 0
jne 0x100504f8
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050522
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x10050512
sub eax, 1
jne 0x10050522
shl ecx, 0x10
jmp 0x10050522
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
inc edx
inc ebx
add ebp, ecx
mov dword [esp + 0x34], edx
inc edi
mov dword [esp + 0x30], ebx
inc dword [esp + 0x2c]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x10050558
mov eax, dword [esi + 4]
test eax, eax
je 0x10050554
cmp dword [eax], 0
jne 0x10050554
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005057e
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x1005056e
sub eax, 1
jne 0x1005057e
shl ecx, 0x10
jmp 0x1005057e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebx, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
add ebx, ecx
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edx, eax
jb 0x100505a9
mov eax, dword [esi + 4]
test eax, eax
je 0x100505a5
cmp dword [eax], 0
jne 0x100505a5
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100505cf
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x100505bf
sub eax, 1
jne 0x100505cf
shl ecx, 0x10
jmp 0x100505cf
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esi + 0xc]
lea edx, [ebx + ecx]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x30], eax
jb 0x100505f9
mov eax, dword [esi + 4]
test eax, eax
je 0x100505f5
cmp dword [eax], 0
jne 0x100505f5
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1005062e
mov eax, dword [esp + 0x30]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10050617
sub eax, 1
mov eax, dword [esp + 0x30]
mov ecx, dword [ecx + eax*8]
jne 0x1005062e
shl ecx, 0x10
jmp 0x1005062e
mov eax, dword [esp + 0x30]
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 ecx, dword [esi + 8]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0xc]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x2c], eax
jb 0x1005065c
mov eax, dword [esi + 4]
test eax, eax
je 0x10050658
cmp dword [eax], 0
jne 0x10050658
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050691
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1005067a
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x10050691
shl ecx, 0x10
jmp 0x10050691
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [edx + ecx]
mov ecx, dword [esp + 0x1c]
push ecx
push eax
push ecx
push edx
push ebp
mov edx, ebx
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x1ec]
call fcn.1004c520
mov edx, dword [esp + 0x34]
add edi, 4
mov ebx, dword [esp + 0x30]
add edx, 4
add dword [esp + 0x2c], 4
add ebx, 4
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x3f14], eax
mov dword [esp + 0x3f18], ebp
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], ebx
cmp edi, ecx
jb 0x100504d0
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
mov ebp, dword [esi + 0xc]
sub ebp, dword [esi + 8]
sar ebp, 3
cmp bl, 0x1f
mov eax, ebp
sete bl
and eax, 0xfffffffd
sub ebp, eax
mov dword [esp + 0x48], eax
cmp ebp, eax
jae 0x10050b72
lea eax, [ebp + 4]
mov dword [esp + 0x2c], eax
lea edx, [ebp + 1]
lea eax, [ebp + 3]
mov dword [esp + 0x38], edx
mov dword [esp + 0x30], eax
lea eax, [ebp + 2]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
test bl, bl
je 0x1005093d
cmp ebp, eax
jb 0x10050771
mov eax, dword [esi + 4]
test eax, eax
je 0x1005076d
cmp dword [eax], 0
jne 0x1005076d
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050797
mov eax, dword [ecx + ebp*8 + 4]
mov ecx, dword [ecx + ebp*8]
sub eax, 1
je 0x10050787
sub eax, 1
jne 0x10050797
shl ecx, 0x10
jmp 0x10050797
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
lea ebx, [ecx + edi]
mov ecx, dword [esi + 8]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0xc]
sub eax, ecx
mov dword [esp + 0x3c], ebx
sar eax, 3
cmp edx, eax
jb 0x100507cb
mov eax, dword [esi + 4]
test eax, eax
je 0x100507c7
cmp dword [eax], 0
jne 0x100507c7
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100507f1
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x100507e1
sub eax, 1
jne 0x100507f1
shl ecx, 0x10
jmp 0x100507f1
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esi + 0xc]
lea edi, [ebx + ecx]
mov ecx, dword [esi + 8]
sub eax, ecx
mov ebx, dword [esp + 0x34]
sar eax, 3
cmp ebx, eax
jb 0x1005081d
mov eax, dword [esi + 4]
test eax, eax
je 0x10050819
cmp dword [eax], 0
jne 0x10050819
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050843
mov eax, dword [ecx + ebx*8 + 4]
mov ecx, dword [ecx + ebx*8]
sub eax, 1
je 0x10050833
sub eax, 1
jne 0x10050843
shl ecx, 0x10
jmp 0x10050843
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x1c]
mov eax, dword [esi + 0xc]
add edx, ecx
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x30], eax
jb 0x10050870
mov eax, dword [esi + 4]
test eax, eax
je 0x1005086c
cmp dword [eax], 0
jne 0x1005086c
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100508a5
mov eax, dword [esp + 0x30]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1005088e
sub eax, 1
mov eax, dword [esp + 0x30]
mov ecx, dword [ecx + eax*8]
jne 0x100508a5
shl ecx, 0x10
jmp 0x100508a5
mov eax, dword [esp + 0x30]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [edx + ecx]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x48]
sub eax, ebp
cmp eax, 5
jne 0x10050932
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x2c], eax
jb 0x100508de
mov eax, dword [esi + 4]
test eax, eax
je 0x100508da
cmp dword [eax], 0
jne 0x100508da
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050913
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x100508fc
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x10050913
shl ecx, 0x10
jmp 0x10050913
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
inc dword [esp + 0x38]
inc ebx
inc dword [esp + 0x30]
add ecx, edi
inc dword [esp + 0x2c]
inc ebp
mov dword [esp + 0x34], ebx
xor bl, bl
mov dword [esp + 0x10], ecx
jmp 0x10050b17
mov dword [esp + 0x10], edi
xor bl, bl
jmp 0x10050b17
mov dword [esp + 0x3c], edi
cmp ebp, eax
jb 0x1005095b
mov eax, dword [esi + 4]
test eax, eax
je 0x10050957
cmp dword [eax], 0
jne 0x10050957
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050981
mov eax, dword [ecx + ebp*8 + 4]
mov ecx, dword [ecx + ebp*8]
sub eax, 1
je 0x10050971
sub eax, 1
jne 0x10050981
shl ecx, 0x10
jmp 0x10050981
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
add eax, ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0xc]
sub eax, ecx
sar eax, 3
cmp edx, eax
jb 0x100509b0
mov eax, dword [esi + 4]
test eax, eax
je 0x100509ac
cmp dword [eax], 0
jne 0x100509ac
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100509d6
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x100509c6
sub eax, 1
jne 0x100509d6
shl ecx, 0x10
jmp 0x100509d6
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esi + 0xc]
add edi, ecx
mov ecx, dword [esi + 8]
sub eax, ecx
mov ebx, dword [esp + 0x34]
sar eax, 3
cmp ebx, eax
jb 0x10050a01
mov eax, dword [esi + 4]
test eax, eax
je 0x100509fd
cmp dword [eax], 0
jne 0x100509fd
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050a27
mov eax, dword [ecx + ebx*8 + 4]
mov ecx, dword [ecx + ebx*8]
sub eax, 1
je 0x10050a17
sub eax, 1
jne 0x10050a27
shl ecx, 0x10
jmp 0x10050a27
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x4c]
mov eax, dword [esi + 0xc]
add edx, ecx
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x30], eax
jb 0x10050a54
mov eax, dword [esi + 4]
test eax, eax
je 0x10050a50
cmp dword [eax], 0
jne 0x10050a50
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050a89
mov eax, dword [esp + 0x30]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10050a72
sub eax, 1
mov eax, dword [esp + 0x30]
mov ecx, dword [ecx + eax*8]
jne 0x10050a89
shl ecx, 0x10
jmp 0x10050a89
mov eax, dword [esp + 0x30]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [edi + ecx]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
sub eax, ebp
cmp eax, 5
jne 0x10050b11
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x2c], eax
jb 0x10050ac2
mov eax, dword [esi + 4]
test eax, eax
je 0x10050abe
cmp dword [eax], 0
jne 0x10050abe
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x10050af7
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x10050ae0
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x10050af7
shl ecx, 0x10
jmp 0x10050af7
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
inc dword [esp + 0x38]
add ecx, edx
inc dword [esp + 0x30]
inc ebx
inc ebp
mov dword [esp + 0x1c], ecx
inc dword [esp + 0x2c]
mov dword [esp + 0x34], ebx
jmp 0x10050b15
mov dword [esp + 0x1c], edx
mov bl, 1
push dword [esp + 0x1c]
lea ecx, [esp + 0x1dc]
push dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x48]
push edi
push dword [esp + 0x5c]
call fcn.1004c520
mov edx, dword [esp + 0x38]
add ebp, 4
add dword [esp + 0x34], 4
add edx, 4
add dword [esp + 0x30], 4
add dword [esp + 0x2c], 4
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3f14], edi
mov dword [esp + 0x3f18], eax
mov dword [esp + 0x38], edx
cmp ebp, dword [esp + 0x48]
jb 0x10050744
mov eax, dword [esi + 8]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x1004d3e8
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x10050ba0
mov cl, byte [eax]
inc eax
mov dword [ebx + 0xc], eax
movzx edx, cl
jmp 0x10050bb3
mov eax, dword [ebx]
test eax, eax
je 0x10050bb1
cmp dword [eax], 0
jne 0x10050bb1
mov dword [eax], 0x55
xor edx, edx
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x10050bc6
mov cl, byte [eax]
inc eax
mov dword [ebx + 0xc], eax
movzx eax, cl
jmp 0x10050bd9
mov eax, dword [ebx]
test eax, eax
je 0x10050bd7
cmp dword [eax], 0
jne 0x10050bd7
mov dword [eax], 0x55
xor eax, eax
mov ecx, dword [esi + 0x10]
mov edi, dword [esi + 0xc]
shl edx, 8
movsx edx, dx
or edx, eax
mov eax, dword [esi + 8]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x14]
cmp edi, eax
jne 0x10050bfe
mov edi, dword [esp + 0x10]
jmp 0x1004e530
mov dword [edi], edx
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x10]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x1004d3e8
cmp bl, 0xf6
ja 0x10050c3b
mov ecx, dword [esi + 0x10]
lea edi, [edx - 0x8b]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x10050cd3
jmp 0x1004e388
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
cmp bl, 0xfa
ja 0x10050c8c
shl edx, 8
cmp eax, ecx
jae 0x10050c5c
mov cl, byte [eax]
inc eax
mov dword [edi + 0xc], eax
movzx eax, cl
jmp 0x10050c6f
mov eax, dword [edi]
test eax, eax
je 0x10050c6d
cmp dword [eax], 0
jne 0x10050c6d
mov dword [eax], 0x55
xor eax, eax
mov ecx, dword [esi + 0x10]
lea edi, [eax - 0xf694]
mov eax, dword [esi + 8]
add edi, edx
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x10050cd3
jmp 0x1004e388
cmp bl, 0xfe
ja 0x10050cf4
shl edx, 8
cmp eax, ecx
jae 0x10050ca3
mov cl, byte [eax]
inc eax
mov dword [edi + 0xc], eax
movzx eax, cl
jmp 0x10050cb6
mov eax, dword [edi]
test eax, eax
je 0x10050cb4
cmp dword [eax], 0
jne 0x10050cb4
mov dword [eax], 0x55
xor eax, eax
mov ecx, dword [esi + 0x10]
mov edi, 0xfa94
sub edi, eax
mov eax, dword [esi + 8]
sub edi, edx
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
je 0x1004e388
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [edx], edi
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x10]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x1004d3e8
cmp eax, ecx
jae 0x10050d03
mov cl, byte [eax]
inc eax
mov dword [edi + 0xc], eax
movzx edx, cl
jmp 0x10050d16
mov eax, dword [edi]
test eax, eax
je 0x10050d14
cmp dword [eax], 0
jne 0x10050d14
mov dword [eax], 0x55
xor edx, edx
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jae 0x10050d29
mov cl, byte [eax]
inc eax
mov dword [edi + 0xc], eax
movzx ebx, cl
jmp 0x10050d3c
mov eax, dword [edi]
test eax, eax
je 0x10050d3a
cmp dword [eax], 0
jne 0x10050d3a
mov dword [eax], 0x55
xor ebx, ebx
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jae 0x10050d4f
mov cl, byte [eax]
inc eax
mov dword [edi + 0xc], eax
movzx edi, cl
jmp 0x10050d62
mov eax, dword [edi]
test eax, eax
je 0x10050d60
cmp dword [eax], 0
jne 0x10050d60
mov dword [eax], 0x55
xor edi, edi
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 8]
jae 0x10050d81
mov ebp, dword [esp + 0x18]
mov cl, byte [eax]
inc eax
mov dword [ebp + 0xc], eax
mov ebp, dword [esp + 0x1c]
movzx eax, cl
jmp 0x10050d94
mov eax, dword [ecx]
test eax, eax
je 0x10050d92
cmp dword [eax], 0
jne 0x10050d92
mov dword [eax], 0x55
xor eax, eax
shl edx, 8
or edx, ebx
shl edx, 8
or edx, edi
shl edx, 8
or edx, eax
mov eax, dword [esp + 0x44]
cmp byte [eax + 8], 0
je 0x1004f6a1
cmp edx, 0x7d00
jg 0x10050dc1
cmp edx, 0xffff8300
jge 0x10050dd6
mov ecx, dword [esp + 0x60]
test cl, cl
movzx eax, cl
mov ecx, 1
cmove eax, ecx
mov byte [esp + 0x60], al
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edi, eax
je 0x1004e388
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [edi], edx
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x10]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x1004d3e8
mov ecx, dword [esp + 0x24]
cmp byte [ecx + 0x2f], 0
je 0x10050e1f
mov eax, 0x12
jmp 0x10051251
cmp dword [ecx + 0x244], 0
jne 0x10050e3e
mov eax, dword [edx + 0x80]
cmp dword [eax + 0x34], 0
jne 0x10050e3e
mov eax, 0x12
jmp 0x10051251
mov eax, dword [ecx + 0x20]
add edi, dword [eax]
mov eax, dword [edx + 0x80]
cmp dword [eax + 0x34], 0
jne 0x10050e69
mov edx, ebx
call fcn.100491e0
mov ecx, dword [esp + 0x24]
mov edx, ebp
mov ebx, eax
call fcn.100491e0
mov ecx, dword [esp + 0x24]
mov ebp, eax
test ebx, ebx
js 0x1004e5c1
test ebp, ebp
js 0x1004e5c1
cmp byte [ecx + 0x2e], 0
je 0x10050f28
mov eax, dword [ecx + 8]
mov edx, 2
mov dword [esp + 0x7c], eax
mov eax, dword [eax + 0x9c]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x3c], eax
call fcn.10039e30
test eax, eax
jne 0x10051251
mov edx, dword [esp + 0x3c]
mov eax, 0x202
sub edi, dword [esp + 0x70]
mov ecx, edi
mov edx, dword [edx + 0x58]
mov word [edx + 4], ax
mov eax, 2
mov dword [edx], ebx
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0
mov dword [edx + 0x20], ebp
mov word [edx + 0x24], ax
call fcn.10039340
mov ecx, dword [esp + 0x74]
sar eax, 0x10
mov dword [edx + 0x28], eax
call fcn.10039340
mov ecx, dword [esp + 0x7c]
sar eax, 0x10
mov dword [edx + 0x2c], eax
mov edx, dword [esp + 0x3c]
mov dword [ecx + 0x80], 2
mov eax, dword [edx + 0x34]
mov dword [ecx + 0x84], eax
mov dword [ecx + 0x48], 0x636f6d70
mov dword [edx + 0x54], 2
mov eax, dword [esp + 0x6c]
jmp 0x10051251
mov ecx, dword [ecx + 0xc]
call fcn.10039ed0
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x84]
push eax
mov edx, ebx
call fcn.1004aed0
test eax, eax
jne 0x10051251
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x84]
mov eax, dword [ecx + 0x20]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [ecx + 0x24]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x68]
push eax
push 0
push 0
push 1
push dword [esp + 0x3f1c]
mov dword [esp + 0x5c], ecx
push dword [esp + 0x3f1c]
mov ecx, dword [esp + 0x5c]
call fcn.1004cea0
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x84]
call fcn.1004af40
cmp byte [esp + 0x23], 0
mov edx, dword [esp + 0x24]
jne 0x10050fcb
mov eax, dword [edx + 0x20]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [edx + 0x24]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], eax
mov eax, dword [edx + 0x20]
mov dword [eax], 0
mov eax, dword [edx + 0x20]
mov edx, ebp
mov ebp, dword [esp + 0x24]
mov ecx, ebp
mov dword [eax + 4], 0
lea eax, [esp + 0x84]
push eax
call fcn.1004aed0
test eax, eax
jne 0x10051251
sub edi, dword [esp + 0x70]
lea eax, [esp + 0x68]
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0x84]
push eax
push dword [esp + 0x78]
push edi
push 1
push dword [esp + 0x3f1c]
push dword [esp + 0x3f1c]
call fcn.1004cea0
lea edx, [esp + 0x84]
mov ecx, ebp
call fcn.1004af40
mov eax, dword [ebp + 0x20]
mov ecx, dword [esp + 0x3c]
mov dword [eax], ebx
mov dword [eax + 4], ecx
mov eax, dword [ebp + 0x24]
mov ecx, dword [esp + 0x48]
mov dword [eax], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x6c]
jmp 0x10051251
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
cmp eax, 8
je 0x1005106c
cmp eax, 0x28
jne 0x1005108c
cmp byte [esp + 0x23], 0
jne 0x1005108c
xor edx, edx
mov ecx, esi
call fcn.100515c0
mov ecx, dword [esp + 0x3f1c]
add eax, dword [esp + 0x80]
mov dword [ecx], eax
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x224], 0
jne 0x10050f1f
cmp byte [esp + 0x2f68], 0
je 0x10051118
push dword [esp + 0x2fb4]
mov edx, dword [esp + 0x2fb4]
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x2f6d], 1
call fcn.1004c3a0
cmp byte [esp + 0x2fb8], 0
je 0x100510fe
push 1
push dword [esp + 0x2fa0]
lea eax, [esp + 0x2f98]
push dword [esp + 0x2fa0]
lea edx, [esp + 0x1ec]
push eax
lea ecx, [esp + 0x1e8]
call fcn.1004beb0
mov byte [esp + 0x2f6b], 1
mov word [esp + 0x2f68], 0
mov byte [esp + 0x2fb8], 0
cmp byte [ebx + 9], 0
jne 0x10050f1f
cmp byte [ebx + 8], 0
jne 0x10050f1f
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp eax, 1
jbe 0x10050f1f
cmp byte [esp + 0x3f10], 0
je 0x10051152
mov eax, 0x12
jmp 0x10051251
mov ecx, esi
call fcn.10051520
mov edx, eax
call fcn.10051520
mov edi, eax
call fcn.10051570
mov ecx, esi
mov ebx, eax
call fcn.10051570
mov ecx, dword [esp + 0x24]
mov ebp, eax
lea eax, [esp + 0x84]
push eax
call fcn.1004ae10
test eax, eax
jne 0x10051251
lea eax, [esp + 0x7c]
push eax
push ebx
push ebp
mov ebp, dword [esp + 0x50]
lea edx, [esp + 0x90]
push 1
push dword [esp + 0x3f1c]
mov ecx, ebp
push dword [esp + 0x3f1c]
call fcn.1004cea0
mov eax, dword [esp + 0x8c]
lea edx, [esp + 0x88]
mov ebx, dword [esp + 0x24]
sub eax, dword [esp + 0x88]
push eax
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0x258]
call eax
lea eax, [esp + 0x84]
mov edx, edi
push eax
mov ecx, ebx
call fcn.1004ae10
test eax, eax
jne 0x10051251
lea eax, [esp + 0x7c]
mov ecx, ebp
push eax
push 0
push 0
push 1
push dword [esp + 0x3f1c]
lea edx, [esp + 0x98]
push dword [esp + 0x3f1c]
call fcn.1004cea0
mov eax, dword [esp + 0x8c]
lea edx, [esp + 0x88]
sub eax, dword [esp + 0x88]
mov ecx, dword [ebx + 4]
push eax
mov eax, dword [ebx + 0x258]
call eax
mov eax, dword [esp + 0x6c]
jmp 0x10051251
mov dword [esi + 8], 0
mov eax, dword [ebp + 8]
mov edx, esi
mov ecx, ebp
call eax
xor esi, esi
lea eax, [esi + 0x40]
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x10051260
cmp dword [ecx], 0
jne 0x10051260
mov dword [ecx], eax
mov edx, dword [esp + 0x2f50]
mov dword [esp + 0x2f40], 0
mov dword [esp + 0x2f48], 0
mov dword [esp + 0x2f4c], 0
test edx, edx
je 0x1005129a
mov eax, dword [esp + 0x2f34]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x2f50], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
test edx, edx
je 0x100512df
mov eax, dword [esp + 0xc4]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
mov edx, dword [esp + 0x100]
mov dword [esp + 0xe0], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
test edx, edx
je 0x10051324
mov eax, dword [esp + 0xe4]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x100], 0
test eax, eax
je 0x10051347
mov edx, eax
mov eax, dword [esp + 0x104]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
test esi, esi
je 0x1005136b
mov edx, dword [esi + 8]
mov ebx, dword [esi]
test edx, edx
je 0x1005135b
mov eax, dword [ebx + 8]
mov ecx, ebx
call eax
mov dword [esi + 8], 0
mov edx, esi
mov eax, dword [ebx + 8]
mov ecx, ebx
call eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3ef4
ret 0x18