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

Disassembly:
mov eax, 0x3eec
call fcn.1011ce80
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x44], edx
xor eax, eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x68], eax
push edi
mov ebp, dword [esi + 0xb0]
lea ebx, [esi + 4]
mov eax, dword [esi + 0x34]
mov edi, dword [esi]
mov dword [esp + 0x94], eax
mov eax, dword [ebp + 0x218]
push 0x80
mov dword [esp + 0x38], ebp
mov dword [esp + 0x6c], ebx
mov eax, dword [eax + 0x220]
shl eax, 0x10
mov dword [esp + 0x90], eax
xor eax, eax
push eax
mov dword [esp + 0x4c], eax
mov byte [esp + 0x58], al
mov byte [esp + 0x37], al
mov dword [esp + 0x20], eax
lea eax, [esp + 0x158]
push eax
mov dword [esp + 0x84], 0x1312d00
call fcn.1011df10
xor eax, eax
mov dword [esp + 0x90], 0
add esp, 0xc
mov dword [esp + 0x70], eax
xorps xmm0, xmm0
mov dword [esp + 0x118], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xf0], eax
push 0x2e08
push eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
lea eax, [esp + 0x1d8]
push eax
movq qword [esp + 0x88], xmm0
movups xmmword [esp + 0x128], xmm0
mov dword [esp + 0x108], edi
movq qword [esp + 0x138], xmm0
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x110], 0x10
mov dword [esp + 0x114], 0
mov dword [esp + 0x118], 0xa
mov dword [esp + 0x11c], 0
mov dword [esp + 0x120], 0
mov dword [esp + 0xe8], edi
mov dword [esp + 0xec], ebx
mov dword [esp + 0xf0], 0x14
mov dword [esp + 0xf8], 0xa
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], 0x14
mov dword [esp + 0xd8], 0xa
movlpd qword [esp + 0xb0], xmm0
movlpd qword [esp + 0xb8], xmm0
movlpd qword [esp + 0xc0], xmm0
mov dword [esp + 0xac], ebx
call fcn.1011df10
mov eax, dword [esp + 0x3f0c]
add esp, 0xc
mov dword [esp + 0x1d0], esi
mov dword [esp + 0x90], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x2f2c], edi
mov dword [esp + 0x2f30], ebx
movaps xmm0, xmmword [0x10179300]
lea eax, [esp + 0x2010]
push 0xf1c
push 0
push eax
movups xmmword [esp + 0x2f40], xmm0
mov dword [esp + 0x2f50], 0
mov dword [esp + 0x2f54], 0
call fcn.1011df10
mov eax, dword [esp + 0xa0]
add esp, 0xc
mov bl, byte [esi + 0xb8]
mov dword [esp + 0x2020], eax
lea eax, [esp + 0x2010]
mov dword [esp + 0x2014], eax
lea eax, [esp + 0x2f2c]
push 0xf1c
mov dword [esp + 0x201c], eax
lea eax, [esp + 0x10f8]
push 0
push eax
mov byte [esp + 0x2029], bl
mov dword [esp + 0x201c], esi
call fcn.1011df10
mov eax, dword [esp + 0xa0]
add esp, 0xc
mov dword [esp + 0x1104], eax
lea eax, [esp + 0x2010]
mov dword [esp + 0x10f8], eax
lea eax, [esp + 0x2f2c]
mov dword [esp + 0x10fc], eax
lea eax, [esp + 0x1d8]
push 0xf1c
push 0
push eax
mov byte [esp + 0x110d], bl
mov dword [esp + 0x1100], esi
call fcn.1011df10
mov ecx, dword [esp + 0xa0]
lea eax, [esp + 0x201c]
mov dword [esp + 0x1e8], eax
add esp, 0xc
mov dword [esp + 0x1e8], ecx
lea eax, [esp + 0x2f2c]
mov dword [esp + 0x1e0], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x2f4c], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 0x2f50], eax
mov dword [esp + 0x2f54], ecx
mov ecx, dword [esp + 0x3f04]
mov byte [esp + 0x1e5], bl
mov ebx, dword [esi + 0xe4]
mov dword [esp + 0x1d8], esi
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x2f58], eax
lea eax, [esp + 0xdc]
mov dword [esp + 0x2f64], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0x2f68], eax
lea eax, [esp + 0xa0]
mov dword [esp + 0x2f6c], eax
mov eax, dword [esp + 0x3f10]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2f70], eax
lea eax, [esi + 0xf0]
mov dword [esp + 0x2f74], eax
mov al, byte [esi + 0xb9]
mov esi, dword [esi + 0xe8]
mov byte [esp + 0x2f62], al
mov eax, esi
cdq
mov dword [esp + 0x2f5c], ecx
mov ecx, eax
xor ecx, edx
mov dword [esp + 0x2f78], ebx
mov eax, ebx
mov dword [esp + 0x2f7c], esi
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jle 0x1004a5cc
mov esi, ebx
neg esi
test ebx, ebx
cmovns esi, ebx
jmp 0x1004a5d2
test esi, esi
jns 0x1004a5d2
neg esi
mov ecx, dword [esp + 0x4c]
lea eax, [esi + esi]
mov edx, dword [esp + 0x3f14]
mov dword [esp + 0x2f80], eax
mov dword [esp + 0x2f84], 0x199a
cmp byte [ecx + 9], 0
mov byte [esp + 0x2f63], 1
mov word [esp + 0x2f60], 0
setne byte [esp + 0x27]
mov byte [esp + 0x2fb0], 0
mov eax, dword [ebp + 0x218]
mov eax, dword [eax + 0x21c]
shl eax, 0x10
mov dword [edx], eax
cmp byte [ecx + 9], 0
je 0x1004a63a
mov eax, dword [ebp + 0x214]
mov ebx, dword [eax + 0x614]
jmp 0x1004a63f
mov ebx, 0x30
mov eax, dword [edi + 4]
mov edx, 0x14
mov ecx, edi
mov dword [esp + 0x64], ebx
call eax
mov esi, eax
mov dword [esp + 0x60], esi
test esi, esi
je 0x1004a6d1
mov eax, dword [esp + 0x68]
mov edx, 8
mov dword [esi + 8], 0
mov ecx, edi
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 4], eax
lea eax, [esp + 0x38]
push eax
push 0
push ebx
push 0
mov dword [esi], edi
mov dword [esp + 0x48], 0
call fcn.1003b010
mov ebp, dword [esp + 0x38]
mov ebx, eax
mov eax, dword [esp + 0x64]
test ebp, ebp
jne 0x1004a6bd
test ebx, ebx
je 0x1004a6bd
test eax, eax
jle 0x1004a6bd
shl eax, 3
push eax
push ebp
push ebx
call fcn.1011df10
mov eax, dword [esp + 0x70]
add esp, 0xc
mov dword [esi + 8], ebx
test ebp, ebp
je 0x1004a7ff
mov eax, dword [edi + 8]
mov edx, esi
mov ecx, edi
call eax
mov eax, 0x40
xor esi, esi
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x1004a6e7
cmp dword [ecx], 0
jne 0x1004a6e7
mov dword [ecx], eax
mov edx, dword [esp + 0x2f48]
mov dword [esp + 0x2f38], 0
mov dword [esp + 0x2f40], 0
mov dword [esp + 0x2f44], 0
test edx, edx
je 0x1004a721
mov eax, dword [esp + 0x2f2c]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
mov edx, dword [esp + 0xd8]
mov dword [esp + 0x2f48], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
test edx, edx
je 0x1004a766
mov eax, dword [esp + 0xbc]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
mov edx, dword [esp + 0xf8]
mov dword [esp + 0xd8], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
test edx, edx
je 0x1004a7ab
mov eax, dword [esp + 0xdc]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0xf8], 0
test eax, eax
je 0x1004a7ce
mov edx, eax
mov eax, dword [esp + 0xfc]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
test esi, esi
je 0x1004a7f2
mov edx, dword [esi + 8]
mov edi, dword [esi]
test edx, edx
je 0x1004a7e2
mov eax, dword [edi + 8]
mov ecx, edi
call eax
mov dword [esi + 8], 0
mov edx, esi
mov eax, dword [edi + 8]
mov ecx, edi
call eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3eec
ret 0x18
mov edi, 0x11
mov dword [esi + 0x10], eax
mov edx, edi
mov dword [esi + 0xc], ebx
lea ecx, [esp + 0xfc]
call fcn.10046f30
mov ecx, dword [esp + 0x110]
test al, al
mov eax, dword [esp + 0x68]
cmovne ecx, edi
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x118]
mov ebx, ecx
cmp dword [eax], 0
mov dword [esp + 0x70], ecx
mov dword [esp + 0x1c], ebx
jne 0x1004efa7
mov eax, dword [esp + 0x48]
xor edx, edx
mov edi, dword [esp + 0x100]
mov ebp, dword [esp + 0x3f0c]
mov dword [esp + 0x9c], edi
xor edi, edi
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x104]
mov dword [esp + 0x14], edx
movups xmmword [ecx], xmm0
mov dword [esp + 0x74], eax
mov dword [esp + 0x20], ebp
jmp 0x1004a897
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
cmp eax, ecx
jb 0x1004a8b6
test edx, edx
mov ebx, 0xb
mov eax, 0xe
cmove ebx, eax
mov dword [esp + 0x30], ebx
jmp 0x1004a8e5
mov dl, byte [eax]
inc eax
mov dword [ebx + 0xc], eax
mov bl, dl
mov dword [esp + 0x30], ebx
cmp dl, 0xb
je 0x1004a8cc
cmp dl, 0xe
jne 0x1004a8e1
mov edx, dword [esp + 0x4c]
movzx eax, bl
xor ebx, ebx
cmp byte [edx + 9], bl
cmovne eax, ebx
mov bl, al
mov dword [esp + 0x30], ebx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
mov al, byte [eax + 8]
mov ah, byte [esp + 0x2f]
test al, al
je 0x1004a987
test ah, ah
jne 0x1004a939
cmp bl, 1
je 0x1004a939
cmp bl, 3
je 0x1004a939
cmp bl, 0xd
je 0x1004a939
cmp bl, 0xa
je 0x1004a939
cmp bl, 0xb
je 0x1004a939
cmp bl, 0xc
je 0x1004a939
cmp bl, 0xe
je 0x1004a939
cmp bl, 0x20
jae 0x1004a939
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
nop word [eax + eax]
mov ebx, dword [esp + 0x1c]
jmp 0x1004a897
test edi, edi
jle 0x1004a960
cmp bl, 0xa
je 0x1004a960
cmp bl, 0xb
je 0x1004a960
cmp bl, 0xc
je 0x1004a960
cmp bl, 0x20
mov dword [esp + 0x48], 0
cmovb edi, dword [esp + 0x48]
mov dword [esp + 0x18], edi
cmp byte [esp + 0x50], 0
mov edx, dword [esp + 0x14]
je 0x1004a987
cmp bl, 0x20
jae 0x1004a987
mov edx, dword [esp + 0x50]
xor edi, edi
movzx edx, dl
cmp bl, 0xc
cmovne edx, edi
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
cmp dword [edi], 0
jne 0x1004efa7
sub dword [esp + 0x78], 1
je 0x1004ee60
movzx edi, bl
cmp edi, 0x1f
ja case.default.0x1004a9ab
jmp dword [edi*4 + 0x1004f470]
mov ecx, dword [esp + 0x4c]
cmp byte [ecx + 9], 0
je case.0x1004a9ab.0
cmp byte [ecx + 0x5d], 0
jne 0x1004ee60
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004a9f4
mov eax, dword [esi + 4]
test eax, eax
je 0x1004a9e0
cmp dword [eax], 0
jne 0x1004a9e0
mov dword [eax], 0xa1
mov ebx, dword [esp + 0x1c]
xor eax, eax
mov dword [ecx + 0x78], eax
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x1004a893
cmp dword [eax - 4], 2
je 0x1004aa20
mov eax, dword [esi + 4]
test eax, eax
je 0x1004aa0c
cmp dword [eax], 0
jne 0x1004aa0c
mov dword [eax], 0xa0
mov ebx, dword [esp + 0x1c]
xor eax, eax
mov dword [ecx + 0x78], eax
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x1004a893
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
test eax, eax
js case.0x1004a9ab.0
mov dword [ecx + 0x78], eax
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x1c]
mov dword [esi + 0xc], eax
jmp 0x1004a893
mov ebx, dword [esp + 0x4c]
cmp byte [ebx + 9], 0
je case.0x1004a9ab.0
cmp dword [ebx + 0x60], 0
je 0x1004ee60
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 0x1004aa96
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 0x1004efa7
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004aac6
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x1004aab0
cmp dword [ecx], 0
jne 0x1004aab0
mov dword [ecx], 0xa1
xor eax, eax
lea ecx, [ebx + 0x5c]
push eax
mov edx, esi
call fcn.1004a070
mov byte [ebx + 0x5d], 1
jmp 0x1004a88b
cmp dword [eax - 4], 2
je 0x1004aaf4
mov eax, dword [esi + 4]
test eax, eax
je 0x1004aade
cmp dword [eax], 0
jne 0x1004aade
mov dword [eax], 0xa0
xor eax, eax
lea ecx, [ebx + 0x5c]
push eax
mov edx, esi
call fcn.1004a070
mov byte [ebx + 0x5d], 1
jmp 0x1004a88b
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
cmp eax, dword [esp + 0x64]
ja 0x1004ee60
push eax
mov edx, esi
lea ecx, [ebx + 0x5c]
call fcn.1004a070
mov byte [ebx + 0x5d], 1
jmp 0x1004a88b
test al, al
jne 0x1004ab33
cmp byte [esp + 0xa4], al
jne case.0x1004a9ab.0
mov edi, dword [esp + 0x34]
xor eax, eax
jmp 0x1004ab3d
mov edi, dword [esp + 0x34]
mov eax, dword [edi + 0x20]
mov eax, dword [eax + 4]
push eax
lea eax, [esp + 0x2b]
push eax
lea eax, [esp + 0xe4]
push dword [esp + 0x3f1c]
mov ecx, dword [esp + 0x58]
mov edx, esi
push eax
call fcn.10049bd0
cmp byte [edi + 0x224], 0
jne 0x1004efa7
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x1004a893
test al, al
jne 0x1004aba3
cmp byte [esp + 0xa4], al
jne case.0x1004a9ab.0
mov edi, dword [esp + 0x34]
xor eax, eax
push eax
lea eax, [esp + 0x2b]
push eax
lea eax, [esp + 0xc4]
jmp 0x1004ab4a
mov edi, dword [esp + 0x34]
mov eax, dword [edi + 0x20]
mov eax, dword [eax]
push eax
lea eax, [esp + 0x2b]
push eax
lea eax, [esp + 0xc4]
jmp 0x1004ab4a
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
jbe 0x1004ac08
cmp byte [esp + 0x27], 0
jne 0x1004ac08
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1004abe6
sub eax, 1
jne 0x1004abf6
shl ecx, 0x10
jmp 0x1004abf6
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x3f14]
mov dword [ecx], eax
mov edi, dword [esp + 0x34]
mov byte [esp + 0x27], 1
cmp byte [edi + 0x224], 0
jne 0x1004efa7
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004ac3c
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ac38
cmp dword [eax], 0
jne 0x1004ac38
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004ac66
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004ac56
sub eax, 1
jne 0x1004ac66
shl ecx, 0x10
jmp 0x1004ac66
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebx, dword [esp + 0x28]
add ebx, ecx
cmp dword [edi + 0x1d4], 0
mov dword [esp + 0x28], ebx
mov dword [esp + 0x3f10], ebx
jne 0x1004ab6a
push ebx
mov edx, ebp
lea ecx, [esp + 0x1d4]
call fcn.10049690
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x1004a893
mov ebp, dword [esi + 0xc]
xor ebx, ebx
sub ebp, dword [esi + 8]
sar ebp, 3
test ebp, ebp
je 0x1004a881
nop dword [eax]
mov ecx, dword [esi + 0xc]
mov eax, ecx
mov edi, dword [esi + 8]
sub eax, edi
sar eax, 3
cmp ebx, eax
jb 0x1004aced
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ace9
cmp dword [eax], 0
jne 0x1004ace9
mov dword [eax], 0x82
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
xor edx, edx
jmp 0x1004ad13
mov eax, dword [edi + ebx*8 + 4]
mov edx, dword [edi + ebx*8]
sub eax, 1
je 0x1004ad03
sub eax, 1
jne 0x1004ad13
shl edx, 0x10
jmp 0x1004ad13
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esp + 0x20]
sub ecx, edi
add eax, edx
sar ecx, 3
mov dword [esp + 0x20], eax
mov dword [esp + 0x3f0c], eax
lea eax, [ebx + 1]
cmp eax, ecx
jb 0x1004ad46
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ad42
cmp dword [eax], 0
jne 0x1004ad42
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004ad6d
mov eax, dword [edi + ebx*8 + 0xc]
mov ecx, dword [edi + ebx*8 + 8]
sub eax, 1
je 0x1004ad5d
sub eax, 1
jne 0x1004ad6d
shl ecx, 0x10
jmp 0x1004ad6d
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
add eax, ecx
push eax
lea ecx, [esp + 0x1d4]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x3f14], eax
call fcn.10049760
add ebx, 2
cmp ebx, ebp
jb 0x1004acc0
jmp 0x1004a881
mov ebp, dword [esi + 0xc]
mov eax, dword [esi + 8]
sub ebp, eax
sar ebp, 3
cmp bl, 6
sete bl
xor edi, edi
test ebp, ebp
je 0x1004a884
nop word [eax + eax]
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp edi, eax
jb 0x1004ade5
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ade1
cmp dword [eax], 0
jne 0x1004ade1
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004ae0b
mov eax, dword [edx + edi*8 + 4]
mov ecx, dword [edx + edi*8]
sub eax, 1
je 0x1004adfb
sub eax, 1
jne 0x1004ae0b
shl ecx, 0x10
jmp 0x1004ae0b
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test bl, bl
je 0x1004ae22
mov eax, dword [esp + 0x20]
add eax, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x3f0c], eax
jmp 0x1004ae37
mov eax, dword [esp + 0x28]
add eax, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x3f10], eax
mov eax, dword [esp + 0x20]
push dword [esp + 0x28]
mov edx, eax
lea ecx, [esp + 0x1d4]
xor bl, 1
call fcn.10049760
inc edi
cmp edi, ebp
jb 0x1004adc0
jmp 0x1004a881
mov eax, dword [esi + 0xc]
xor ebp, ebp
sub eax, dword [esi + 8]
sar eax, 3
mov dword [esp + 0x54], eax
mov dword [esp + 0x3c], ebp
cmp eax, 6
jb 0x1004b0de
lea ebx, [ebp + 2]
nop dword [eax]
mov edi, dword [esi + 0xc]
mov eax, edi
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp ebp, eax
jb 0x1004aead
mov eax, dword [esi + 4]
test eax, eax
je 0x1004aea9
cmp dword [eax], 0
jne 0x1004aea9
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1004aed4
mov eax, dword [edx + ebx*8 - 0xc]
mov ecx, dword [edx + ebx*8 - 0x10]
sub eax, 1
je 0x1004aec4
sub eax, 1
jne 0x1004aed4
shl ecx, 0x10
jmp 0x1004aed4
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x20]
add eax, ecx
mov ecx, edi
sub ecx, edx
mov dword [esp + 0x40], eax
sar ecx, 3
lea eax, [ebx - 1]
cmp eax, ecx
jb 0x1004af08
mov eax, dword [esi + 4]
test eax, eax
je 0x1004af04
cmp dword [eax], 0
jne 0x1004af04
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1004af2f
mov eax, dword [edx + ebx*8 - 4]
mov ecx, dword [edx + ebx*8 - 8]
sub eax, 1
je 0x1004af1f
sub eax, 1
jne 0x1004af2f
shl ecx, 0x10
jmp 0x1004af2f
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebp, dword [esp + 0x28]
mov eax, edi
sub eax, edx
add ebp, ecx
sar eax, 3
mov dword [esp + 0x48], ebp
cmp ebx, eax
jb 0x1004af60
mov eax, dword [esi + 4]
test eax, eax
je 0x1004af5c
cmp dword [eax], 0
jne 0x1004af5c
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1004af86
mov eax, dword [edx + ebx*8 + 4]
mov ecx, dword [edx + ebx*8]
sub eax, 1
je 0x1004af76
sub eax, 1
jne 0x1004af86
shl ecx, 0x10
jmp 0x1004af86
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x40]
add eax, ecx
mov ecx, edi
sub ecx, edx
mov dword [esp + 0x38], eax
sar ecx, 3
lea eax, [ebx + 1]
cmp eax, ecx
jb 0x1004afba
mov eax, dword [esi + 4]
test eax, eax
je 0x1004afb6
cmp dword [eax], 0
jne 0x1004afb6
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1004afe1
mov eax, dword [edx + ebx*8 + 0xc]
mov ecx, dword [edx + ebx*8 + 8]
sub eax, 1
je 0x1004afd1
sub eax, 1
jne 0x1004afe1
shl ecx, 0x10
jmp 0x1004afe1
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 0x1004b00d
mov eax, dword [esi + 4]
test eax, eax
je 0x1004b009
cmp dword [eax], 0
jne 0x1004b009
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1004b034
mov eax, dword [edx + ebx*8 + 0x14]
mov ecx, dword [edx + ebx*8 + 0x10]
sub eax, 1
je 0x1004b024
sub eax, 1
jne 0x1004b034
shl ecx, 0x10
jmp 0x1004b034
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x38]
sub edi, edx
add eax, ecx
sar edi, 3
mov dword [esp + 0x20], eax
lea eax, [ebx + 3]
cmp eax, edi
jb 0x1004b060
mov eax, dword [esi + 4]
test eax, eax
je 0x1004b05c
cmp dword [eax], 0
jne 0x1004b05c
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004b087
mov eax, dword [edx + ebx*8 + 0x1c]
mov ecx, dword [edx + ebx*8 + 0x18]
sub eax, 1
je 0x1004b077
sub eax, 1
jne 0x1004b087
shl ecx, 0x10
jmp 0x1004b087
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edi, dword [esp + 0x20]
lea eax, [ecx + ebp]
mov edx, dword [esp + 0x40]
lea ecx, [esp + 0x1d0]
push eax
push edi
push ebp
push dword [esp + 0x44]
mov dword [esp + 0x38], eax
push dword [esp + 0x58]
call fcn.100498e0
mov ebp, dword [esp + 0x3c]
add ebx, 6
add ebp, 6
mov dword [esp + 0x3f0c], edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x3f10], edi
lea eax, [ebx + 4]
mov dword [esp + 0x3c], ebp
cmp eax, dword [esp + 0x54]
jbe 0x1004ae80
mov ebx, dword [esp + 0x30]
cmp bl, 0x18
jne 0x1004e5bd
mov ecx, dword [esi + 0xc]
mov eax, ecx
mov edi, dword [esi + 8]
sub eax, edi
sar eax, 3
cmp ebp, eax
jb 0x1004b114
mov eax, dword [esi + 4]
test eax, eax
je 0x1004b110
cmp dword [eax], 0
jne 0x1004b110
mov dword [eax], 0x82
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
xor edx, edx
jmp 0x1004b13a
mov eax, dword [edi + ebp*8 + 4]
mov edx, dword [edi + ebp*8]
sub eax, 1
je 0x1004b12a
sub eax, 1
jne 0x1004b13a
shl edx, 0x10
jmp 0x1004b13a
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esp + 0x20]
sub ecx, edi
add eax, edx
sar ecx, 3
mov dword [esp + 0x20], eax
mov dword [esp + 0x3f0c], eax
lea eax, [ebp + 1]
cmp eax, ecx
jb 0x1004b16d
mov eax, dword [esi + 4]
test eax, eax
je 0x1004b169
cmp dword [eax], 0
jne 0x1004b169
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004b193
mov ecx, dword [edi + eax*8]
mov eax, dword [edi + eax*8 + 4]
sub eax, 1
je 0x1004b183
sub eax, 1
jne 0x1004b193
shl ecx, 0x10
jmp 0x1004b193
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x20]
add eax, ecx
push eax
mov edx, ebp
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x1d4]
mov dword [esp + 0x3f14], eax
call fcn.10049760
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x1004a88b
test al, al
je case.0x1004a9ab.0
cmp byte [esp + 0x2f60], 0
je 0x1004b245
push dword [esp + 0x2fac]
mov edx, dword [esp + 0x2fac]
lea ecx, [esp + 0x1d4]
mov byte [esp + 0x2f65], 1
call fcn.10049760
cmp byte [esp + 0x2fb0], 0
je 0x1004b22b
push 1
push dword [esp + 0x2f98]
lea eax, [esp + 0x2f90]
push dword [esp + 0x2f98]
lea edx, [esp + 0x1e4]
push eax
lea ecx, [esp + 0x1e0]
call fcn.10049240
mov byte [esp + 0x2f63], 1
mov word [esp + 0x2f60], 0
mov byte [esp + 0x2fb0], 0
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov byte [esp + 0x27], 1
mov dword [esi + 0xc], eax
jmp 0x1004a893
cmp edx, 0x10
jg 0x1004ee60
inc edx
mov ecx, edx
mov dword [esp + 0x14], edx
cmp ecx, dword [esp + 0x98]
jb 0x1004b28e
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x1004b28c
cmp dword [eax], 0
jne 0x1004b28c
mov dword [eax], 0x82
xor ecx, ecx
mov edx, dword [esp + 0x74]
mov eax, dword [esi + 0xc]
imul edx, ecx
add edx, dword [esp + 0x70]
mov dword [esp + 0x1c], edx
cmp eax, dword [esi + 8]
jne 0x1004b2bb
mov eax, dword [esi + 4]
test eax, eax
je 0x1004b2b7
cmp dword [eax], 0
jne 0x1004b2b7
mov dword [eax], 0xa1
xor eax, eax
jmp 0x1004b2df
cmp dword [eax - 4], 2
je 0x1004b2d7
mov eax, dword [esi + 4]
test eax, eax
je 0x1004b2d3
cmp dword [eax], 0
jne 0x1004b2d3
mov dword [eax], 0xa0
xor eax, eax
jmp 0x1004b2df
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x34]
cmp byte [ecx + 8], 0
je 0x1004b308
mov ecx, dword [edi + 0x268]
test ecx, ecx
je 0x1004b308
push eax
call fcn.10037610
test eax, eax
je 0x1004b305
mov eax, dword [eax]
jmp 0x1004b308
or eax, 0xffffffff
cmp bl, 0x1d
xorps xmm0, xmm0
mov ebx, dword [esp + 0x1c]
movups xmmword [ebx], xmm0
je 0x1004b3a2
mov ecx, dword [edi + 0x234]
add ecx, eax
cmp ecx, dword [edi + 0x22c]
jae 0x1004ee60
mov eax, dword [edi + 0x23c]
lea edx, [ecx*4]
mov ecx, dword [edx + eax]
mov dword [ebx + 4], ecx
cmp byte [edi + 0x30], 0
je 0x1004b38d
mov eax, dword [edi + 0x264]
test eax, eax
je 0x1004b373
test ecx, ecx
je 0x1004b366
mov eax, dword [eax + edx]
add eax, ecx
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], ecx
jmp 0x1004a88f
xor eax, eax
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], ecx
jmp 0x1004a88f
mov eax, dword [edi + 0x260]
test eax, eax
mov dword [esp + 0x54], 0
cmovs eax, dword [esp + 0x54]
add ecx, eax
mov dword [ebx + 4], ecx
mov eax, dword [edi + 0x23c]
mov eax, dword [edx + eax + 4]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], ecx
jmp 0x1004a88f
mov ecx, dword [edi + 0x238]
add ecx, eax
cmp ecx, dword [edi + 0x230]
jae 0x1004ee60
mov eax, dword [edi + 0x240]
mov eax, dword [eax + ecx*4]
mov dword [ebx + 0xc], eax
mov dword [ebx + 4], eax
mov eax, dword [edi + 0x240]
mov eax, dword [eax + ecx*4 + 4]
mov dword [ebx + 8], eax
jmp 0x1004a88f
cmp edx, 1
jl 0x1004ee60
dec edx
mov eax, edx
mov dword [esp + 0x14], edx
cmp edx, dword [esp + 0x98]
jb 0x1004b408
mov edi, dword [esp + 0x9c]
test edi, edi
je 0x1004b406
cmp dword [edi], 0
jne 0x1004b406
mov dword [edi], 0x82
xor eax, eax
mov ebx, dword [esp + 0x74]
imul ebx, eax
add ebx, dword [esp + 0x70]
mov dword [esp + 0x1c], ebx
jmp 0x1004a893
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 0xc]
cmp eax, ecx
jae 0x1004b42f
mov dl, byte [eax]
inc eax
mov dword [ebx + 0xc], eax
jmp 0x1004b442
mov eax, dword [ebx]
test eax, eax
je 0x1004b440
cmp dword [eax], 0
jne 0x1004b440
mov dword [eax], 0x55
xor dl, dl
movzx ecx, dl
mov byte [esp + 0x5f], dl
lea eax, [ecx - 8]
cmp eax, 0x1d
ja case.0x1004b45c.9
movzx eax, byte [eax + 0x1004f508]
jmp dword [eax*4 + 0x1004f4f0]
push 0
push 0x1015d690
jmp 0x1004b4bd
push 0
push 0x1015d534
lea eax, [esp + 0x1d8]
mov ecx, esi
push eax
lea eax, [esp + 0x3f1c]
push eax
lea edx, [esp + 0x3f1c]
call fcn.10049dd0
mov eax, dword [esp + 0x3f10]
mov ebp, dword [esp + 0x3f0c]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x20], ebp
mov dword [esi + 0xc], eax
jmp 0x1004a893
push 0
push 0x1015d6bc
lea eax, [esp + 0x1d8]
mov ecx, esi
push eax
lea eax, [esp + 0x3f1c]
push eax
lea edx, [esp + 0x3f1c]
call fcn.10049dd0
mov edx, dword [esp + 0x3f10]
mov ebp, dword [esp + 0x3f0c]
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], ebp
jmp 0x1004a88f
push 1
push 0x1015d854
lea eax, [esp + 0x1d8]
mov ecx, esi
push eax
lea eax, [esp + 0x3f1c]
push eax
lea edx, [esp + 0x3f1c]
call fcn.10049dd0
mov eax, dword [esp + 0x3f10]
mov ebp, dword [esp + 0x3f0c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], ebp
jmp 0x1004a88f
mov eax, dword [esp + 0x4c]
cmp byte [eax + 9], 0
jne case.0x1004b580.0
cmp dl, 0x26
jae case.0x1004b580.0
mov al, byte [eax + 8]
test al, al
je 0x1004b577
cmp dword [esp + 0x18], 0
jle 0x1004b577
cmp dl, 0x11
je 0x1004b577
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], 0
mov dword [esi + 0xc], eax
jmp 0x1004a893
cmp ecx, 0x21
ja case.0x1004b580.0
jmp dword [ecx*4 + 0x1004f528]
test al, al
je case.0x1004b580.0
mov edx, dword [esi + 0xc]
mov eax, edx
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
test eax, eax
jne 0x1004b5bc
mov eax, dword [esi + 4]
test eax, eax
je 0x1004b5b8
cmp dword [eax], 0
jne 0x1004b5b8
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor ebp, ebp
jmp 0x1004b5e0
mov eax, dword [ecx + 4]
mov ebp, dword [ecx]
sub eax, 1
je 0x1004b5d0
sub eax, 1
jne 0x1004b5e0
shl ebp, 0x10
jmp 0x1004b5e0
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
mov eax, edx
sub eax, ecx
sar eax, 3
cmp eax, 2
ja 0x1004b60e
mov eax, dword [esi + 4]
test eax, eax
je 0x1004b604
cmp dword [eax], 0
jne 0x1004b604
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov dword [esp + 0x3c], 0
jmp 0x1004b63b
mov eax, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x3c], ebx
sub eax, 1
je 0x1004b627
sub eax, 1
jne 0x1004b63b
shl ebx, 0x10
jmp 0x1004b637
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
mov dword [esp + 0x3c], ebx
mov eax, edx
sub eax, ecx
sar eax, 3
cmp eax, 4
ja 0x1004b663
mov eax, dword [esi + 4]
test eax, eax
je 0x1004b65f
cmp dword [eax], 0
jne 0x1004b65f
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor ebx, ebx
jmp 0x1004b688
mov eax, dword [ecx + 0x24]
mov ebx, dword [ecx + 0x20]
sub eax, 1
je 0x1004b678
sub eax, 1
jne 0x1004b688
shl ebx, 0x10
jmp 0x1004b688
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
mov eax, edx
sub eax, ecx
sar eax, 3
cmp eax, 1
ja 0x1004b6b0
mov eax, dword [esi + 4]
test eax, eax
je 0x1004b6ac
cmp dword [eax], 0
jne 0x1004b6ac
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1004b6d5
mov eax, dword [ecx + 0xc]
mov edi, dword [ecx + 8]
sub eax, 1
je 0x1004b6c5
sub eax, 1
jne 0x1004b6d5
shl edi, 0x10
jmp 0x1004b6d5
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
sub edx, ecx
sar edx, 3
cmp edx, 2
jae 0x1004b6f3
mov eax, dword [esi + 4]
test eax, eax
je 0x1004b708
cmp dword [eax], 0
jne 0x1004b708
mov dword [eax], 0x82
jmp 0x1004b708
mov eax, dword [esp + 0x3c]
sub eax, edi
sub eax, ebp
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 8]
mov dword [eax + 0x14], 0
mov ecx, dword [esi + 0xc]
mov eax, ecx
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp eax, 3
ja 0x1004b736
mov eax, dword [esi + 4]
test eax, eax
je 0x1004b732
cmp dword [eax], 0
jne 0x1004b732
mov dword [eax], 0x82
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor edi, edi
jmp 0x1004b75b
mov eax, dword [edx + 0x1c]
mov edi, dword [edx + 0x18]
sub eax, 1
je 0x1004b74b
sub eax, 1
jne 0x1004b75b
shl edi, 0x10
jmp 0x1004b75b
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
sub ecx, edx
sar ecx, 3
cmp ecx, 4
jae 0x1004b779
mov eax, dword [esi + 4]
test eax, eax
je 0x1004b78c
cmp dword [eax], 0
jne 0x1004b78c
mov dword [eax], 0x82
jmp 0x1004b78c
sub ebx, edi
sub ebx, dword [esp + 0x3c]
mov dword [edx + 0x20], ebx
mov eax, dword [esi + 8]
mov dword [eax + 0x24], 0
cmp byte [esp + 0x5f], 1
mov edi, dword [esp + 0x34]
mov eax, dword [edi + 0x20]
jne 0x1004b79e
mov eax, dword [eax]
jmp 0x1004b7a1
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0xdc]
push eax
lea eax, [esp + 0x2b]
push eax
push dword [esp + 0x3f1c]
lea eax, [esp + 0xc8]
cmovne eax, edx
mov edx, esi
push eax
call fcn.10049bd0
cmp byte [edi + 0x224], 0
jne 0x1004efa7
mov eax, dword [esi + 8]
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x1004a893
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x1004b815
mov eax, dword [esi + 4]
test eax, eax
je 0x1004b811
cmp dword [eax], 0
jne 0x1004b811
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebx, ebx
jmp 0x1004b83f
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebx, dword [ecx]
sub eax, 1
je 0x1004b82f
sub eax, 1
jne 0x1004b83f
shl ebx, 0x10
jmp 0x1004b83f
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
cmp ecx, edx
jne 0x1004b8a2
mov eax, dword [esi + 4]
test eax, eax
je 0x1004b85b
cmp dword [eax], 0
jne 0x1004b85b
mov dword [eax], 0xa1
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
xor edi, edi
mov eax, dword [esi + 0x10]
lea eax, [edx + eax*8]
cmp ecx, eax
jne 0x1004b8e1
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x1c]
test eax, eax
je 0x1004a897
cmp dword [eax], 0
mov ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
jne 0x1004a897
mov dword [eax], 0x82
jmp 0x1004a887
lea ebp, [ecx - 8]
mov dword [esi + 0xc], ebp
mov eax, dword [ebp + 4]
mov edi, dword [ebp]
sub eax, 1
je 0x1004b8bd
sub eax, 1
jne 0x1004b8cd
shl edi, 0x10
jmp 0x1004b8cd
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov ecx, ebp
test edi, edi
je 0x1004b85b
test ebx, ebx
je 0x1004b85b
mov edi, 1
jmp 0x1004b85d
mov dword [ecx], edi
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x1004a887
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x1004b91c
mov eax, dword [esi + 4]
test eax, eax
je 0x1004b918
cmp dword [eax], 0
jne 0x1004b918
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebx, ebx
jmp 0x1004b946
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebx, dword [ecx]
sub eax, 1
je 0x1004b936
sub eax, 1
jne 0x1004b946
shl ebx, 0x10
jmp 0x1004b946
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
cmp ecx, edx
jne 0x1004b964
mov eax, dword [esi + 4]
test eax, eax
je 0x1004b994
cmp dword [eax], 0
jne 0x1004b994
mov dword [eax], 0xa1
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
jmp 0x1004b994
lea eax, [ecx - 8]
mov dword [esi + 0xc], eax
mov ecx, eax
mov edi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004b980
sub eax, 1
jne 0x1004b990
shl edi, 0x10
jmp 0x1004b990
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
test edi, edi
jne 0x1004b99c
test ebx, ebx
jne 0x1004b99c
xor edi, edi
jmp 0x1004b9a1
mov edi, 1
mov eax, dword [esi + 0x10]
mov ebx, dword [esp + 0x1c]
lea eax, [edx + eax*8]
mov edx, dword [esp + 0x14]
cmp ecx, eax
jne 0x1004b9de
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x18]
test eax, eax
je 0x1004a897
cmp dword [eax], 0
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
jne 0x1004a897
mov dword [eax], 0x82
jmp 0x1004a88b
mov dword [ecx], edi
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x1004a893
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
cmp ecx, edi
jne 0x1004ba19
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ba15
cmp dword [eax], 0
jne 0x1004ba15
mov dword [eax], 0xa1
mov edi, dword [esi + 8]
mov ecx, dword [esi + 0xc]
xor edx, edx
jmp 0x1004ba43
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1004ba33
sub eax, 1
jne 0x1004ba43
shl edx, 0x10
jmp 0x1004ba43
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 + 0x18]
cmp ecx, eax
jne 0x1004ba78
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x1004a897
cmp dword [eax], 0
mov edi, dword [esp + 0x18]
jne 0x1004a897
mov dword [eax], 0x82
jmp 0x1004a88f
xor eax, eax
test edx, edx
mov edx, dword [esp + 0x14]
sete al
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x1004a897
test al, al
je case.0x1004b580.0
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 4]
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004ecf8
mov eax, dword [esi + 4]
test eax, eax
je 0x1004bac9
cmp dword [eax], 0
jne 0x1004bac9
mov dword [eax], 0xa1
mov dword [esp + 0x44], 0
jmp 0x1004ed26
test al, al
je case.0x1004b580.0
mov ecx, dword [esi + 0xc]
cmp ecx, dword [esi + 8]
jne 0x1004bafc
mov eax, dword [esi + 4]
test eax, eax
je 0x1004baf8
cmp dword [eax], 0
jne 0x1004baf8
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004bb26
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1004bb16
sub eax, 1
jne 0x1004bb26
shl ecx, 0x10
jmp 0x1004bb26
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x24]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004bb4e
mov eax, dword [esi + 4]
test eax, eax
je 0x1004bb4a
cmp dword [eax], 0
jne 0x1004bb4a
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004bb78
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004bb68
sub eax, 1
jne 0x1004bb78
shl ecx, 0x10
jmp 0x1004bb78
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [edx + 0x24]
mov dword [eax], ecx
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
cmp ecx, edi
jne 0x1004bba3
mov eax, dword [esi + 4]
test eax, eax
je 0x1004bb9f
cmp dword [eax], 0
jne 0x1004bb9f
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
xor edx, edx
jmp 0x1004bbcd
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1004bbbd
sub eax, 1
jne 0x1004bbcd
shl edx, 0x10
jmp 0x1004bbcd
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
cmp ecx, edi
jne 0x1004bbe7
mov eax, dword [esi + 4]
test eax, eax
je 0x1004bbe3
cmp dword [eax], 0
jne 0x1004bbe3
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004bc11
lea eax, [ecx - 8]
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004bc01
sub eax, 1
jne 0x1004bc11
shl ecx, 0x10
jmp 0x1004bc11
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edi, dword [esp + 0x34]
mov byte [esp + 0x27], 1
mov eax, dword [edi + 0x20]
add dword [eax], ecx
mov eax, dword [edi + 0x20]
add dword [eax + 4], edx
cmp byte [edi + 0x2f], 0
jne 0x1004efa7
cmp byte [esp + 0x2f], 0
je case.0x1004b580.0
mov ebx, dword [esp + 0x28]
add ebp, ecx
mov eax, dword [esi + 8]
add ebx, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x3f10], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x3f0c], ebp
mov dword [esi + 0xc], eax
jmp 0x1004a893
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x1004bcab
mov eax, dword [esi + 4]
test eax, eax
je 0x1004bc85
cmp dword [eax], 0
jne 0x1004bc85
mov dword [eax], 0xa1
mov ecx, dword [esi + 0x10]
xor edx, edx
mov eax, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea ecx, [eax + ecx*8]
mov eax, edx
cdq
xor eax, edx
sub eax, edx
cmp edi, ecx
jne 0x1004d2c1
mov edi, dword [esp + 0x18]
jmp 0x1004ba51
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1004bcc5
sub eax, 1
jne 0x1004bcd5
shl edx, 0x10
jmp 0x1004bcd5
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 ecx, [eax + ecx*8]
cmp edx, 0x80000001
jge 0x1004bc93
cmp edi, ecx
jne 0x1004bd0c
mov eax, dword [esi + 4]
test eax, eax
je 0x1004a88f
cmp dword [eax], 0
jne 0x1004a88f
mov dword [eax], 0x82
jmp 0x1004a88f
mov dword [edi], 0x7fffffff
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1004a88f
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x1004bd4b
mov eax, dword [esi + 4]
test eax, eax
je 0x1004bd47
cmp dword [eax], 0
jne 0x1004bd47
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebx, ebx
jmp 0x1004bd75
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebx, dword [ecx]
sub eax, 1
je 0x1004bd65
sub eax, 1
jne 0x1004bd75
shl ebx, 0x10
jmp 0x1004bd75
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
cmp ecx, edx
jne 0x1004bd95
mov eax, dword [esi + 4]
test eax, eax
je 0x1004bd91
cmp dword [eax], 0
jne 0x1004bd91
mov dword [eax], 0xa1
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
xor edi, edi
jmp 0x1004bdbf
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1004bdaf
sub eax, 1
jne 0x1004bdbf
shl edi, 0x10
jmp 0x1004bdbf
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]
mov edx, dword [esp + 0x14]
cmp ecx, eax
jne 0x1004bdd6
mov ebx, dword [esp + 0x1c]
jmp 0x1004b9b3
lea eax, [edi + ebx]
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov ebx, dword [esp + 0x1c]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1004a893
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x1004be18
mov eax, dword [esi + 4]
test eax, eax
je 0x1004be14
cmp dword [eax], 0
jne 0x1004be14
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebx, ebx
jmp 0x1004be42
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebx, dword [ecx]
sub eax, 1
je 0x1004be32
sub eax, 1
jne 0x1004be42
shl ebx, 0x10
jmp 0x1004be42
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
cmp ecx, edx
jne 0x1004be62
mov eax, dword [esi + 4]
test eax, eax
je 0x1004be5e
cmp dword [eax], 0
jne 0x1004be5e
mov dword [eax], 0xa1
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
xor edi, edi
jmp 0x1004be8c
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1004be7c
sub eax, 1
jne 0x1004be8c
shl edi, 0x10
jmp 0x1004be8c
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]
mov edx, dword [esp + 0x14]
cmp ecx, eax
jne 0x1004bea3
mov ebx, dword [esp + 0x1c]
jmp 0x1004b9b3
sub edi, ebx
mov dword [ecx], edi
jmp 0x1004bddb
test al, al
je 0x1004bf5b
cmp byte [esp + 0x50], 0
je 0x1004bf5b
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004bedd
mov eax, dword [esi + 4]
test eax, eax
je 0x1004bed9
cmp dword [eax], 0
jne 0x1004bed9
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1004bf01
cmp dword [eax - 4], 2
je 0x1004bef9
mov eax, dword [esi + 4]
test eax, eax
je 0x1004bef5
cmp dword [eax], 0
jne 0x1004bef5
mov dword [eax], 0xa0
xor edx, edx
jmp 0x1004bf01
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov edx, dword [eax]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004bf26
mov eax, dword [esi + 4]
test eax, eax
je 0x1004bf1b
cmp dword [eax], 0
jne 0x1004bf1b
mov dword [eax], 0xa1
xor ecx, ecx
mov byte [esp + 0x50], cl
jmp 0x1004bfef
cmp dword [eax - 4], 2
je 0x1004bf49
mov eax, dword [esi + 4]
test eax, eax
je 0x1004bf3e
cmp dword [eax], 0
jne 0x1004bf3e
mov dword [eax], 0xa0
xor ecx, ecx
mov byte [esp + 0x50], cl
jmp 0x1004bfef
add eax, 0xfffffff8
mov byte [esp + 0x50], 0
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
jmp 0x1004bfef
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
cmp ecx, edi
jne 0x1004bf81
mov eax, dword [esi + 4]
test eax, eax
je 0x1004bf7d
cmp dword [eax], 0
jne 0x1004bf7d
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
xor edx, edx
jmp 0x1004bfab
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1004bf9b
sub eax, 1
jne 0x1004bfab
shl edx, 0x10
jmp 0x1004bfab
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
cmp ecx, edi
jne 0x1004bfc5
mov eax, dword [esi + 4]
test eax, eax
je 0x1004bfc1
cmp dword [eax], 0
jne 0x1004bfc1
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004bfef
lea eax, [ecx - 8]
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004bfdf
sub eax, 1
jne 0x1004bfef
shl ecx, 0x10
jmp 0x1004bfef
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
call fcn.10036ab0
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea ecx, [ecx + edx*8]
jmp 0x1004bc9a
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x1004c04c
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c01f
cmp dword [eax], 0
jne 0x1004c01f
mov dword [eax], 0xa1
mov ecx, dword [esi + 0x10]
xor edx, edx
mov eax, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edi, eax
je 0x1004bca2
neg edx
mov dword [edi], edx
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1004a88f
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x1004c066
sub eax, 1
jne 0x1004c076
shl edx, 0x10
jmp 0x1004c076
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 edx, 0x80000001
jge 0x1004c02d
cmp edi, eax
jne 0x1004bd0c
mov eax, dword [esi + 4]
test eax, eax
je 0x1004a88f
cmp dword [eax], 0
jne 0x1004a88f
mov dword [eax], 0x82
jmp 0x1004a88f
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x1004c0d7
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c0d3
cmp dword [eax], 0
jne 0x1004c0d3
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebx, ebx
jmp 0x1004c101
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebx, dword [ecx]
sub eax, 1
je 0x1004c0f1
sub eax, 1
jne 0x1004c101
shl ebx, 0x10
jmp 0x1004c101
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
cmp ecx, edx
jne 0x1004c121
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c11d
cmp dword [eax], 0
jne 0x1004c11d
mov dword [eax], 0xa1
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
xor edi, edi
jmp 0x1004c14b
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1004c13b
sub eax, 1
jne 0x1004c14b
shl edi, 0x10
jmp 0x1004c14b
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]
mov edx, dword [esp + 0x14]
cmp ecx, eax
jne 0x1004c162
mov ebx, dword [esp + 0x1c]
jmp 0x1004b9b3
xor eax, eax
cmp edi, ebx
mov ebx, dword [esp + 0x1c]
sete al
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x1004a893
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
test al, al
je 0x1004a897
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004c1b0
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c1ac
cmp dword [eax], 0
jne 0x1004c1ac
mov dword [eax], 0xa1
xor edi, edi
jmp 0x1004c1d4
cmp dword [eax - 4], 2
je 0x1004c1cc
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c1c8
cmp dword [eax], 0
jne 0x1004c1c8
mov dword [eax], 0xa0
xor edi, edi
jmp 0x1004c1d4
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov edi, dword [eax]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004c1f2
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c1ee
cmp dword [eax], 0
jne 0x1004c1ee
mov dword [eax], 0xa1
xor ebx, ebx
jmp 0x1004c216
cmp dword [eax - 4], 2
je 0x1004c20e
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c20a
cmp dword [eax], 0
jne 0x1004c20a
mov dword [eax], 0xa0
xor ebx, ebx
jmp 0x1004c216
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov ebx, dword [eax]
mov edx, dword [esi + 0xc]
xor eax, eax
mov ecx, dword [esi + 8]
mov ebp, edx
sub ebp, ecx
mov dword [esp + 0x40], ebx
sar ebp, 3
sub ebp, ebx
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x18], eax
cmp edi, 0x1c
ja case.0x1004c247.4
movzx eax, byte [edi + 0x1004f5f0]
jmp dword [eax*4 + 0x1004f5b0]
cmp ebx, 3
jne 0x1004ee60
cmp byte [esp + 0x2f], 0
je 0x1004c27c
mov edi, dword [esp + 0x34]
cmp dword [edi + 0x1d4], 0
je 0x1004ee60
cmp dword [edi + 0x1d8], 7
jne 0x1004ee60
mov eax, dword [esi + 0x10]
lea eax, [ecx + eax*8]
cmp edx, eax
jne 0x1004c2a1
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c29b
cmp dword [eax], 0
jne 0x1004c29b
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ebp, dword [esp + 0x20]
jmp 0x1004c2b8
mov ebp, dword [esp + 0x20]
mov dword [edx], ebp
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1004c2e4
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c2f8
cmp dword [eax], 0
jne 0x1004c2f8
mov dword [eax], 0x82
mov dword [esp + 0x44], 2
jmp 0x1004a88b
mov eax, dword [esp + 0x28]
mov dword [edx], eax
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
mov dword [esp + 0x44], 2
jmp 0x1004a88b
test ebx, ebx
jne 0x1004ee60
cmp byte [esp + 0x2f], bl
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
je 0x1004a897
mov edi, dword [esp + 0x34]
mov ecx, dword [edi + 0xc]
movsx eax, word [ecx + 0x16]
movsx edx, word [ecx + 0x3a]
add eax, 6
add eax, edx
cmp eax, dword [ecx + 4]
jbe 0x1004c354
push 0
mov edx, 6
call fcn.10037120
test eax, eax
jne 0x1004efa7
mov dword [edi + 0x1d4], 1
mov dword [edi + 0x1d8], 0
jmp 0x1004a887
test ebx, ebx
jne 0x1004ee60
cmp byte [esp + 0x2f], bl
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
je 0x1004a897
mov ecx, dword [esp + 0x34]
cmp dword [ecx + 0x1d4], edi
je 0x1004ee60
mov edi, dword [ecx + 0x1d8]
lea eax, [edi + 1]
mov dword [ecx + 0x1d8], eax
lea eax, [edi - 1]
cmp eax, 5
ja 0x1004a887
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 0x1004c3e1
push 0
mov edx, 1
call fcn.10037120
test eax, eax
jne 0x1004ee60
lea eax, [edi - 3]
cmp edi, 3
jg 0x1004c3eb
mov eax, edi
mov ebp, dword [esp + 0x20]
add eax, eax
mov ecx, dword [esp + 0x28]
mov dword [esp + eax*4 + 0x114], ebp
mov dword [esp + eax*4 + 0x118], ecx
cmp edi, 3
je 0x1004c411
cmp edi, 6
jne 0x1004a88b
push dword [esp + 0x130]
mov edx, dword [esp + 0x120]
lea ecx, [esp + 0x1d4]
push dword [esp + 0x130]
push dword [esp + 0x130]
push dword [esp + 0x130]
push dword [esp + 0x130]
call fcn.100498e0
jmp 0x1004a88b
cmp ebx, 1
jne 0x1004ee60
cmp byte [esp + 0x2f], 0
je 0x1004c4a6
mov eax, dword [esp + 0x68]
xorps xmm0, xmm0
movups xmmword [esp + 0xa0], xmm0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xf0], 0
movq qword [esp + 0xb0], xmm0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xa0], eax
mov word [esp + 0xa4], 0x100
mov dword [esp + 0x44], 1
jmp 0x1004a887
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 0x284]
mov dword [esp + 0x38], edx
test edx, edx
je 0x1004ee60
xor eax, eax
cmp edi, 0x12
sete al
add eax, 0xfffffff3
add edi, eax
mov eax, dword [edx]
imul eax, edi
mov dword [esp + 0x44], edi
cmp ebx, eax
jne 0x1004ee60
lea ebx, [edi + ebp]
test edi, edi
je 0x1004c612
mov dword [esp + 0x48], edi
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp ebp, eax
jb 0x1004c51b
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c517
cmp dword [eax], 0
jne 0x1004c517
mov dword [eax], 0x82
xor edi, edi
jmp 0x1004c541
mov eax, dword [ecx + ebp*8 + 4]
mov edi, dword [ecx + ebp*8]
sub eax, 1
je 0x1004c531
sub eax, 1
jne 0x1004c541
shl edi, 0x10
jmp 0x1004c541
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
cmp dword [edx], 1
jbe 0x1004c5cd
mov ebp, 1
mov dword [esp + 0x30], 4
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp ebx, eax
jb 0x1004c57c
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c578
cmp dword [eax], 0
jne 0x1004c578
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004c5a2
mov eax, dword [edx + ebx*8 + 4]
mov ecx, dword [edx + ebx*8]
sub eax, 1
je 0x1004c592
sub eax, 1
jne 0x1004c5a2
shl ecx, 0x10
jmp 0x1004c5a2
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
mov edx, dword [edx + 0x88]
mov edx, dword [eax + edx]
call fcn.1002e7c0
mov edx, dword [esp + 0x38]
inc ebp
add dword [esp + 0x30], 4
add edi, eax
inc ebx
cmp ebp, dword [edx]
jb 0x1004c557
mov ebp, dword [esp + 0x3c]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp ebp, eax
jbe 0x1004c5f0
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c5fe
cmp dword [eax], 0
jne 0x1004c5fe
mov dword [eax], 0x82
jmp 0x1004c5fe
mov dword [ecx + ebp*8], edi
mov eax, dword [esi + 8]
mov dword [eax + ebp*8 + 4], 0
inc ebp
sub dword [esp + 0x48], 1
mov dword [esp + 0x3c], ebp
jne 0x1004c4f6
mov edi, dword [esp + 0x44]
mov ecx, dword [esi + 0xc]
mov eax, ecx
sub eax, dword [esi + 8]
mov edx, dword [esp + 0x40]
sub edx, edi
sar eax, 3
cmp edx, eax
jbe 0x1004c646
mov eax, dword [esi + 4]
test eax, eax
je 0x1004a887
cmp dword [eax], 0
jne 0x1004a887
mov dword [eax], 0xa1
jmp 0x1004a887
lea eax, [edx*8]
sub ecx, eax
mov dword [esi + 0xc], ecx
jmp 0x1004a887
mov ebp, dword [esp + 0x34]
mov edi, dword [ebp + 0x284]
cmp ebx, 1
jne 0x1004ee60
test edi, edi
je 0x1004ee60
cmp edx, ecx
jne 0x1004c68c
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c688
cmp dword [eax], 0
jne 0x1004c688
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004c6b8
cmp dword [edx - 4], 2
je 0x1004c6a8
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c6a4
cmp dword [eax], 0
jne 0x1004c6a4
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x1004c6b8
lea eax, [edx - 8]
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
test ecx, ecx
js 0x1004ee60
mov edx, dword [edi]
lea eax, [edx + ecx]
cmp eax, dword [ebp + 0x28c]
ja 0x1004ee60
lea eax, [edx*4]
push eax
mov eax, dword [ebp + 0x288]
push dword [edi + 0x88]
lea eax, [eax + ecx*4]
push eax
call fcn.1011d990
add esp, 0xc
jmp 0x1004a887
cmp ebx, 2
jne 0x1004ee60
cmp edx, ecx
jne 0x1004c717
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c713
cmp dword [eax], 0
jne 0x1004c713
mov dword [eax], 0xa1
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor ebx, ebx
jmp 0x1004c741
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ebx, dword [edx]
sub eax, 1
je 0x1004c731
sub eax, 1
jne 0x1004c741
shl ebx, 0x10
jmp 0x1004c741
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
cmp edx, ecx
jne 0x1004c761
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c75d
cmp dword [eax], 0
jne 0x1004c75d
mov dword [eax], 0xa1
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
xor edi, edi
jmp 0x1004c78b
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edi, dword [edx]
sub eax, 1
je 0x1004c77b
sub eax, 1
jne 0x1004c78b
shl edi, 0x10
jmp 0x1004c78b
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esi + 0x10]
lea eax, [ecx + eax*8]
cmp edx, eax
jne 0x1004c7b4
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c7c7
cmp dword [eax], 0
jne 0x1004c7c7
mov dword [eax], 0x82
mov dword [esp + 0x44], 1
jmp 0x1004a887
lea eax, [edi + ebx]
mov dword [edx], eax
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
mov dword [esp + 0x44], 1
jmp 0x1004a887
cmp ebx, 2
jne 0x1004ee60
cmp edx, ecx
jne 0x1004c7fd
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c7f9
cmp dword [eax], 0
jne 0x1004c7f9
mov dword [eax], 0xa1
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor ebx, ebx
jmp 0x1004c827
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ebx, dword [edx]
sub eax, 1
je 0x1004c817
sub eax, 1
jne 0x1004c827
shl ebx, 0x10
jmp 0x1004c827
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
cmp edx, ecx
jne 0x1004c847
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c843
cmp dword [eax], 0
jne 0x1004c843
mov dword [eax], 0xa1
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
xor edi, edi
jmp 0x1004c871
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edi, dword [edx]
sub eax, 1
je 0x1004c861
sub eax, 1
jne 0x1004c871
shl edi, 0x10
jmp 0x1004c871
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esi + 0x10]
lea eax, [ecx + eax*8]
cmp edx, eax
jne 0x1004c8a2
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c7c7
cmp dword [eax], 0
jne 0x1004c7c7
mov dword [eax], 0x82
mov dword [esp + 0x44], 1
jmp 0x1004a887
sub edi, ebx
mov dword [edx], edi
jmp 0x1004c7b9
cmp ebx, 2
jne 0x1004ee60
cmp edx, ecx
jne 0x1004c8d4
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c8d0
cmp dword [eax], 0
jne 0x1004c8d0
mov dword [eax], 0xa1
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1004c8fe
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edi, dword [edx]
sub eax, 1
je 0x1004c8ee
sub eax, 1
jne 0x1004c8fe
shl edi, 0x10
jmp 0x1004c8fe
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
cmp edx, ecx
jne 0x1004c918
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c914
cmp dword [eax], 0
jne 0x1004c914
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004c942
lea eax, [edx - 8]
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004c932
sub eax, 1
jne 0x1004c942
shl ecx, 0x10
jmp 0x1004c942
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, edi
call fcn.1002e7c0
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea ecx, [ecx + edx*8]
cmp edi, ecx
jne 0x1004c980
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c7c7
cmp dword [eax], 0
jne 0x1004c7c7
mov dword [eax], 0x82
mov dword [esp + 0x44], 1
jmp 0x1004a887
mov dword [edi], eax
jmp 0x1004c7b9
cmp ebx, 2
jne 0x1004ee60
cmp edx, ecx
jne 0x1004c9b0
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c9ac
cmp dword [eax], 0
jne 0x1004c9ac
mov dword [eax], 0xa1
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1004c9da
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edi, dword [edx]
sub eax, 1
je 0x1004c9ca
sub eax, 1
jne 0x1004c9da
shl edi, 0x10
jmp 0x1004c9da
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
cmp edx, ecx
jne 0x1004c9f4
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c9f0
cmp dword [eax], 0
jne 0x1004c9f0
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004ca1e
lea eax, [edx - 8]
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004ca0e
sub eax, 1
jne 0x1004ca1e
shl ecx, 0x10
jmp 0x1004ca1e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test edi, edi
je 0x1004ee60
mov edx, edi
call fcn.10036ab0
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea ecx, [ecx + edx*8]
cmp edi, ecx
jne 0x1004c980
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c7c7
cmp dword [eax], 0
jne 0x1004c7c7
mov dword [eax], 0x82
mov dword [esp + 0x44], 1
jmp 0x1004a887
cmp ebx, 2
jne 0x1004ee60
mov edi, dword [esp + 0x34]
cmp dword [edi + 0x284], 0
je 0x1004ee60
cmp edx, ecx
jne 0x1004ca9c
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ca98
cmp dword [eax], 0
jne 0x1004ca98
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1004cac8
cmp dword [edx - 4], 2
je 0x1004cab8
mov eax, dword [esi + 4]
test eax, eax
je 0x1004cab4
cmp dword [eax], 0
jne 0x1004cab4
mov dword [eax], 0xa0
xor edx, edx
jmp 0x1004cac8
lea eax, [edx - 8]
mov dword [esi + 0xc], eax
mov edx, dword [eax]
test edx, edx
js 0x1004ee60
cmp edx, dword [edi + 0x28c]
jae 0x1004ee60
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004cafe
mov eax, dword [esi + 4]
test eax, eax
je 0x1004caee
cmp dword [eax], 0
jne 0x1004caee
mov dword [eax], 0xa1
mov eax, dword [edi + 0x288]
xor ecx, ecx
mov dword [eax + edx*4], ecx
jmp 0x1004a887
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004cb24
sub eax, 1
jne 0x1004cb34
mov eax, dword [edi + 0x288]
shl ecx, 0x10
mov dword [eax + edx*4], ecx
jmp 0x1004a887
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [edi + 0x288]
mov dword [eax + edx*4], ecx
jmp 0x1004a887
cmp ebx, 1
jne 0x1004ee60
mov ebx, dword [esp + 0x34]
cmp dword [ebx + 0x284], 0
je 0x1004ee60
cmp edx, ecx
jne 0x1004cb76
mov eax, dword [esi + 4]
test eax, eax
je 0x1004cb72
cmp dword [eax], 0
jne 0x1004cb72
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004cba2
cmp dword [edx - 4], 2
je 0x1004cb92
mov eax, dword [esi + 4]
test eax, eax
je 0x1004cb8e
cmp dword [eax], 0
jne 0x1004cb8e
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x1004cba2
lea eax, [edx - 8]
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
test ecx, ecx
js 0x1004ee60
cmp ecx, dword [ebx + 0x28c]
jae 0x1004ee60
mov eax, dword [ebx + 0x288]
mov edx, dword [esi + 0xc]
mov edi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1004c8a4
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c7c7
cmp dword [eax], 0
jne 0x1004c7c7
mov dword [eax], 0x82
mov dword [esp + 0x44], 1
jmp 0x1004a887
cmp ebx, 4
jne 0x1004ee60
cmp edx, ecx
jne 0x1004cc21
mov eax, dword [esi + 4]
test eax, eax
je 0x1004cc17
cmp dword [eax], 0
jne 0x1004cc17
mov dword [eax], 0xa1
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov dword [esp + 0x30], 0
jmp 0x1004cc5b
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
sub eax, 1
je 0x1004cc45
sub eax, 1
mov eax, dword [edx]
je 0x1004cc3c
mov dword [esp + 0x30], eax
jmp 0x1004cc5b
shl eax, 0x10
mov dword [esp + 0x30], eax
jmp 0x1004cc5b
mov ebx, dword [edx]
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
mov dword [esp + 0x30], ebx
cmp edx, ecx
jne 0x1004cc7b
mov eax, dword [esi + 4]
test eax, eax
je 0x1004cc77
cmp dword [eax], 0
jne 0x1004cc77
mov dword [eax], 0xa1
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor ebp, ebp
jmp 0x1004cca5
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ebp, dword [edx]
sub eax, 1
je 0x1004cc95
sub eax, 1
jne 0x1004cca5
shl ebp, 0x10
jmp 0x1004cca5
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
cmp edx, ecx
jne 0x1004ccc5
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ccc1
cmp dword [eax], 0
jne 0x1004ccc1
mov dword [eax], 0xa1
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1004ccef
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edi, dword [edx]
sub eax, 1
je 0x1004ccdf
sub eax, 1
jne 0x1004ccef
shl edi, 0x10
jmp 0x1004ccef
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
cmp edx, ecx
jne 0x1004cd0f
mov eax, dword [esi + 4]
test eax, eax
je 0x1004cd0b
cmp dword [eax], 0
jne 0x1004cd0b
mov dword [eax], 0xa1
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
xor ebx, ebx
jmp 0x1004cd39
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ebx, dword [edx]
sub eax, 1
je 0x1004cd29
sub eax, 1
jne 0x1004cd39
shl ebx, 0x10
jmp 0x1004cd39
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
mov eax, dword [esi + 0x10]
lea eax, [ecx + eax*8]
cmp edx, eax
jne 0x1004cd6a
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c7c7
cmp dword [eax], 0
jne 0x1004c7c7
mov dword [eax], 0x82
mov dword [esp + 0x44], 1
jmp 0x1004a887
cmp ebp, dword [esp + 0x30]
cmovle edi, ebx
mov dword [edx], edi
jmp 0x1004c7b9
test ebx, ebx
jne 0x1004ee60
mov eax, dword [esp + 0x34]
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 0x1004c8a4
mov eax, dword [esi + 4]
test eax, eax
je 0x1004c7c7
cmp dword [eax], ebx
jne 0x1004c7c7
mov dword [eax], 0x82
mov dword [esp + 0x44], 1
jmp 0x1004a887
test ebx, ebx
js 0x1004ee60
test edi, edi
js 0x1004ee60
cmp ebx, 3
jle 0x1004ce0b
mov ebx, 3
mov edi, ebx
mov dword [esp + 0x18], edi
jmp 0x1004ce22
mov ebp, dword [esp + 0x20]
mov edi, ebx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], edi
cmp ebx, 1
jl 0x1004a930
lea edx, [esp + ebx*4 + 0x78]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004ce44
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ce40
cmp dword [eax], 0
jne 0x1004ce40
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004ce6e
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004ce5e
sub eax, 1
jne 0x1004ce6e
shl ecx, 0x10
jmp 0x1004ce6e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov dword [edx], ecx
sub edx, 4
sub ebx, 1
jne 0x1004ce26
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
jmp 0x1004a897
mov edx, dword [esp + 0x14]
test al, al
je 0x1004a893
mov edi, dword [esp + 0x44]
test edi, edi
jle 0x1004cea7
dec edi
mov dword [esp + 0x44], edi
jmp 0x1004a88f
mov eax, dword [esp + 0x18]
test eax, eax
je 0x1004ee60
mov edi, dword [esp + eax*4 + 0x78]
dec eax
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 8]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1004d42a
mov edi, dword [esp + 0x18]
jmp 0x1004ba51
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
cmp eax, dword [esi + 8]
jne 0x1004cf08
mov eax, dword [esi + 4]
test eax, eax
je 0x1004a897
cmp dword [eax], 0
jne 0x1004a897
mov dword [eax], 0xa1
jmp 0x1004a88f
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
jmp 0x1004a897
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004cf31
mov eax, dword [esi + 4]
test eax, eax
je 0x1004cf2d
cmp dword [eax], 0
jne 0x1004cf2d
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1004cf55
cmp dword [eax - 4], 2
je 0x1004cf4d
mov eax, dword [esi + 4]
test eax, eax
je 0x1004cf49
cmp dword [eax], 0
jne 0x1004cf49
mov dword [eax], 0xa0
xor edx, edx
jmp 0x1004cf55
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov edx, dword [eax]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004cf73
mov eax, dword [esi + 4]
test eax, eax
je 0x1004cf6f
cmp dword [eax], 0
jne 0x1004cf6f
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004cf9d
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004cf8d
sub eax, 1
jne 0x1004cf9d
shl ecx, 0x10
jmp 0x1004cf9d
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edi, dword [esp + 0x18]
cmp edx, 0x1f
ja 0x1004ce80
mov dword [esp + edx*4 + 0x150], ecx
jmp 0x1004a88f
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004cfd4
mov eax, dword [esi + 4]
test eax, eax
je 0x1004cfd0
cmp dword [eax], 0
jne 0x1004cfd0
mov dword [eax], 0xa1
xor eax, eax
jmp 0x1004d009
cmp dword [eax - 4], 2
je 0x1004cff0
mov eax, dword [esi + 4]
test eax, eax
je 0x1004cfec
cmp dword [eax], 0
jne 0x1004cfec
mov dword [eax], 0xa0
xor eax, eax
jmp 0x1004d009
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
test eax, eax
js 0x1004a88f
cmp eax, 0x20
jge 0x1004a88f
mov edi, dword [esp + eax*4 + 0x150]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1004d42a
mov edi, dword [esp + 0x18]
jmp 0x1004ba51
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x1004d059
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d04f
cmp dword [eax], 0
jne 0x1004d04f
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov dword [esp + 0x30], 0
jmp 0x1004d093
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
sub eax, 1
je 0x1004d07d
sub eax, 1
mov eax, dword [ecx]
je 0x1004d074
mov dword [esp + 0x30], eax
jmp 0x1004d093
shl eax, 0x10
mov dword [esp + 0x30], eax
jmp 0x1004d093
mov ebx, dword [ecx]
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
mov dword [esp + 0x30], ebx
cmp ecx, edx
jne 0x1004d0b3
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d0af
cmp dword [eax], 0
jne 0x1004d0af
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebp, ebp
jmp 0x1004d0dd
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebp, dword [ecx]
sub eax, 1
je 0x1004d0cd
sub eax, 1
jne 0x1004d0dd
shl ebp, 0x10
jmp 0x1004d0dd
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
cmp ecx, edx
jne 0x1004d0fd
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d0f9
cmp dword [eax], 0
jne 0x1004d0f9
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor edi, edi
jmp 0x1004d127
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1004d117
sub eax, 1
jne 0x1004d127
shl edi, 0x10
jmp 0x1004d127
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
cmp ecx, edx
jne 0x1004d147
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d143
cmp dword [eax], 0
jne 0x1004d143
mov dword [eax], 0xa1
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
xor ebx, ebx
jmp 0x1004d171
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebx, dword [ecx]
sub eax, 1
je 0x1004d161
sub eax, 1
jne 0x1004d171
shl ebx, 0x10
jmp 0x1004d171
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
mov eax, dword [esi + 0x10]
lea eax, [edx + eax*8]
mov edx, dword [esp + 0x14]
cmp ecx, eax
je 0x1004b86b
cmp ebp, dword [esp + 0x30]
mov ebp, dword [esp + 0x20]
cmovle edi, ebx
mov dword [ecx], edi
jmp 0x1004bddb
mov eax, dword [esp + 0x34]
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 0x1004d42a
mov eax, dword [esi + 4]
test eax, eax
je 0x1004a88f
cmp dword [eax], 0
jne 0x1004a88f
mov dword [eax], 0x82
jmp 0x1004a88f
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x1004d21d
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d219
cmp dword [eax], 0
jne 0x1004d219
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor edi, edi
jmp 0x1004d247
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1004d237
sub eax, 1
jne 0x1004d247
shl edi, 0x10
jmp 0x1004d247
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
cmp ecx, edx
jne 0x1004d261
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d25d
cmp dword [eax], 0
jne 0x1004d25d
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004d28b
lea eax, [ecx - 8]
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004d27b
sub eax, 1
jne 0x1004d28b
shl ecx, 0x10
jmp 0x1004d28b
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, edi
call fcn.1002e7c0
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea ecx, [ecx + edx*8]
cmp edi, ecx
jne 0x1004d2c1
mov eax, dword [esi + 4]
test eax, eax
je 0x1004a88f
cmp dword [eax], 0
jne 0x1004a88f
mov dword [eax], 0x82
jmp 0x1004a88f
mov dword [edi], eax
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1004a88f
mov ebp, dword [esi + 0xc]
cmp ebp, dword [esi + 8]
jne 0x1004d313
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d2f0
cmp dword [eax], 0
jne 0x1004d2f0
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 + 0x20]
mov edi, dword [esp + 0x18]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1004d37b
mov edx, dword [esp + 0x14]
jmp 0x1004b873
add ebp, 0xfffffff8
mov dword [esi + 0xc], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
sub eax, 1
je 0x1004d32e
sub eax, 1
jne 0x1004d33e
shl ebp, 0x10
jmp 0x1004d33e
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
test ebp, ebp
jle 0x1004d2f0
mov eax, ebp
mov edi, ebp
sar eax, 1
mov ecx, ebp
cmp ebp, 0xa
cmovge edi, eax
mov edx, edi
call fcn.10036ab0
lea ebx, [edi + 1]
add ebx, eax
sar ebx, 1
cmp ebx, edi
je 0x1004d2f2
mov edx, ebx
mov ecx, ebp
mov edi, ebx
call fcn.10036ab0
inc ebx
add ebx, eax
sar ebx, 1
cmp ebx, edi
jne 0x1004d362
jmp 0x1004d2f2
mov dword [edx], ebx
mov eax, dword [esi + 0xc]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1004a897
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
cmp edx, ecx
jne 0x1004d3be
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d3ba
cmp dword [eax], 0
jne 0x1004d3ba
mov dword [eax], 0xa1
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
xor edi, edi
jmp 0x1004d3e8
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edi, dword [edx]
sub eax, 1
je 0x1004d3d8
sub eax, 1
jne 0x1004d3e8
shl edi, 0x10
jmp 0x1004d3e8
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esi + 0x10]
lea eax, [ecx + eax*8]
cmp edx, eax
jne 0x1004d406
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d419
cmp dword [eax], 0
jne 0x1004d419
mov dword [eax], 0x82
jmp 0x1004d416
mov dword [edx], edi
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
lea eax, [eax + ecx*8]
cmp edx, eax
je 0x1004bca2
mov dword [edx], edi
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1004a88f
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
cmp edx, ecx
jne 0x1004d465
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d461
cmp dword [eax], 0
jne 0x1004d461
mov dword [eax], 0xa1
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor ebx, ebx
jmp 0x1004d48f
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ebx, dword [edx]
sub eax, 1
je 0x1004d47f
sub eax, 1
jne 0x1004d48f
shl ebx, 0x10
jmp 0x1004d48f
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
cmp edx, ecx
jne 0x1004d4af
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d4ab
cmp dword [eax], 0
jne 0x1004d4ab
mov dword [eax], 0xa1
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
xor edi, edi
jmp 0x1004d4d9
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edi, dword [edx]
sub eax, 1
je 0x1004d4c9
sub eax, 1
jne 0x1004d4d9
shl edi, 0x10
jmp 0x1004d4d9
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esi + 0x10]
lea eax, [ecx + eax*8]
cmp edx, eax
jne 0x1004d4f7
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d50a
cmp dword [eax], 0
jne 0x1004d50a
mov dword [eax], 0x82
jmp 0x1004d507
mov dword [edx], ebx
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x1c]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1004d42a
mov edx, dword [esp + 0x14]
jmp 0x1004b9b3
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004d546
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d542
cmp dword [eax], 0
jne 0x1004d542
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004d56a
cmp dword [eax - 4], 2
je 0x1004d562
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d55e
cmp dword [eax], 0
jne 0x1004d55e
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x1004d56a
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov edi, dword [esi + 0xc]
mov eax, edi
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
test eax, eax
je 0x1004a88f
test ecx, ecx
jns 0x1004d588
lea ebx, [eax - 1]
jmp 0x1004d5a9
cmp ecx, eax
jb 0x1004d5a4
xor ebx, ebx
mov eax, dword [edx + ebx*8 + 4]
mov ecx, dword [edx + ebx*8]
sub eax, 1
je 0x1004d5c9
sub eax, 1
jne 0x1004d5d9
shl ecx, 0x10
jmp 0x1004d5d9
mov ebx, eax
sub ebx, ecx
dec ebx
cmp ebx, eax
jb 0x1004d58e
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d5c5
cmp dword [eax], 0
jne 0x1004d5c5
mov dword [eax], 0x82
mov edx, dword [esi + 8]
mov edi, dword [esi + 0xc]
xor ecx, ecx
jmp 0x1004d5d9
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esi + 0x10]
mov ebx, dword [esp + 0x1c]
lea eax, [edx + eax*8]
mov edx, dword [esp + 0x14]
cmp edi, eax
je 0x1004b9b3
mov dword [edi], ecx
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1004a893
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004d622
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d61e
cmp dword [eax], 0
jne 0x1004d61e
mov dword [eax], 0xa1
xor edx, edx
jmp 0x1004d646
cmp dword [eax - 4], 2
je 0x1004d63e
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d63a
cmp dword [eax], 0
jne 0x1004d63a
mov dword [eax], 0xa0
xor edx, edx
jmp 0x1004d646
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov edx, dword [eax]
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 8]
cmp eax, edi
jne 0x1004d677
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d68f
cmp dword [eax], 0
jne 0x1004d68f
mov dword [eax], 0xa1
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 2
jmp 0x1004a88f
cmp dword [eax - 4], 2
je 0x1004d6a4
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d68f
cmp dword [eax], 0
jne 0x1004d68f
mov dword [eax], 0xa0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 2
jmp 0x1004a88f
add eax, 0xfffffff8
mov dword [esp + 0x30], 0
mov dword [esi + 0xc], eax
mov dword [esp + 0x40], 2
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
cmp ecx, 2
jl 0x1004a88f
sub eax, edi
sar eax, 3
cmp ecx, eax
jbe 0x1004d6f1
mov eax, dword [esi + 4]
test eax, eax
je 0x1004a88f
cmp dword [eax], 0
jne 0x1004a88f
mov dword [eax], 0x82
jmp 0x1004a88f
test edx, edx
jns 0x1004d706
neg edx
mov eax, edx
cdq
idiv ecx
mov ebx, edx
neg ebx
mov dword [esp + 0x48], ebx
jmp 0x1004d711
mov eax, edx
cdq
idiv ecx
mov ebx, edx
mov dword [esp + 0x48], edx
test ebx, ebx
je 0x1004a88b
or ebp, 0xffffffff
mov dword [esp + 0x38], ecx
or edx, ebp
lea eax, [ecx*8]
shl ebx, 3
mov dword [esp + 0x54], ebx
lea edi, [ebp - 7]
mov ebx, dword [esi + 8]
cmp ebp, edx
jne 0x1004d75a
inc ebp
mov edx, ebp
lea edi, [ebp*8]
mov eax, dword [edi + ebx]
mov dword [esp + 0x30], eax
mov eax, dword [edi + ebx + 4]
mov dword [esp + 0x40], eax
lea eax, [ecx*8]
add edx, dword [esp + 0x48]
add edi, dword [esp + 0x54]
cmp edx, ecx
jl 0x1004d76c
sub edx, ecx
sub edi, eax
jmp 0x1004d774
test edx, edx
jns 0x1004d774
add edx, ecx
add edi, eax
sub dword [esp + 0x38], 1
mov eax, dword [ebx + edi]
mov ecx, dword [ebx + edi + 4]
mov esi, dword [esp + 0x30]
mov dword [ebx + edi], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x3c]
mov dword [ebx + edi + 4], esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0x30], eax
lea eax, [ecx*8]
jne 0x1004d733
jmp 0x1004a887
test al, al
je case.0x1004b580.0
cmp byte [esp + 0x2f], 0
je case.0x1004b580.0
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x1004d7e6
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d7e2
cmp dword [eax], 0
jne 0x1004d7e2
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebx, ebx
jmp 0x1004d814
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebx, dword [ecx]
mov dword [esp + 0x28], ebx
sub eax, 1
je 0x1004d804
sub eax, 1
jne 0x1004d818
shl ebx, 0x10
jmp 0x1004d814
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
mov dword [esp + 0x28], ebx
mov dword [esp + 0x3f10], ebx
cmp ecx, edx
jne 0x1004d839
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d835
cmp dword [eax], 0
jne 0x1004d835
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x1004d867
lea eax, [ecx - 8]
mov dword [esi + 0xc], eax
mov ebp, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x20], ebp
sub eax, 1
je 0x1004d857
sub eax, 1
jne 0x1004d86b
shl ebp, 0x10
jmp 0x1004d867
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
mov dword [esp + 0x20], ebp
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x3f0c], ebp
mov dword [eax + 0x1d4], 0
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x1004a893
test al, al
je case.0x1004a9ab.0
mov ecx, dword [esi + 0xc]
cmp ecx, dword [esi + 8]
jne 0x1004d8b9
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d8b5
cmp dword [eax], 0
jne 0x1004d8b5
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004d8e3
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1004d8d3
sub eax, 1
jne 0x1004d8e3
shl ecx, 0x10
jmp 0x1004d8e3
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edi, dword [esp + 0x34]
mov eax, dword [edi + 0x24]
mov dword [eax], ecx
mov eax, dword [edi + 0x24]
mov dword [eax + 4], 0
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004d914
mov eax, dword [esi + 4]
test eax, eax
je 0x1004d910
cmp dword [eax], 0
jne 0x1004d910
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004d93e
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004d92e
sub eax, 1
jne 0x1004d93e
shl ecx, 0x10
jmp 0x1004d93e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [edi + 0x20]
mov byte [esp + 0x27], 1
add dword [eax], ecx
cmp byte [edi + 0x2f], 0
jne 0x1004efa7
cmp byte [esp + 0x2f], 0
mov ebx, dword [esp + 0x1c]
je 0x1004ab72
mov eax, dword [esi + 8]
add ebp, ecx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x3f0c], ebp
mov dword [esi + 0xc], eax
jmp 0x1004a893
test al, al
je 0x1004f13e
test ah, ah
jne 0x1004f13e
push dword [esp + 0x28]
mov edx, ebp
lea ecx, [esp + 0x1d4]
call fcn.10049690
mov edx, dword [esp + 0x14]
xorps xmm0, xmm0
mov eax, dword [esp + 0x68]
mov byte [esp + 0x2f], 1
mov dword [esp + 0xd0], 0
mov dword [esp + 0xf0], 0
movq qword [esp + 0xb0], xmm0
mov dword [esp + 0xb8], 0
movups xmmword [esp + 0xa0], xmm0
mov dword [esp + 0xa0], eax
mov word [esp + 0xa4], 0x100
test edx, edx
jle 0x1004da3a
mov esi, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
lea ebp, [edx - 1]
cmp ebp, eax
jb 0x1004da20
test esi, esi
je 0x1004da1e
cmp dword [esi], 0
jne 0x1004da1e
mov dword [esi], 0x82
xor ebp, ebp
imul ebp, ecx
dec edx
add ebp, ebx
mov dword [esp + 0x1c], ebp
test edx, edx
jg 0x1004da08
mov esi, dword [esp + 0x60]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x1004a893
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp eax, 1
jbe 0x1004da6b
cmp byte [esp + 0xa4], 0
jne case.0x1004a9ab.0
mov ecx, dword [esp + 0x4c]
lea eax, [esp + 0x27]
push 0
push eax
push dword [esp + 0x3f1c]
lea eax, [esp + 0xc8]
mov edx, esi
push eax
call fcn.10049bd0
mov eax, dword [esp + 0x34]
cmp byte [eax + 0x224], 0
jne 0x1004efa7
cmp bl, 0x13
jne 0x1004dad2
mov eax, dword [esp + 0xd0]
lea ecx, [esp + 0xa0]
add eax, dword [esp + 0xf0]
mov ebx, dword [esp + 0x1c]
mov edx, ebx
push eax
call fcn.10049b50
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x1004a893
push 0xf1c
lea eax, [esp + 0x2fdc]
push 0
push eax
call fcn.1011df10
mov ecx, dword [esp + 0x58]
add esp, 0xc
mov ebx, dword [esp + 0x1c]
xorps xmm0, xmm0
mov dword [esp + 0x2fd8], ecx
mov edx, ebx
movlpd qword [esp + 0x138], xmm0
mov al, byte [ecx + 0xb8]
mov byte [esp + 0x2fe5], al
mov eax, dword [esp + 0x94]
mov dword [esp + 0x2fe8], eax
lea eax, [esp + 0x2010]
mov dword [esp + 0x2fdc], eax
lea eax, [esp + 0x2f2c]
mov dword [esp + 0x2fe0], eax
lea eax, [ecx + 4]
mov dword [esp + 0x134], eax
lea ecx, [esp + 0x134]
mov eax, dword [esp + 0xd0]
add eax, dword [esp + 0xf0]
push eax
movlpd qword [esp + 0x144], xmm0
movlpd qword [esp + 0x14c], xmm0
call fcn.10049b50
push 0
push 0
lea eax, [esp + 0x13c]
push eax
lea eax, [esp + 0xc8]
push eax
lea edx, [esp + 0xec]
lea ecx, [esp + 0x2fe8]
call fcn.100488f0
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x1004a893
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp eax, 2
jbe 0x1004dbf7
cmp byte [esp + 0x27], 0
jne 0x1004dbf7
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1004dbd5
sub eax, 1
jne 0x1004dbe5
shl ecx, 0x10
jmp 0x1004dbe5
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x3f14]
mov dword [ecx], eax
mov eax, dword [esp + 0x34]
mov byte [esp + 0x27], 1
cmp byte [eax + 0x224], 0
jne 0x1004efa7
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
cmp ecx, edi
jne 0x1004dc33
mov eax, dword [esi + 4]
test eax, eax
je 0x1004dc2f
cmp dword [eax], 0
jne 0x1004dc2f
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
xor edx, edx
jmp 0x1004dc5d
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1004dc4d
sub eax, 1
jne 0x1004dc5d
shl edx, 0x10
jmp 0x1004dc5d
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov ebx, dword [esp + 0x28]
add ebx, edx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x3f10], ebx
cmp ecx, edi
jne 0x1004dc88
mov eax, dword [esi + 4]
test eax, eax
je 0x1004dc84
cmp dword [eax], 0
jne 0x1004dc84
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004dcb2
lea eax, [ecx - 8]
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004dca2
sub eax, 1
jne 0x1004dcb2
shl ecx, 0x10
jmp 0x1004dcb2
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x34]
add ebp, ecx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x3f0c], ebp
cmp dword [eax + 0x1d4], 0
jmp 0x1004ac7e
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
jbe 0x1004dd1c
cmp byte [esp + 0x27], 0
jne 0x1004dd1c
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1004dcfa
sub eax, 1
jne 0x1004dd0a
shl ecx, 0x10
jmp 0x1004dd0a
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x3f14]
mov dword [ecx], eax
mov edi, dword [esp + 0x34]
mov byte [esp + 0x27], 1
cmp byte [edi + 0x224], 0
jne 0x1004efa7
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004dd50
mov eax, dword [esi + 4]
test eax, eax
je 0x1004dd4c
cmp dword [eax], 0
jne 0x1004dd4c
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1004dd7a
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004dd6a
sub eax, 1
jne 0x1004dd7a
shl ecx, 0x10
jmp 0x1004dd7a
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
add ebp, ecx
cmp dword [edi + 0x1d4], 0
mov dword [esp + 0x20], ebp
mov dword [esp + 0x3f0c], ebp
jne 0x1004ab6a
push dword [esp + 0x28]
jmp 0x1004ac85
mov eax, dword [esi + 0xc]
xor ebx, ebx
sub eax, dword [esi + 8]
sar eax, 3
mov dword [esp + 0x30], eax
cmp eax, 6
jbe 0x1004de9d
lea ebp, [ebx + 6]
mov ecx, dword [esi + 0xc]
mov eax, ecx
mov edi, dword [esi + 8]
sub eax, edi
sar eax, 3
cmp ebx, eax
jb 0x1004dde5
mov eax, dword [esi + 4]
test eax, eax
je 0x1004dde1
cmp dword [eax], 0
jne 0x1004dde1
mov dword [eax], 0x82
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
xor edx, edx
jmp 0x1004de0b
mov eax, dword [edi + ebx*8 + 4]
mov edx, dword [edi + ebx*8]
sub eax, 1
je 0x1004ddfb
sub eax, 1
jne 0x1004de0b
shl edx, 0x10
jmp 0x1004de0b
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esp + 0x20]
sub ecx, edi
add eax, edx
sar ecx, 3
mov dword [esp + 0x20], eax
mov dword [esp + 0x3f0c], eax
lea eax, [ebp - 5]
cmp eax, ecx
jb 0x1004de3e
mov eax, dword [esi + 4]
test eax, eax
je 0x1004de3a
cmp dword [eax], 0
jne 0x1004de3a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004de65
mov eax, dword [edi + ebx*8 + 0xc]
mov ecx, dword [edi + ebx*8 + 8]
sub eax, 1
je 0x1004de55
sub eax, 1
jne 0x1004de65
shl ecx, 0x10
jmp 0x1004de65
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
add edi, ecx
push edi
lea ecx, [esp + 0x1d4]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x3f14], edi
call fcn.10049760
mov eax, dword [esp + 0x30]
add ebp, 2
add ebx, 2
cmp ebp, eax
jb 0x1004ddb8
mov ebp, dword [esp + 0x20]
cmp ebx, eax
jae 0x1004e5c1
add ebx, 2
nop dword [eax + eax]
mov edi, dword [esi + 0xc]
lea eax, [ebx - 2]
mov edx, dword [esi + 8]
mov ecx, edi
sub ecx, edx
sar ecx, 3
cmp eax, ecx
jb 0x1004dee0
mov eax, dword [esi + 4]
test eax, eax
je 0x1004dedc
cmp dword [eax], 0
jne 0x1004dedc
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1004df07
mov eax, dword [edx + ebx*8 - 0xc]
mov ecx, dword [edx + ebx*8 - 0x10]
sub eax, 1
je 0x1004def7
sub eax, 1
jne 0x1004df07
shl ecx, 0x10
jmp 0x1004df07
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [ecx + ebp]
mov ecx, edi
sub ecx, edx
mov dword [esp + 0x38], eax
sar ecx, 3
lea eax, [ebx - 1]
cmp eax, ecx
jb 0x1004df38
mov eax, dword [esi + 4]
test eax, eax
je 0x1004df34
cmp dword [eax], 0
jne 0x1004df34
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1004df5f
mov eax, dword [edx + ebx*8 - 4]
mov ecx, dword [edx + ebx*8 - 8]
sub eax, 1
je 0x1004df4f
sub eax, 1
jne 0x1004df5f
shl ecx, 0x10
jmp 0x1004df5f
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebp, dword [esp + 0x28]
mov eax, edi
sub eax, edx
add ebp, ecx
sar eax, 3
mov dword [esp + 0x54], ebp
cmp ebx, eax
jb 0x1004df90
mov eax, dword [esi + 4]
test eax, eax
je 0x1004df8c
cmp dword [eax], 0
jne 0x1004df8c
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1004dfb6
mov eax, dword [edx + ebx*8 + 4]
mov ecx, dword [edx + ebx*8]
sub eax, 1
je 0x1004dfa6
sub eax, 1
jne 0x1004dfb6
shl ecx, 0x10
jmp 0x1004dfb6
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x38]
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 0x1004dfea
mov eax, dword [esi + 4]
test eax, eax
je 0x1004dfe6
cmp dword [eax], 0
jne 0x1004dfe6
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1004e011
mov eax, dword [edx + ebx*8 + 0xc]
mov ecx, dword [edx + ebx*8 + 8]
sub eax, 1
je 0x1004e001
sub eax, 1
jne 0x1004e011
shl ecx, 0x10
jmp 0x1004e011
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 0x1004e03d
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e039
cmp dword [eax], 0
jne 0x1004e039
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1004e064
mov eax, dword [edx + ebx*8 + 0x14]
mov ecx, dword [edx + ebx*8 + 0x10]
sub eax, 1
je 0x1004e054
sub eax, 1
jne 0x1004e064
shl ecx, 0x10
jmp 0x1004e064
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 + 0x20], eax
lea eax, [ebx + 3]
cmp eax, edi
jb 0x1004e090
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e08c
cmp dword [eax], 0
jne 0x1004e08c
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004e0b7
mov eax, dword [edx + ebx*8 + 0x1c]
mov ecx, dword [edx + ebx*8 + 0x18]
sub eax, 1
je 0x1004e0a7
sub eax, 1
jne 0x1004e0b7
shl ecx, 0x10
jmp 0x1004e0b7
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x20]
lea edi, [ecx + ebp]
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x1d0]
push edi
push eax
push ebp
push dword [esp + 0x54]
mov dword [esp + 0x38], edi
push dword [esp + 0x64]
call fcn.100498e0
mov ebp, dword [esp + 0x20]
add ebx, 6
mov dword [esp + 0x3f0c], ebp
mov dword [esp + 0x3f10], edi
lea eax, [ebx - 2]
cmp eax, dword [esp + 0x30]
jb 0x1004deb0
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x1004a88b
mov ebx, dword [esi + 0xc]
sub ebx, dword [esi + 8]
sar ebx, 3
mov ecx, ebx
and ecx, 0xfffffffd
sub ebx, ecx
mov dword [esp + 0x54], ecx
cmp ebx, ecx
jae 0x1004e5c1
lea eax, [ebx + 3]
mov dword [esp + 0x30], eax
lea edi, [ebx + 1]
lea eax, [ebx + 2]
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], eax
nop dword [eax + eax]
mov eax, ecx
sub eax, ebx
test al, 1
je 0x1004e1a3
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp ebx, eax
jb 0x1004e16d
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e169
cmp dword [eax], 0
jne 0x1004e169
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004e193
mov eax, dword [edx + ebx*8 + 4]
mov ecx, dword [edx + ebx*8]
sub eax, 1
je 0x1004e183
sub eax, 1
jne 0x1004e193
shl ecx, 0x10
jmp 0x1004e193
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
inc dword [esp + 0x3c]
inc edi
add ebp, ecx
mov dword [esp + 0x40], edi
inc ebx
inc dword [esp + 0x30]
mov edx, dword [esi + 0xc]
mov eax, edx
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
mov dword [esp + 0x38], ebp
cmp ebx, eax
jb 0x1004e1d4
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e1d0
cmp dword [eax], 0
jne 0x1004e1d0
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1004e1fa
mov eax, dword [ecx + ebx*8 + 4]
mov edi, dword [ecx + ebx*8]
sub eax, 1
je 0x1004e1ea
sub eax, 1
jne 0x1004e1fa
shl edi, 0x10
jmp 0x1004e1fa
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov ebp, dword [esp + 0x28]
mov eax, edx
sub eax, ecx
add ebp, edi
sar eax, 3
cmp dword [esp + 0x40], eax
jb 0x1004e229
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e225
cmp dword [eax], 0
jne 0x1004e225
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1004e253
mov eax, dword [esp + 0x40]
mov edi, dword [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1004e243
sub eax, 1
jne 0x1004e253
shl edi, 0x10
jmp 0x1004e253
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esp + 0x38]
add eax, edi
mov dword [esp + 0x20], eax
mov eax, edx
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x3c], eax
jb 0x1004e286
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e282
cmp dword [eax], 0
jne 0x1004e282
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1004e2b0
mov eax, dword [esp + 0x3c]
mov edi, dword [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1004e2a0
sub eax, 1
jne 0x1004e2b0
shl edi, 0x10
jmp 0x1004e2b0
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esp + 0x30]
sub edx, ecx
sar edx, 3
add edi, ebp
cmp eax, edx
jb 0x1004e2d5
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e2d1
cmp dword [eax], 0
jne 0x1004e2d1
mov dword [eax], 0x82
xor edx, edx
jmp 0x1004e2fb
mov edx, dword [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1004e2eb
sub eax, 1
jne 0x1004e2fb
shl edx, 0x10
jmp 0x1004e2fb
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
lea eax, [edx + edi]
mov edx, dword [esp + 0x38]
push eax
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x1d4]
mov eax, dword [esp + 0x24]
push eax
push edi
push eax
push ebp
call fcn.100498e0
mov edi, dword [esp + 0x40]
add ebx, 4
add dword [esp + 0x3c], 4
add edi, 4
add dword [esp + 0x30], 4
mov ecx, dword [esp + 0x54]
mov ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x3f0c], ebp
mov dword [esp + 0x3f10], edx
mov dword [esp + 0x40], edi
cmp ebx, ecx
jb 0x1004e140
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x1004a88b
mov ebx, dword [esi + 0xc]
sub ebx, dword [esi + 8]
sar ebx, 3
mov ecx, ebx
and ecx, 0xfffffffd
sub ebx, ecx
mov dword [esp + 0x48], ecx
cmp ebx, ecx
jae 0x1004e5c1
mov edx, dword [esp + 0x28]
lea eax, [ebx + 3]
mov dword [esp + 0x40], eax
lea ebp, [ebx + 1]
lea eax, [ebx + 2]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x3c], eax
mov eax, ecx
sub eax, ebx
test al, 1
je 0x1004e402
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp ebx, eax
jb 0x1004e3c2
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e3be
cmp dword [eax], 0
jne 0x1004e3be
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004e3e8
mov eax, dword [edx + ebx*8 + 4]
mov ecx, dword [edx + ebx*8]
sub eax, 1
je 0x1004e3d8
sub eax, 1
jne 0x1004e3e8
shl ecx, 0x10
jmp 0x1004e3e8
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edi, dword [esp + 0x28]
inc ebp
inc dword [esp + 0x3c]
add edi, ecx
inc ebx
mov dword [esp + 0x38], edi
inc dword [esp + 0x40]
mov dword [esp + 0x30], ebp
jmp 0x1004e406
mov dword [esp + 0x38], edx
mov edx, dword [esi + 0xc]
mov eax, edx
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x1004e433
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e42f
cmp dword [eax], 0
jne 0x1004e42f
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1004e459
mov eax, dword [ecx + ebx*8 + 4]
mov edi, dword [ecx + ebx*8]
sub eax, 1
je 0x1004e449
sub eax, 1
jne 0x1004e459
shl edi, 0x10
jmp 0x1004e459
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov ebp, dword [esp + 0x20]
mov eax, edx
sub eax, ecx
add ebp, edi
sar eax, 3
mov dword [esp + 0x54], ebp
cmp dword [esp + 0x30], eax
jb 0x1004e48c
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e488
cmp dword [eax], 0
jne 0x1004e488
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1004e4b6
mov eax, dword [esp + 0x30]
mov edi, dword [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1004e4a6
sub eax, 1
jne 0x1004e4b6
shl edi, 0x10
jmp 0x1004e4b6
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, edx
add ebp, edi
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x3c], eax
jb 0x1004e4e1
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e4dd
cmp dword [eax], 0
jne 0x1004e4dd
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1004e50b
mov eax, dword [esp + 0x3c]
mov edi, dword [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1004e4fb
sub eax, 1
jne 0x1004e50b
shl edi, 0x10
jmp 0x1004e50b
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esp + 0x38]
sub edx, ecx
add eax, edi
sar edx, 3
mov edi, dword [esp + 0x40]
mov dword [esp + 0x28], eax
cmp edi, edx
jb 0x1004e538
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e534
cmp dword [eax], 0
jne 0x1004e534
mov dword [eax], 0x82
xor edx, edx
jmp 0x1004e55e
mov eax, dword [ecx + edi*8 + 4]
mov edx, dword [ecx + edi*8]
sub eax, 1
je 0x1004e54e
sub eax, 1
jne 0x1004e55e
shl edx, 0x10
jmp 0x1004e55e
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov ecx, dword [esp + 0x28]
lea eax, [edx + ebp]
mov edx, dword [esp + 0x54]
push ecx
push eax
push ecx
push ebp
push dword [esp + 0x48]
lea ecx, [esp + 0x1e4]
mov dword [esp + 0x34], eax
call fcn.100498e0
mov ebp, dword [esp + 0x30]
add ebx, 4
add dword [esp + 0x3c], 4
add ebp, 4
mov ecx, dword [esp + 0x48]
add edi, 4
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x3f0c], eax
mov dword [esp + 0x3f10], edx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x40], edi
cmp ebx, ecx
jb 0x1004e395
mov ebp, dword [esp + 0x20]
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x1004a88b
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 + 0x3c], eax
cmp ebp, eax
jae 0x1004a881
mov edi, dword [esp + 0x20]
mov edx, dword [esi + 0xc]
mov eax, edx
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
test bl, bl
je 0x1004e80d
cmp ebp, eax
jb 0x1004e627
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e623
cmp dword [eax], 0
jne 0x1004e623
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1004e64d
mov eax, dword [ecx + ebp*8 + 4]
mov edi, dword [ecx + ebp*8]
sub eax, 1
je 0x1004e63d
sub eax, 1
jne 0x1004e64d
shl edi, 0x10
jmp 0x1004e64d
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esp + 0x20]
lea ebx, [ebp + 1]
add eax, edi
mov dword [esp + 0x54], ebx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x38], eax
mov eax, edx
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x1004e68d
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e689
cmp dword [eax], 0
jne 0x1004e689
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1004e6b3
mov eax, dword [ecx + ebx*8 + 4]
mov edi, dword [ecx + ebx*8]
sub eax, 1
je 0x1004e6a3
sub eax, 1
jne 0x1004e6b3
shl edi, 0x10
jmp 0x1004e6b3
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esp + 0x40]
lea ebx, [ebp + 2]
add eax, edi
mov dword [esp + 0x30], eax
mov eax, edx
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x1004e6e7
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e6e3
cmp dword [eax], 0
jne 0x1004e6e3
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1004e70d
mov eax, dword [ecx + ebx*8 + 4]
mov edi, dword [ecx + ebx*8]
sub eax, 1
je 0x1004e6fd
sub eax, 1
jne 0x1004e70d
shl edi, 0x10
jmp 0x1004e70d
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov ebx, dword [esp + 0x28]
lea eax, [ebp + 3]
sub edx, ecx
add ebx, edi
sar edx, 3
mov dword [esp + 0x48], ebx
cmp eax, edx
jb 0x1004e73c
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e738
cmp dword [eax], 0
jne 0x1004e738
mov dword [eax], 0x82
mov ecx, dword [esi + 8]
xor edx, edx
jmp 0x1004e762
mov edx, dword [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1004e752
sub eax, 1
jne 0x1004e762
shl edx, 0x10
jmp 0x1004e762
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
lea eax, [ebx + edx]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x3c]
sub eax, ebp
cmp eax, 5
jne 0x1004e7fe
mov eax, dword [esi + 0xc]
lea edi, [ebp + 4]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x1004e7b0
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e799
cmp dword [eax], 0
jne 0x1004e799
mov dword [eax], 0x82
mov eax, dword [esp + 0x30]
xor edx, edx
mov ebp, dword [esp + 0x54]
add eax, edx
mov dword [esp + 0x20], eax
xor bl, bl
jmp 0x1004e9f1
mov eax, dword [ecx + edi*8 + 4]
mov edx, dword [ecx + edi*8]
sub eax, 1
je 0x1004e7d9
sub eax, 1
jne 0x1004e7e9
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x54]
shl edx, 0x10
add eax, edx
xor bl, bl
mov dword [esp + 0x20], eax
jmp 0x1004e9f1
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x54]
add eax, edx
mov dword [esp + 0x20], eax
xor bl, bl
jmp 0x1004e9f1
mov eax, dword [esp + 0x30]
xor bl, bl
mov dword [esp + 0x20], eax
jmp 0x1004e9f1
mov dword [esp + 0x40], edi
cmp ebp, eax
jb 0x1004e831
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e82d
cmp dword [eax], 0
jne 0x1004e82d
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1004e857
mov eax, dword [ecx + ebp*8 + 4]
mov edi, dword [ecx + ebp*8]
sub eax, 1
je 0x1004e847
sub eax, 1
jne 0x1004e857
shl edi, 0x10
jmp 0x1004e857
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esp + 0x28]
lea ebx, [ebp + 1]
add eax, edi
mov dword [esp + 0x54], ebx
mov dword [esp + 0x38], eax
mov eax, edx
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x1004e88f
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e88b
cmp dword [eax], 0
jne 0x1004e88b
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1004e8b5
mov eax, dword [ecx + ebx*8 + 4]
mov edi, dword [ecx + ebx*8]
sub eax, 1
je 0x1004e8a5
sub eax, 1
jne 0x1004e8b5
shl edi, 0x10
jmp 0x1004e8b5
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esp + 0x20]
lea ebx, [ebp + 2]
add eax, edi
mov dword [esp + 0x30], eax
mov eax, edx
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x1004e8e9
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e8e5
cmp dword [eax], 0
jne 0x1004e8e5
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1004e90f
mov eax, dword [ecx + ebx*8 + 4]
mov edi, dword [ecx + ebx*8]
sub eax, 1
je 0x1004e8ff
sub eax, 1
jne 0x1004e90f
shl edi, 0x10
jmp 0x1004e90f
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov ebx, dword [esp + 0x38]
lea eax, [ebp + 3]
sub edx, ecx
add ebx, edi
sar edx, 3
mov dword [esp + 0x48], ebx
cmp eax, edx
jb 0x1004e93e
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e93a
cmp dword [eax], 0
jne 0x1004e93a
mov dword [eax], 0x82
mov ecx, dword [esi + 8]
xor edx, edx
jmp 0x1004e964
mov edx, dword [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1004e954
sub eax, 1
jne 0x1004e964
shl edx, 0x10
jmp 0x1004e964
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esp + 0x30]
add eax, edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
sub eax, ebp
cmp eax, 5
jne 0x1004e9eb
mov eax, dword [esi + 0xc]
lea edi, [ebp + 4]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x1004e9ad
mov eax, dword [esi + 4]
test eax, eax
je 0x1004e99e
cmp dword [eax], 0
jne 0x1004e99e
mov dword [eax], 0x82
mov ebp, dword [esp + 0x54]
xor edx, edx
lea eax, [ebx + edx]
mov dword [esp + 0x28], eax
jmp 0x1004e9ef
mov eax, dword [ecx + edi*8 + 4]
mov edx, dword [ecx + edi*8]
sub eax, 1
je 0x1004e9ce
sub eax, 1
jne 0x1004e9de
mov ebp, dword [esp + 0x54]
shl edx, 0x10
lea eax, [ebx + edx]
mov dword [esp + 0x28], eax
jmp 0x1004e9ef
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov ebp, dword [esp + 0x54]
lea eax, [ebx + edx]
mov dword [esp + 0x28], eax
jmp 0x1004e9ef
mov dword [esp + 0x28], ebx
mov bl, 1
push dword [esp + 0x28]
mov edi, dword [esp + 0x24]
lea ecx, [esp + 0x1d4]
mov edx, dword [esp + 0x44]
push edi
push dword [esp + 0x50]
push dword [esp + 0x3c]
push dword [esp + 0x48]
call fcn.100498e0
mov edx, dword [esp + 0x28]
add ebp, 4
mov dword [esp + 0x3f0c], edi
mov dword [esp + 0x3f10], edx
cmp ebp, dword [esp + 0x3c]
jb 0x1004e5f2
jmp 0x1004a881
mov ebx, dword [esp + 0x1c]
mov edx, dword [ebx + 0xc]
cmp edx, ecx
jae 0x1004ea50
mov al, byte [edx]
inc edx
mov dword [ebx + 0xc], edx
movzx edi, al
jmp 0x1004ea69
mov eax, dword [ebx]
test eax, eax
je 0x1004ea67
cmp dword [eax], 0
jne 0x1004ea67
mov dword [eax], 0x55
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
xor edi, edi
cmp edx, ecx
jae 0x1004ea7a
mov cl, byte [edx]
lea eax, [edx + 1]
mov dword [ebx + 0xc], eax
movzx eax, cl
jmp 0x1004ea8d
mov eax, dword [ebx]
test eax, eax
je 0x1004ea8b
cmp dword [eax], 0
jne 0x1004ea8b
mov dword [eax], 0x55
xor eax, eax
mov ecx, dword [esi + 0x10]
shl edi, 8
movsx edx, di
mov edi, dword [esi + 0xc]
or edx, eax
mov eax, dword [esi + 8]
lea eax, [eax + ecx*8]
cmp edi, eax
je 0x1004bca2
mov dword [edi], edx
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x1004a88f
cmp bl, 0xf6
ja 0x1004eafb
mov ecx, dword [esi + 0x10]
add edi, 0xffffff75
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1004eae6
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
jmp 0x1004b9b3
mov dword [edx], edi
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x1004a88b
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + 0xc]
cmp bl, 0xfa
ja 0x1004eb62
mov ebx, dword [esp + 0x1c]
shl edi, 8
cmp edx, ecx
jae 0x1004eb1f
mov cl, byte [edx]
lea eax, [edx + 1]
mov dword [ebx + 0xc], eax
movzx eax, cl
jmp 0x1004eb32
mov eax, dword [ebx]
test eax, eax
je 0x1004eb30
cmp dword [eax], 0
jne 0x1004eb30
mov dword [eax], 0x55
xor eax, eax
mov ecx, dword [esi + 0x10]
add eax, 0xffff096c
mov edx, dword [esi + 0xc]
add edi, eax
mov eax, dword [esi + 8]
lea eax, [eax + ecx*8]
cmp edx, eax
je 0x1004bca2
mov dword [edx], edi
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x1004a88f
cmp bl, 0xfe
mov ebx, dword [esp + 0x1c]
ja 0x1004ebc4
shl edi, 8
cmp edx, ecx
jae 0x1004eb7f
mov cl, byte [edx]
lea eax, [edx + 1]
mov dword [ebx + 0xc], eax
movzx eax, cl
jmp 0x1004eb92
mov eax, dword [ebx]
test eax, eax
je 0x1004eb90
cmp dword [eax], 0
jne 0x1004eb90
mov dword [eax], 0x55
xor eax, eax
mov ecx, dword [esi + 0x10]
mov edx, 0xfa94
sub edx, edi
mov edi, dword [esi + 0xc]
sub edx, eax
mov eax, dword [esi + 8]
lea eax, [eax + ecx*8]
cmp edi, eax
je 0x1004bca2
mov dword [edi], edx
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x1004a88f
cmp edx, ecx
jae 0x1004ebd3
mov al, byte [edx]
inc edx
mov dword [ebx + 0xc], edx
movzx edi, al
jmp 0x1004ebec
mov eax, dword [ebx]
test eax, eax
je 0x1004ebea
cmp dword [eax], 0
jne 0x1004ebea
mov dword [eax], 0x55
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
xor edi, edi
cmp edx, ecx
jae 0x1004ebfb
mov al, byte [edx]
inc edx
mov dword [ebx + 0xc], edx
movzx ebp, al
jmp 0x1004ec14
mov eax, dword [ebx]
test eax, eax
je 0x1004ec12
cmp dword [eax], 0
jne 0x1004ec12
mov dword [eax], 0x55
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
xor ebp, ebp
cmp edx, ecx
jae 0x1004ec23
mov al, byte [edx]
inc edx
mov dword [ebx + 0xc], edx
movzx ebx, al
jmp 0x1004ec3c
mov eax, dword [ebx]
test eax, eax
je 0x1004ec3a
cmp dword [eax], 0
jne 0x1004ec3a
mov dword [eax], 0x55
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
xor ebx, ebx
cmp edx, ecx
jae 0x1004ec51
mov cl, byte [edx]
lea eax, [edx + 1]
mov edx, dword [esp + 0x1c]
mov dword [edx + 0xc], eax
movzx eax, cl
jmp 0x1004ec68
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
test eax, eax
je 0x1004ec66
cmp dword [eax], 0
jne 0x1004ec66
mov dword [eax], 0x55
xor eax, eax
shl edi, 8
or edi, ebp
shl edi, 8
or edi, ebx
shl edi, 8
or edi, eax
mov eax, dword [esp + 0x4c]
cmp byte [eax + 8], 0
je 0x1004eccf
cmp edi, 0x7d00
jg 0x1004ec91
cmp edi, 0xffff8300
jge 0x1004eca6
mov ecx, dword [esp + 0x50]
test cl, cl
movzx eax, cl
mov ecx, 1
cmove eax, ecx
mov byte [esp + 0x50], al
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
je 0x1004b867
mov dword [edx], edi
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x1004a887
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
je 0x1004b867
mov dword [edx], edi
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1004a887
cmp dword [eax - 4], 2
je 0x1004ed1a
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ed10
cmp dword [eax], 0
jne 0x1004ed10
mov dword [eax], 0xa0
mov dword [esp + 0x44], 0
jmp 0x1004ed26
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004ed4a
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ed40
cmp dword [eax], 0
jne 0x1004ed40
mov dword [eax], 0xa1
mov dword [esp + 0x50], 0
jmp 0x1004ed78
cmp dword [eax - 4], 2
je 0x1004ed6c
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ed62
cmp dword [eax], 0
jne 0x1004ed62
mov dword [eax], 0xa0
mov dword [esp + 0x50], 0
jmp 0x1004ed78
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov dword [esp + 0x50], eax
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x1004ed9e
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ed9a
cmp dword [eax], 0
jne 0x1004ed9a
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebx, ebx
jmp 0x1004edc8
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebx, dword [ecx]
sub eax, 1
je 0x1004edb8
sub eax, 1
jne 0x1004edc8
shl ebx, 0x10
jmp 0x1004edc8
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
cmp ecx, edx
jne 0x1004ede8
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ede4
cmp dword [eax], 0
jne 0x1004ede4
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor edi, edi
jmp 0x1004ee12
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1004ee02
sub eax, 1
jne 0x1004ee12
shl edi, 0x10
jmp 0x1004ee12
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
cmp ecx, edx
jne 0x1004ee2c
mov eax, dword [esi + 4]
test eax, eax
je 0x1004ee28
cmp dword [eax], 0
jne 0x1004ee28
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x1004ee56
lea eax, [ecx - 8]
mov dword [esi + 0xc], eax
mov ebp, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004ee46
sub eax, 1
jne 0x1004ee56
shl ebp, 0x10
jmp 0x1004ee56
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
cmp byte [esp + 0x3f08], 0
je 0x1004ee6a
mov eax, 0x12
jmp 0x1004a6d8
mov edx, dword [esp + 0x34]
cmp byte [edx + 0x2f], 0
je 0x1004ee7e
mov eax, 0x12
jmp 0x1004a6d8
cmp dword [edx + 0x244], 0
mov ecx, dword [esp + 0x60]
jne 0x1004eea1
mov eax, dword [ecx + 0x80]
cmp dword [eax + 0x34], 0
jne 0x1004eea1
mov eax, 0x12
jmp 0x1004a6d8
mov eax, dword [edx + 0x20]
add edi, dword [eax]
mov eax, dword [ecx + 0x80]
cmp dword [eax + 0x34], 0
je 0x1004eeb8
mov eax, dword [esp + 0x44]
jmp 0x1004eede
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x34]
call fcn.100465a0
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x50], eax
call fcn.100465a0
mov edx, dword [esp + 0x34]
mov dword [esp + 0x44], eax
cmp dword [esp + 0x50], 0
jl 0x1004ee60
test eax, eax
js 0x1004ee60
cmp byte [edx + 0x2e], 0
je 0x1004efb0
mov eax, dword [edx + 8]
mov edx, 2
mov dword [esp + 0x54], eax
mov eax, dword [eax + 0x9c]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x60], eax
call fcn.100373e0
test eax, eax
jne 0x1004a6d8
mov ecx, dword [esp + 0x60]
sub edi, ebp
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x44]
mov ecx, dword [ecx + 0x58]
mov dword [ecx], eax
mov eax, 0x202
mov word [ecx + 4], ax
mov eax, 2
mov word [ecx + 0x24], ax
mov eax, edi
shr eax, 0x1f
sub edi, eax
mov dword [ecx + 0x20], edx
mov edx, dword [esp + 0x60]
mov eax, ebx
shr eax, 0x1f
add edi, 0x8000
sub ebx, eax
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
add ebx, 0x8000
sar edi, 0x10
mov dword [ecx + 0x28], edi
sar ebx, 0x10
mov dword [ecx + 0x2c], ebx
mov ecx, dword [esp + 0x54]
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 0x1004a6d8
mov ecx, dword [edx + 0xc]
call fcn.10037480
mov edx, dword [esp + 0x50]
lea eax, [esp + 0x7c]
mov ecx, dword [esp + 0x34]
push eax
call fcn.10048370
test eax, eax
jne 0x1004a6d8
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x20]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x48], eax
mov eax, dword [edx + 0x24]
lea edx, [esp + 0x7c]
mov dword [esp + 0x60], ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x74]
push eax
push 0
push 0
push 1
push dword [esp + 0x3f14]
mov dword [esp + 0x8c], ecx
push dword [esp + 0xa4]
mov ecx, dword [esp + 0x64]
call fcn.1004a210
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x34]
sub eax, ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], ecx
mov eax, dword [edx + 4]
mov eax, dword [eax + 0x80]
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x1004f05d
mov eax, dword [ecx]
lea edx, [esp + 0x54]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 4]
call eax
mov edx, dword [esp + 0x34]
cmp byte [esp + 0x27], 0
mov ecx, dword [edx + 0x20]
jne 0x1004f088
mov eax, dword [ecx]
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x48], eax
mov eax, dword [edx + 0x24]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x38], eax
mov dword [ecx], 0
mov eax, dword [edx + 0x20]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x34]
mov dword [eax + 4], 0
lea eax, [esp + 0x7c]
push eax
call fcn.10048370
test eax, eax
jne 0x1004a6d8
mov ecx, dword [esp + 0x4c]
lea eax, [esp + 0x74]
push eax
push ebx
sub edi, ebp
lea edx, [esp + 0x84]
push edi
push 1
push dword [esp + 0x3f14]
push dword [esp + 0xa4]
call fcn.1004a210
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
mov ebx, dword [esp + 0x34]
sub eax, ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], ecx
mov eax, dword [ebx + 4]
mov eax, dword [eax + 0x80]
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x1004f115
mov eax, dword [ecx]
lea edx, [esp + 0x54]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 4]
call eax
mov eax, dword [ebx + 0x20]
mov ecx, dword [esp + 0x60]
mov dword [eax], ecx
mov ecx, dword [esp + 0x48]
mov dword [eax + 4], ecx
mov eax, dword [ebx + 0x24]
mov ecx, dword [esp + 0x78]
mov dword [eax], ecx
mov ecx, dword [esp + 0x38]
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x6c]
jmp 0x1004a6d8
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
je 0x1004f153
cmp eax, 5
jne 0x1004f1aa
cmp byte [esp + 0x27], 0
jne 0x1004f1aa
test eax, eax
jne 0x1004f174
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f170
cmp dword [eax], 0
jne 0x1004f170
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1004f198
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1004f188
sub eax, 1
jne 0x1004f198
shl ecx, 0x10
jmp 0x1004f198
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x3f14]
mov dword [ecx], eax
mov eax, dword [esp + 0x34]
cmp byte [eax + 0x224], 0
jne 0x1004efa7
cmp byte [esp + 0x2f60], 0
je 0x1004f23a
push dword [esp + 0x2fac]
mov edx, dword [esp + 0x2fac]
lea ecx, [esp + 0x1d4]
mov byte [esp + 0x2f65], 1
call fcn.10049760
cmp byte [esp + 0x2fb0], 0
je 0x1004f220
push 1
push dword [esp + 0x2f98]
lea eax, [esp + 0x2f90]
push dword [esp + 0x2f98]
lea edx, [esp + 0x1e4]
push eax
lea ecx, [esp + 0x1e0]
call fcn.10049240
mov byte [esp + 0x2f63], 1
mov word [esp + 0x2f60], 0
mov byte [esp + 0x2fb0], 0
mov eax, dword [esp + 0x4c]
cmp byte [eax + 9], 0
jne 0x1004efa7
cmp byte [eax + 8], 0
jne 0x1004efa7
mov ecx, dword [esi + 0xc]
mov eax, ecx
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
jbe 0x1004efa7
cmp byte [esp + 0x3f08], 0
je 0x1004f27c
mov eax, 0x12
jmp 0x1004a6d8
cmp ecx, edx
jne 0x1004f29c
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f292
cmp dword [eax], 0
jne 0x1004f292
mov dword [eax], 0xa1
mov dword [esp + 0x38], 0
jmp 0x1004f2ca
cmp dword [ecx - 4], 2
je 0x1004f2be
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f2b4
cmp dword [eax], 0
jne 0x1004f2b4
mov dword [eax], 0xa0
mov dword [esp + 0x38], 0
jmp 0x1004f2ca
lea eax, [ecx - 8]
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1004f2e8
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f2e4
cmp dword [eax], 0
jne 0x1004f2e4
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x1004f30c
cmp dword [eax - 4], 2
je 0x1004f304
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f300
cmp dword [eax], 0
jne 0x1004f300
mov dword [eax], 0xa0
xor ebp, ebp
jmp 0x1004f30c
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov ebp, dword [eax]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x1004f332
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f32e
cmp dword [eax], 0
jne 0x1004f32e
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebx, ebx
jmp 0x1004f35c
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebx, dword [ecx]
sub eax, 1
je 0x1004f34c
sub eax, 1
jne 0x1004f35c
shl ebx, 0x10
jmp 0x1004f35c
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
cmp ecx, edx
jne 0x1004f376
mov eax, dword [esi + 4]
test eax, eax
je 0x1004f372
cmp dword [eax], 0
jne 0x1004f372
mov dword [eax], 0xa1
xor edi, edi
jmp 0x1004f3a0
lea eax, [ecx - 8]
mov dword [esi + 0xc], eax
mov edi, dword [eax]
mov eax, dword [eax + 4]
sub eax, 1
je 0x1004f390
sub eax, 1
jne 0x1004f3a0
shl edi, 0x10
jmp 0x1004f3a0
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov edx, dword [esp + 0x38]
lea eax, [esp + 0x7c]
mov ecx, dword [esp + 0x34]
push eax
call fcn.100482b0
test eax, eax
jne 0x1004a6d8
lea eax, [esp + 0x54]
push eax
push ebx
push edi
mov edi, dword [esp + 0x58]
lea edx, [esp + 0x88]
push 1
push dword [esp + 0x3f14]
mov ecx, edi
push dword [esp + 0xa4]
call fcn.1004a210
mov eax, dword [esp + 0x84]
lea edx, [esp + 0x80]
mov ebx, dword [esp + 0x34]
sub eax, dword [esp + 0x80]
push eax
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0x258]
call eax
lea eax, [esp + 0x7c]
mov edx, ebp
push eax
mov ecx, ebx
call fcn.100482b0
test eax, eax
jne 0x1004a6d8
lea eax, [esp + 0x54]
mov ecx, edi
push eax
push 0
push 0
push 1
push dword [esp + 0x3f14]
lea edx, [esp + 0x90]
push dword [esp + 0xa4]
call fcn.1004a210
mov eax, dword [esp + 0x84]
lea edx, [esp + 0x80]
sub eax, dword [esp + 0x80]
mov ecx, dword [ebx + 4]
push eax
mov eax, dword [ebx + 0x258]
call eax
mov eax, dword [esp + 0x6c]
jmp 0x1004a6d8