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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x144
mov eax, dword [0x101aeb60]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0xf8], edi
xor ecx, ecx
mov esi, dword [edi]
mov eax, dword [edi + 4]
mov ebx, dword [edi + 8]
mov dword [ebp - 0x110], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xe0], ecx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xd4], ecx
mov al, byte [eax + 0x4d]
mov byte [ebp - 0xfd], al
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x108], eax
mov eax, dword [esi + 0x24]
mov byte [ebp - 0xfe], cl
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0xe4], ecx
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x10c], ecx
mov ecx, edi
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0xdc], ebx
mov dword [ebp - 0x104], eax
call fcn.1005ac9c
xor eax, eax
push 7
pop ecx
inc eax
cmp dword [edi + 0x5c], ecx
je 0x100639e4
xor edx, edx
mov dword [edi + 0x5c], edx
mov dword [edi + 0x14], edx
mov dword [esi + 0x1b4], edx
cmp dword [esi + 0xe0], edx
jne 0x100639b5
mov eax, dword [edi + 0x58]
xor ecx, ecx
cmp dword [esi + 0x114], edx
mov dword [ebp - 0xe0], eax
setne cl
mov dword [ebp - 0x120], ecx
cmp byte [esi + 0x38], 0
push 2
pop edx
jne 0x100639e1
mov ebx, eax
imul ebx, ebx, 0x14
add ebx, dword [ebp - 0x110]
mov dword [ebp - 0xec], ebx
test ecx, ecx
je 0x1005e1d5
mov eax, dword [ebp - 0x118]
cmp dword [esi + 0x11c], eax
jne 0x1005e1ce
push dword [esi + 0x118]
call dword [esi + 0x114]
pop ecx
test eax, eax
jne 0x100637d0
push 2
pop edx
inc eax
mov dword [ebp - 0x118], eax
test byte [ebx + 2], dl
je 0x1005e20d
mov edx, dword [ebx + 8]
imul edx, edx, 0x28
add edx, dword [ebp - 0xdc]
mov eax, 0x2460
mov dword [ebp - 0xe4], edx
test word [edx + 0x1c], ax
je 0x1005e204
mov ecx, edx
call fcn.100597d3
mov edx, dword [ebp - 0xe4]
push 4
pop ecx
mov word [edx + 0x1c], cx
jmp 0x1005e216
mov edx, dword [ebp - 0xe4]
push 4
pop ecx
movzx eax, byte [ebx]
dec eax
cmp eax, 0x93
ja case.default.0x1005e221
jmp dword [eax*4 + 0x10063a87]
cmp dword [esi + 0xe0], 0
jne 0x100639b5
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xd4]
jmp 0x100637ae
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xe0]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp 0x1005e235
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xdc]
imul eax, eax, 0x28
mov eax, dword [eax + ecx + 0x10]
jmp 0x1005e239
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xe0]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov eax, dword [ebp - 0xd0]
jmp 0x1005e239
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0xdc]
imul eax, eax, 0x28
test byte [eax + ecx + 0x1c], 1
je case.default.0x1005e221
xor ecx, ecx
cmp dword [ebx + 4], ecx
jne 0x100637d7
mov edx, dword [edi + 0xa8]
test edx, edx
je 0x100637d7
mov eax, dword [edx + 4]
dec dword [edi + 0xb0]
mov dword [edi + 0xa8], eax
mov eax, dword [edi + 0x68]
add dword [esi + 0x4c], eax
mov ecx, edx
mov dword [esi + 0x48], eax
call fcn.1005b481
mov ecx, dword [esi + 0x20]
mov dword [ebp - 0x108], ecx
mov ecx, dword [esi + 0x24]
push 4
mov dword [ebp - 0x104], ecx
pop ecx
mov dword [ebp - 0xe0], eax
cmp dword [ebx + 8], ecx
jne 0x1005e340
imul eax, eax, 0x14
mov dword [ebp - 0xe0], eax
mov ecx, dword [ebp - 0xe0]
mov eax, dword [edi + 4]
mov ecx, dword [ecx + eax + 8]
mov dword [ebp - 0xe0], ecx
dec dword [ebp - 0xe0]
mov eax, dword [edi + 4]
mov dword [ebp - 0x110], eax
mov eax, dword [edi + 8]
mov dword [ebp - 0xdc], eax
jmp case.default.0x1005e221
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xe4]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x1005e221
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
mov dword [edx + 0x10], eax
mov eax, dword [ecx + 4]
mov dword [edx + 0x14], eax
jmp case.default.0x1005e221
push 8
pop eax
mov word [edx + 0x1c], ax
mov eax, dword [ebx + 0x10]
movsd xmm0, qword [eax]
movsd qword [edx + 8], xmm0
jmp case.default.0x1005e221
mov ecx, dword [ebx + 0x10]
mov byte [ebx], 9
call fcn.1004884a
mov dword [ebx + 4], eax
xor eax, eax
inc eax
cmp byte [ebp - 0xfd], al
je 0x1005e439
push 0
push eax
mov edx, ecx
mov ecx, dword [ebp - 0xe4]
push 0xffffffffffffffff
call fcn.10059c88
add esp, 0xc
mov dword [ebp - 0xd4], eax
cmp eax, 0x12
je 0x1006399f
movzx edx, byte [ebp - 0xfd]
mov ecx, dword [ebp - 0xe4]
call fcn.10059530
test eax, eax
jne 0x100639e1
mov edx, dword [ebp - 0xe4]
mov ecx, 0xfbff
and dword [edx + 0x24], eax
mov ax, word [edx + 0x1c]
and ax, cx
mov ecx, 0x800
or ax, cx
mov word [edx + 0x1c], ax
cmp byte [ebx + 1], 0xff
jne 0x1005e429
mov edx, dword [ebx + 0x10]
mov ecx, esi
call fcn.10046cee
mov edx, dword [ebp - 0xe4]
mov byte [ebx + 1], 0xff
mov eax, dword [edx + 4]
mov dword [ebx + 0x10], eax
mov eax, dword [edx + 0x18]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x50]
jg 0x1006399f
mov eax, 0xa02
mov word [edx + 0x1c], ax
mov eax, dword [ebx + 0x10]
mov dword [edx + 4], eax
mov eax, dword [ebx + 4]
mov dword [edx + 0x18], eax
mov al, byte [ebp - 0xfd]
mov byte [edx + 0x1f], al
jmp case.default.0x1005e221
mov eax, dword [ebx + 0xc]
sub eax, dword [ebx + 8]
mov ecx, 0x101
mov dword [ebp - 0xd0], eax
xor eax, eax
inc eax
cmp dword [ebx + 4], 0
mov ebx, dword [ebp - 0xe4]
cmovne eax, ecx
mov word [ebp - 0xcc], ax
mov word [ebx + 0x1c], ax
cmp dword [ebp - 0xd0], 0
jle case.default.0x1005e221
push 0x28
pop edi
mov esi, 0x2460
add ebx, edi
test word [ebx + 0x1c], si
je 0x1005e4b8
mov ecx, ebx
call fcn.100597d3
mov ax, word [ebp - 0xcc]
mov word [ebx + 0x1c], ax
mov eax, dword [ebp - 0xd0]
dec eax
mov dword [ebp - 0xd0], eax
test eax, eax
jg 0x1005e4a9
mov dword [ebp - 0xe4], ebx
mov edi, dword [ebp - 0xf8]
mov eax, dword [ebp - 0xd4]
jmp 0x100637a8
mov edx, dword [ebx + 0x10]
xor eax, eax
push eax
push eax
push dword [ebx + 4]
mov ebx, dword [ebp - 0xe4]
mov ecx, ebx
call fcn.10059c88
mov al, byte [ebp - 0xfd]
add esp, 0xc
mov byte [ebx + 0x1f], al
jmp case.default.0x1005e221
mov ecx, dword [ebx + 4]
mov esi, dword [edi + 0x48]
imul ecx, ecx, 0x28
add ecx, 0xffffffd8
add esi, ecx
mov ecx, esi
mov dword [ebp - 0xd0], esi
call fcn.10059b7b
test eax, eax
jne 0x10063999
mov eax, 0x800
mov edx, esi
mov ecx, dword [ebp - 0xe4]
push eax
call fcn.10059b9e
pop ecx
jmp 0x1005e4e0
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebp - 0xcc], eax
mov esi, dword [ebx + 4]
mov dword [ebp - 0xc8], esi
imul esi, esi, 0x28
mov ebx, dword [ebx + 8]
add esi, dword [ebp - 0xdc]
mov dword [ebp - 0xc4], ebx
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xdc]
mov dword [ebp - 0xe4], ebx
test eax, eax
je 0x1005e5c7
push 0x28
pop edi
dec eax
mov dword [ebp - 0xcc], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0xd0], eax
and dword [ebx + 0x24], 0
mov edx, esi
mov ecx, ebx
call fcn.10059c62
mov eax, dword [ebp - 0xd0]
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0xcc]
add esi, edi
add ebx, edi
test eax, eax
jne 0x1005e587
mov edi, dword [ebp - 0xf8]
mov dword [ebp - 0xe4], ebx
dec eax
mov dword [ebp - 0xcc], eax
jmp 0x1005e4e0
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0xd0], eax
mov esi, dword [ebx + 4]
mov ebx, dword [ebx + 8]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xdc]
mov eax, 0x1000
push eax
mov edx, esi
mov ecx, ebx
mov dword [ebp - 0xe4], ebx
call fcn.10059b9e
mov eax, 0x1000
pop ecx
test word [ebx + 0x1c], ax
je 0x1005e624
mov ecx, ebx
call fcn.10059609
test eax, eax
jne 0x100639db
mov eax, dword [ebp - 0xd0]
mov ecx, eax
dec eax
mov dword [ebp - 0xd0], eax
test ecx, ecx
je 0x1005e4e0
push 0x28
pop eax
add ebx, eax
add esi, eax
jmp 0x1005e5f4
mov eax, dword [ebx + 8]
mov edx, 0x1000
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
push edx
mov edx, dword [ebx + 4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xdc]
mov ecx, eax
mov dword [ebp - 0xe4], eax
call fcn.10059b9e
pop ecx
jmp case.default.0x1005e221
xor edx, edx
mov ecx, edi
call fcn.1005bbfb
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x100637ae
xor edx, edx
inc edx
mov ecx, edi
call fcn.1005bafe
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x100637ae
mov eax, dword [edi + 0x54]
push 2
pop ecx
add eax, ecx
or eax, 1
mov dword [edi + 0x54], eax
mov edx, dword [ebx + 4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xdc]
xor ecx, ecx
mov dword [edi + 0x14], edx
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0xcc], ecx
cmp dword [ebx + 8], ecx
jle 0x10063861
mov eax, ecx
imul eax, eax, 0x28
add eax, edx
mov esi, 0x1000
test word [eax + 0x1c], si
mov esi, dword [ebp - 0xd8]
je 0x1005e70b
mov ecx, eax
call fcn.10059609
test eax, eax
jne 0x100639e1
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xd0]
imul ecx, ecx, 0x28
add ecx, edx
call fcn.100596b8
mov ecx, dword [ebp - 0xcc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xd0]
call fcn.1005dec0
mov ecx, dword [ebp - 0xcc]
inc ecx
mov dword [ebp - 0xcc], ecx
cmp ecx, dword [ebx + 8]
jge 0x10063861
mov edx, dword [ebp - 0xd0]
jmp 0x1005e6d8
mov ecx, dword [ebx + 4]
mov esi, dword [ebx + 8]
imul ecx, ecx, 0x28
mov ebx, dword [ebx + 0xc]
imul esi, esi, 0x28
mov eax, dword [ebp - 0xdc]
imul ebx, ebx, 0x28
add ecx, eax
add esi, eax
movzx edx, word [ecx + 0x1c]
add ebx, eax
mov al, byte [esi + 0x1c]
or al, dl
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 0xe4], ebx
test al, 1
je 0x1005e78a
mov ecx, ebx
call fcn.10059a6c
jmp 0x1005e4e0
mov eax, 0x4000
test eax, edx
je 0x1005e79c
call fcn.10059665
xor ebx, ebx
jmp 0x1005e7a0
xor ebx, ebx
mov eax, ebx
test eax, eax
jne 0x100639db
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x1005e7bc
mov ecx, esi
call fcn.10059665
jmp 0x1005e7be
mov eax, ebx
test eax, eax
jne 0x100639db
mov eax, dword [ebp - 0xe8]
test byte [eax + 0x1c], 0x12
jne 0x1005e7e8
movzx edx, byte [ebp - 0xfd]
mov ecx, eax
call fcn.10059702
test eax, eax
jne 0x100639db
test byte [esi + 0x1c], 0x12
jne 0x1005e804
movzx edx, byte [ebp - 0xfd]
mov ecx, esi
call fcn.10059702
test eax, eax
jne 0x100639db
mov eax, dword [ebp - 0xe8]
mov eax, dword [eax + 0x18]
add eax, dword [esi + 0x18]
cdq
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xd8]
mov ecx, edx
mov dword [ebp - 0xcc], ecx
mov eax, dword [eax + 0x50]
cdq
cmp ecx, edx
jg 0x10063999
jl 0x1005e83f
cmp dword [ebp - 0xd0], eax
ja 0x10063999
mov ecx, dword [ebp - 0xe4]
mov edx, 0xbe02
mov ax, word [ecx + 0x1c]
and ax, dx
push 2
pop edx
or ax, dx
mov word [ecx + 0x1c], ax
mov edx, dword [ebp - 0xd0]
xor eax, eax
cmp ecx, esi
sete al
lea edx, [edx + 2]
push eax
call fcn.1005954a
pop ecx
test eax, eax
jne 0x100639db
mov eax, dword [ebp - 0xe4]
cmp eax, esi
je 0x1005e895
push dword [esi + 0x18]
push dword [esi + 4]
push dword [eax + 4]
call fcn.100a79a0
add esp, 0xc
mov eax, dword [ebp - 0xe8]
push dword [eax + 0x18]
push dword [eax + 4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 4]
add eax, dword [esi + 0x18]
push eax
call fcn.100a79a0
mov edx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [edx + 4]
add esp, 0xc
mov byte [eax + ecx], bl
mov eax, dword [ebp - 0xd0]
mov ecx, dword [edx + 4]
mov byte [ecx + eax + 1], bl
mov eax, 0x200
or word [edx + 0x1c], ax
mov eax, dword [ebp - 0xd0]
mov dword [edx + 0x18], eax
mov al, byte [ebp - 0xfd]
mov byte [edx + 0x1f], al
jmp 0x1005e4e0
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov ecx, esi
call fcn.1005dfa2
mov eax, dword [ebx + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
mov ecx, eax
mov dword [ebp - 0xec], eax
call fcn.1005dfa2
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0xec]
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
movzx ecx, word [esi + 0x1c]
mov dword [ebp - 0xe4], eax
movzx eax, word [edx + 0x1c]
or ecx, eax
mov dword [ebp - 0xcc], ecx
test cl, 1
jne 0x1005ec0d
mov al, byte [esi + 0x1c]
and al, byte [edx + 0x1c]
push 4
pop ecx
test cl, al
je 0x1005eaa7
mov ecx, dword [esi + 0x10]
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0xc8], ecx
mov edx, dword [esi + 0x14]
mov dword [ebp - 0xc4], edx
mov edi, dword [eax + 0x10]
mov dword [ebp - 0xc0], edi
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xbc], eax
mov byte [ebp - 0xd0], 1
movzx eax, byte [ebx]
mov dword [ebp - 0xe8], edi
mov edi, dword [ebp - 0xf8]
sub eax, 0x56
je 0x1005ea61
dec eax
je 0x1005ea52
dec eax
je 0x1005ea43
dec eax
mov eax, ecx
je 0x1005e9fc
or eax, edx
je 0x1005ec0d
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x1005e9e7
xor ecx, ecx
inc ecx
xor edx, edx
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xc4], edx
push edx
push ecx
push dword [ebp - 0xf4]
push dword [ebp - 0xe8]
call fcn.100c4eb0
jmp 0x1005ea35
or eax, edx
je 0x1005ec0d
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0xe8]
jne 0x1005ea27
test eax, eax
jne 0x1005ea27
cmp dword [ebp - 0xf4], 0x80000000
je 0x1005eaae
push edx
push ecx
push dword [ebp - 0xf4]
push eax
call fcn.100b5d00
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
jmp 0x1005ea74
push edx
push ecx
lea ecx, [ebp - 0xc0]
call fcn.10049620
jmp 0x1005ea6e
push edx
push ecx
lea ecx, [ebp - 0xc0]
call fcn.100495d2
jmp 0x1005ea6e
push edx
push ecx
lea ecx, [ebp - 0xc0]
call fcn.10049548
pop ecx
pop ecx
test eax, eax
jne 0x1005eaae
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xe4]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xbc]
mov dword [ecx + 0x14], eax
mov ax, word [ecx + 0x1c]
mov edx, 0xbe04
and ax, dx
push 4
pop edx
or ax, dx
mov word [ecx + 0x1c], ax
jmp 0x1005e4e0
mov byte [ebp - 0xd0], 0
mov ecx, esi
call fcn.10059913
mov ecx, dword [ebp - 0xec]
movsd qword [ebp - 0xb8], xmm0
call fcn.10059913
movsd qword [ebp - 0xb0], xmm0
movzx eax, byte [ebx]
sub eax, 0x56
je 0x1005eba6
dec eax
je 0x1005eb9c
dec eax
je 0x1005eb92
dec eax
je 0x1005eb72
fld qword [ebp - 0xb8]
call fcn.1013c336
fld qword [ebp - 0xb0]
mov esi, eax
mov ebx, edx
mov dword [ebp - 0xc8], esi
mov dword [ebp - 0xc4], ebx
call fcn.1013c336
mov ecx, esi
or ecx, ebx
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
je 0x1005ec0d
mov ecx, esi
and ecx, ebx
cmp ecx, 0xffffffff
jne 0x1005eb47
xor esi, esi
inc esi
xor ebx, ebx
mov dword [ebp - 0xc8], esi
mov dword [ebp - 0xc4], ebx
push ebx
push esi
push edx
push eax
call fcn.100c4eb0
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
fild qword [ebp - 0x130]
fstp qword [ebp - 0xb0]
movsd xmm0, qword [ebp - 0xb0]
jmp 0x1005ebb6
movsd xmm1, qword [ebp - 0xb8]
ucomisd xmm1, qword [0x101951d8]
lahf
test ah, 0x44
jnp 0x1005ec0d
divsd xmm0, xmm1
jmp 0x1005ebae
mulsd xmm0, qword [ebp - 0xb8]
jmp 0x1005ebae
subsd xmm0, qword [ebp - 0xb8]
jmp 0x1005ebae
addsd xmm0, qword [ebp - 0xb8]
movsd qword [ebp - 0xb0], xmm0
call fcn.1004881c
test eax, eax
jne 0x1005ec0d
mov ebx, dword [ebp - 0xe4]
movsd xmm0, qword [ebp - 0xb0]
mov ax, word [ebx + 0x1c]
mov ecx, 0xbe08
and ax, cx
push 8
pop ecx
or ax, cx
movsd qword [ebx + 8], xmm0
mov word [ebx + 0x1c], ax
test byte [ebp - 0xcc], cl
jne 0x1005e4e0
cmp byte [ebp - 0xd0], 0
jne 0x1005e4e0
mov ecx, ebx
call fcn.10059973
jmp 0x1005e4e0
mov ecx, dword [ebp - 0xe4]
jmp 0x1005e780
mov ecx, dword [ebx + 4]
test ecx, ecx
je case.default.0x1005e221
imul ecx, ecx, 0x28
xor ebx, ebx
add ecx, dword [ebp - 0xdc]
push ebx
push ebx
call fcn.10059ab3
pop ecx
jmp 0x1005e66f
movzx eax, byte [ebx + 3]
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0x84], eax
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
imul edx, edx, 0x28
add edx, dword [ebp - 0xdc]
mov dword [ebp - 0xe4], ecx
xor ecx, ecx
mov esi, ecx
mov dword [ebp - 0xcc], edx
mov dword [ebp - 0xd0], esi
test eax, eax
jle 0x1005ece8
mov eax, dword [ebp - 0xec]
mov dword [eax + esi*4], edx
mov ecx, dword [ebp - 0xcc]
mov eax, 0x1000
test word [ecx + 0x1c], ax
je 0x1005ecb3
call fcn.10059609
test eax, eax
jne 0x100639db
mov ecx, dword [ebp - 0xcc]
call fcn.1005dec0
mov esi, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xcc]
push 0x28
inc esi
pop eax
add edx, eax
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0xcc], edx
cmp esi, dword [ebp - 0x84]
jge 0x1005ece6
mov eax, dword [ebp - 0x88]
jmp 0x1005ec8c
xor ecx, ecx
cmp byte [ebx + 1], 0xfb
mov eax, dword [ebx + 0x10]
jne 0x1005ecf9
mov dword [ebp - 0xc4], ecx
jmp 0x1005ed01
mov dword [ebp - 0xc4], eax
mov eax, dword [eax]
mov esi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xc8], eax
xor eax, eax
inc eax
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0x9c], ecx
lea ecx, [ebp - 0xc0]
mov word [ebp - 0xa4], ax
mov dword [ebp - 0xc0], esi
call fcn.10059c62
mov eax, dword [ebp - 0xa4]
and dword [ebp - 0x90], 0
mov ecx, 0xbe01
and eax, ecx
or eax, 1
mov word [ebp - 0xa4], ax
mov eax, dword [ebp - 0xc8]
push 8
pop ecx
test byte [eax + 3], cl
je 0x1005ed6f
mov eax, dword [ebx - 4]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x108]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x104]
mov dword [esi + 0x24], eax
push dword [ebp - 0x88]
lea eax, [ebp - 0xc8]
push dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0xc8]
call dword [eax + 0xc]
mov eax, dword [esi + 0x20]
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 0x108], eax
mov eax, dword [esi + 0x24]
add esp, 0xc
mov dword [ebp - 0x104], eax
test ecx, ecx
je 0x1005edd1
mov edx, dword [ebx + 4]
call fcn.1005bfd2
mov eax, dword [ebp - 0xc4]
mov dword [ebx + 0x10], eax
mov byte [ebx + 1], 0xf9
cmp byte [esi + 0x38], 0
jne 0x1006387d
cmp dword [ebp - 0x90], 0
je 0x1005ee10
mov dl, 1
lea ecx, [ebp - 0xc0]
call fcn.1005a08b
push eax
push 0x101903e0
lea eax, [edi + 0x38]
push esi
push eax
call fcn.10047044
mov eax, dword [ebp - 0x90]
add esp, 0x10
mov dword [ebp - 0xd4], eax
movzx edx, byte [ebp - 0xfd]
lea ecx, [ebp - 0xc0]
call fcn.10059530
mov ecx, dword [ebp - 0xe4]
lea edx, [ebp - 0xc0]
call fcn.10059c62
mov ecx, dword [ebp - 0xe4]
call fcn.10059b7b
test eax, eax
jne 0x1006399f
jmp case.default.0x1005e221
mov ecx, dword [ebx + 8]
mov esi, dword [ebx + 4]
imul ecx, ecx, 0x28
mov edx, dword [ebx + 0xc]
imul esi, esi, 0x28
mov eax, dword [ebp - 0xdc]
imul edx, edx, 0x28
add ecx, eax
add edx, eax
add esi, eax
mov al, byte [ecx + 0x1c]
or al, byte [esi + 0x1c]
mov dword [ebp - 0xe4], edx
test al, 1
je 0x1005ee80
mov ecx, edx
jmp 0x1005e780
call fcn.100598b6
mov ecx, esi
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
call fcn.100598b6
mov ecx, eax
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xbc], edx
mov al, byte [ebx]
mov dword [ebp - 0xec], ecx
mov byte [ebp - 0xf9], al
mov byte [ebp - 0xb8], al
cmp al, 0x52
jne 0x1005eed7
mov esi, dword [ebp - 0xd0]
and esi, ecx
and dword [ebp - 0xcc], edx
mov dword [ebp - 0xd0], esi
jmp 0x1005f01d
cmp al, 0x53
jne 0x1005eef4
mov esi, dword [ebp - 0xd0]
or esi, ecx
or dword [ebp - 0xcc], edx
mov dword [ebp - 0xd0], esi
jmp 0x1005f01d
mov eax, ecx
or eax, edx
je 0x1005f017
xor ebx, ebx
cmp edx, ebx
jg 0x1005ef59
jl 0x1005ef0a
cmp ecx, ebx
jae 0x1005ef59
mov al, 0xa9
sub al, byte [ebp - 0xf9]
mov byte [ebp - 0xb8], al
cmp edx, 0xffffffff
jl 0x1005ef3e
jg 0x1005ef24
cmp ecx, 0xffffffc0
jbe 0x1005ef3e
neg ecx
adc edx, ebx
neg edx
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xbc], edx
jmp 0x1005ef5f
push 0x40
pop esi
mov ecx, esi
mov edx, ebx
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xbc], edx
jmp 0x1005ef62
mov al, byte [ebp - 0xf9]
push 0x40
pop esi
cmp edx, ebx
jl 0x1005ef9b
jg 0x1005ef6c
cmp ecx, esi
jb 0x1005ef9b
cmp dword [ebp - 0xcc], ebx
jg 0x1005ef85
jl 0x1005ef7e
cmp dword [ebp - 0xd0], ebx
jae 0x1005ef85
cmp al, 0x54
je 0x1005ef85
or ebx, 0xffffffff
mov eax, ebx
cdq
mov esi, eax
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0xcc], edx
jmp 0x1005f01d
mov edx, dword [ebp - 0xcc]
cmp al, 0x54
mov eax, dword [ebp - 0xd0]
jne 0x1005efb6
call fcn.1013dfb0
mov esi, eax
mov eax, edx
jmp 0x1005effd
call fcn.100bb8a0
mov esi, eax
mov eax, edx
mov dword [ebp - 0xc8], esi
mov dword [ebp - 0xc4], eax
cmp dword [ebp - 0xcc], ebx
jg 0x1005f009
jl 0x1005efdd
cmp dword [ebp - 0xd0], ebx
jae 0x1005f009
push 0x40
pop eax
mov ecx, eax
sub ecx, dword [ebp - 0xec]
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.1013dfb0
or esi, eax
mov eax, dword [ebp - 0xc4]
or eax, edx
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc8], esi
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0xcc], eax
jmp 0x1005f01d
mov esi, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe4]
mov dword [ecx + 0x10], esi
mov eax, dword [ebp - 0xcc]
jmp 0x1005ea89
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov ecx, esi
call fcn.100599da
mov eax, dword [ebx + 8]
cdq
add dword [esi + 0x10], eax
adc dword [esi + 0x14], edx
jmp 0x1005e4e0
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov ecx, esi
call fcn.1005dfa2
push 8
pop eax
test byte [esi + 0x1c], al
je 0x1005f075
mov ecx, esi
call fcn.10059973
movzx eax, word [esi + 0x1c]
push 4
pop ecx
test cl, al
jne 0x1005f099
mov eax, dword [ebx + 8]
mov esi, dword [ebp - 0xd8]
test eax, eax
jne 0x1005e238
push 0x14
pop eax
jmp 0x10063941
mov edx, 0xbe04
and eax, edx
or eax, ecx
mov word [esi + 0x1c], ax
jmp 0x1005e4e0
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
movzx ebx, word [esi + 0x1c]
test cl, bl
je 0x1005e4e0
mov ecx, esi
call fcn.10059913
mov eax, 0xbe08
and ebx, eax
push 8
pop eax
or ebx, eax
movsd qword [esi + 8], xmm0
mov word [esi + 0x1c], bx
jmp 0x1005e4e0
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
movzx ecx, word [esi + 0x1c]
test cl, 1
jne 0x1005e4e0
mov eax, ecx
push 2
pop edx
push dword [ebp - 0xfd]
shr eax, 3
and eax, edx
or eax, ecx
mov dl, 0x61
mov ecx, esi
mov word [esi + 0x1c], ax
call fcn.1005e01f
mov eax, 0x4000
pop ecx
test word [esi + 0x1c], ax
je 0x1005f137
mov ecx, esi
call fcn.10059665
mov dword [ebp - 0xd4], eax
jmp 0x1005f13e
and dword [ebp - 0xd4], 0
mov eax, 0xbfe3
and word [esi + 0x1c], ax
jmp 0x1005e4e0
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
movzx eax, word [esi + 0x1c]
test al, 1
jne 0x1005e4e0
push 0x10
pop ebx
test bl, al
jne 0x1005f18f
push dword [ebp - 0xfd]
mov dl, 0x61
mov ecx, esi
call fcn.1005e01f
mov ax, word [esi + 0x1c]
pop ecx
mov ecx, 0xbe10
and ax, cx
or ax, bx
jmp 0x1005f0a2
and eax, 0xfe10
jmp 0x1005f0a2
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
call fcn.10059a00
jmp case.default.0x1005e221
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
test byte [ecx + 0x1c], 1
jne case.default.0x1005e221
call fcn.100599da
jmp case.default.0x1005e221
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
movzx ebx, word [esi + 0x1c]
test bl, 1
jne 0x1005e4e0
jmp 0x1005f0c3
mov esi, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov ax, word [esi + 0x1c]
mov word [ebp - 0xca], ax
mov ax, word [ecx + 0x1c]
mov dword [ebp - 0xe8], ecx
mov cl, byte [ebp - 0xca]
mov word [ebp - 0xc8], ax
mov dl, al
or al, cl
test al, 1
je 0x1005f2aa
mov al, byte [ebx + 3]
test al, al
jns 0x1005f260
xor eax, eax
inc eax
test al, cl
je 0x1005f32b
test al, dl
je 0x1005f32b
test dword [ebp - 0xc8], 0x100
jne 0x1005f32b
xor edx, edx
jmp 0x1005f32d
push 0x10
pop ecx
test cl, al
je 0x1005f294
mov ebx, dword [ebx + 8]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xdc]
xor edx, edx
mov ecx, 0xbe01
mov ax, word [ebx + 0x1c]
and ax, cx
inc edx
or ax, dx
mov dword [ebp - 0xe4], ebx
mov word [ebx + 0x1c], ax
jmp 0x1005e4e0
push 8
pop ecx
test cl, al
mov esi, dword [ebp - 0xd8]
je case.default.0x1005e221
jmp 0x1005e235
mov dl, byte [ebx + 3]
and dl, 0x67
mov byte [ebp - 0xcc], dl
je 0x1005f2ee
push dword [ebp - 0xfd]
mov ecx, esi
call fcn.1005e01f
mov dl, byte [ebp - 0xcc]
pop ecx
push dword [ebp - 0xfd]
mov ecx, dword [ebp - 0xe8]
call fcn.1005e01f
mov eax, dword [ebp - 0xd8]
pop ecx
cmp byte [eax + 0x38], 0
jne 0x100639d7
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x1005f300
mov ecx, esi
call fcn.10059665
mov eax, dword [ebp - 0xe8]
mov ecx, 0x4000
test word [eax + 0x1c], cx
je 0x1005f31e
mov ecx, eax
call fcn.10059665
mov eax, dword [ebp - 0xe8]
push dword [ebx + 0x10]
mov edx, esi
mov ecx, eax
call fcn.10059ddf
pop ecx
mov edx, eax
mov dword [ebp - 0xd0], edx
movzx ecx, byte [ebx]
xor eax, eax
sub ecx, 0x4b
je 0x1005f36c
dec ecx
je 0x1005f365
dec ecx
je 0x1005f35e
dec ecx
je 0x1005f357
dec ecx
je 0x1005f350
test edx, edx
setns al
jmp 0x1005f371
test edx, edx
sets al
jmp 0x1005f371
test edx, edx
setle al
jmp 0x1005f371
test edx, edx
setg al
jmp 0x1005f371
test edx, edx
sete al
jmp 0x1005f371
test edx, edx
setne al
push 0x10
pop ecx
mov dword [ebp - 0xd0], eax
test byte [ebx + 3], cl
je 0x1005f3b6
mov ebx, dword [ebx + 8]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xdc]
mov ecx, 0xbe04
push 4
mov ax, word [ebx + 0x1c]
and ax, cx
pop ecx
or ax, cx
mov word [ebx + 0x1c], ax
mov eax, dword [ebp - 0xd0]
cdq
mov dword [ebp - 0xe4], ebx
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], edx
jmp 0x1005f3c4
test eax, eax
je 0x1005f3c4
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xe0], eax
mov ax, word [esi + 0x1c]
xor ax, word [ebp - 0xca]
mov ecx, dword [ebp - 0xe8]
mov edx, 0x1ff
and ax, dx
xor word [esi + 0x1c], ax
mov ax, word [ecx + 0x1c]
xor ax, word [ebp - 0xc8]
and ax, dx
xor word [ecx + 0x1c], ax
jmp 0x1005e4e0
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x10c], ecx
jmp case.default.0x1005e221
test byte [ebx + 3], 1
mov eax, dword [ebp - 0x10c]
push 0
pop ecx
cmove eax, ecx
mov dword [ebp - 0x10c], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0xc0], ecx
mov edx, dword [ebx + 4]
mov dword [ebp - 0xc8], edx
mov ebx, dword [ebx + 8]
mov dword [ebp - 0xf4], edx
xor edx, edx
mov esi, edx
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xe8], ebx
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xcc], esi
test eax, eax
jle 0x1005f512
mov edx, ebx
mov eax, dword [ebp - 0x10c]
test eax, eax
je 0x1005f475
mov ebx, dword [eax + esi*4]
jmp 0x1005f477
mov ebx, esi
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0xbc], ebx
mov ecx, dword [ecx + esi*4 + 0xc]
mov dword [ebp - 0xb8], ecx
mov eax, dword [eax + 8]
push ecx
mov ecx, dword [ebp - 0xf4]
movzx eax, byte [eax + esi]
add edx, ebx
add ecx, ebx
imul edx, edx, 0x28
add edx, dword [ebp - 0xdc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xb4], eax
call fcn.10059ddf
pop ecx
mov dword [ebp - 0x114], eax
test eax, eax
jne 0x1005f4ff
mov esi, dword [ebp - 0xcc]
inc esi
mov dword [ebp - 0xcc], esi
cmp esi, dword [ebp - 0xd0]
jge 0x1005f510
mov ecx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xf4], eax
jmp 0x1005f466
cmp dword [ebp - 0xb4], 0
je 0x1005f510
neg eax
mov dword [ebp - 0x114], eax
xor edx, edx
mov dword [ebp - 0x10c], edx
jmp 0x1005e4e0
mov eax, dword [ebp - 0x114]
test eax, eax
jns 0x1005f52f
mov eax, dword [ebx + 4]
jmp 0x1005e238
je 0x1005e235
mov eax, dword [ebx + 0xc]
jmp 0x1005e238
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
xor edx, edx
inc edx
test byte [ecx + 0x1c], dl
je 0x1005f556
push 2
pop eax
jmp 0x1005f56b
call fcn.100598b6
or eax, edx
je 0x1005f566
xor edx, edx
inc edx
mov eax, edx
jmp 0x1005f56b
xor edx, edx
xor eax, eax
inc edx
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebx + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
test byte [ecx + 0x1c], dl
je 0x1005f587
push 2
pop ecx
jmp 0x1005f5a2
call fcn.100598b6
or eax, edx
mov eax, dword [ebp - 0xd0]
je 0x1005f59d
xor edx, edx
inc edx
mov ecx, edx
jmp 0x1005f5a2
xor edx, edx
xor ecx, ecx
inc edx
mov dword [ebp - 0xcc], ecx
imul eax, eax, 3
cmp byte [ebx], 0x45
jne 0x1005f5ba
movzx eax, byte [eax + ecx + 0x1018b9d4]
jmp 0x1005f5c2
movzx eax, byte [eax + ecx + 0x10189d9c]
mov dword [ebp - 0xd0], eax
mov ebx, dword [ebx + 0xc]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xdc]
push 2
pop ecx
mov dword [ebp - 0xe4], ebx
cmp eax, ecx
jne 0x1005f5f2
mov ax, word [ebx + 0x1c]
mov ecx, 0xbe01
and ax, cx
or ax, dx
jmp 0x1005f60b
cdq
mov dword [ebx + 0x10], eax
mov ax, word [ebx + 0x1c]
mov ecx, 0xbe04
and ax, cx
push 4
pop ecx
mov dword [ebx + 0x14], edx
or ax, cx
mov word [ebx + 0x1c], ax
jmp case.default.0x1005e221
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xdc]
test byte [ecx + 0x1c], 1
mov dword [ebp - 0xe4], ebx
je 0x1005f644
mov ecx, ebx
call fcn.10059a6c
jmp case.default.0x1005e221
call fcn.100598b6
or eax, edx
jne 0x1005f650
inc eax
jmp 0x1005f652
xor eax, eax
cdq
push edx
push eax
mov ecx, ebx
jmp 0x1005ec30
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xdc]
test byte [ecx + 0x1c], 1
mov dword [ebp - 0xe4], ebx
jne 0x1005f638
call fcn.100598b6
not eax
not edx
jmp 0x1005f653
mov eax, dword [edi + 0xc0]
mov ecx, dword [ebx + 4]
cmp byte [eax + ecx], 0
jne 0x1005e235
mov byte [eax + ecx], 1
jmp case.default.0x1005e221
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
test byte [ecx + 0x1c], 1
je 0x1005f6be
mov ecx, dword [ebx + 0xc]
jmp 0x1005f6e8
call fcn.10059913
ucomisd xmm0, qword [0x101951d8]
lahf
xor ecx, ecx
test ah, 0x44
jnp 0x1005f6d4
inc ecx
mov dword [ebp - 0xd0], ecx
cmp byte [ebx], 0x1c
jne 0x1005f6ee
xor eax, eax
test ecx, ecx
sete al
mov ecx, eax
mov dword [ebp - 0xd0], ecx
test ecx, ecx
jmp 0x1005f29f
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xdc]
imul eax, eax, 0x28
test byte [eax + ecx + 0x1c], 1
jmp 0x1005f29f
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xdc]
imul eax, eax, 0x28
test byte [eax + ecx + 0x1c], 1
jne case.default.0x1005e221
jmp 0x1005e235
mov eax, dword [ebx + 4]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0xbc], eax
xor edx, edx
mov dword [ebp - 0xb8], edx
xor eax, eax
push 0xa
pop ecx
lea edi, [ebp - 0x90]
rep stosd dword es:[edi], eax
mov esi, dword [ebx + 0xc]
mov edi, dword [ebp - 0xf8]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xc0]
mov ecx, dword [edi + 0x44]
mov dword [ebp - 0x94], esi
mov dword [ebp - 0xb4], edx
mov ecx, dword [ecx + eax*4]
mov dword [ebp - 0xb8], ecx
mov eax, dword [ecx]
mov dword [ebp - 0xb0], eax
test eax, eax
je 0x1005f832
call fcn.1005c114
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x1006393b
mov ecx, dword [ebp - 0xb8]
cmp byte [ecx + 0x1c], al
je 0x1005f7bd
and dword [ebp - 0xd0], eax
mov esi, dword [ebp - 0x94]
jmp 0x1005f8db
mov eax, dword [ecx + 0x50]
cmp eax, dword [edi + 0x54]
jne 0x1005f7f0
mov eax, dword [ecx + 0x54]
mov esi, dword [ebp - 0x94]
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xd0], eax
mov eax, dword [ecx + 0x60]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xf4]
xor edx, edx
jmp 0x1005f8d7
cmp byte [ecx + 0x1f], 0
je 0x1005f820
mov ecx, dword [ebp - 0xb0]
lea edx, [ebp - 0xc8]
call fcn.100549c4
mov eax, dword [ebp - 0xc8]
mov esi, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xb8]
xor edx, edx
jmp 0x1005f8d1
mov esi, dword [ebp - 0xb0]
mov ecx, esi
call fcn.1005499a
mov eax, dword [esi + 0x34]
jmp 0x1005f80d
mov eax, dword [ecx + 0x10]
test eax, eax
jle 0x1005f8cf
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0xf4], eax
cmp byte [ecx + 0x22], dl
je 0x1005f895
mov edx, dword [ebp - 0xbc]
imul edx, edx, 0x28
mov ebx, 0x1000
push ebx
add edx, eax
mov ecx, esi
call fcn.10059b9e
pop ecx
mov ecx, dword [ebp - 0x94]
test word [ecx + 0x1c], bx
je 0x1005e4e0
call fcn.10059609
mov esi, dword [ebp - 0xd8]
test eax, eax
jne 0x100639e1
jmp case.default.0x1005e221
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 4]
mov dword [ebp - 0xb4], eax
test byte [ebx + 3], 0x20
mov eax, edx
jne 0x1005f8b8
mov eax, dword [edi + 0x54]
mov dword [ecx + 0x50], eax
mov esi, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xd0]
jmp 0x1005f8d7
mov eax, edx
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1005f8f2
mov ax, word [esi + 0x1c]
xor edx, edx
mov ecx, 0xbe01
and ax, cx
inc edx
or ax, dx
jmp 0x1005f0a2
mov ebx, dword [ebp - 0xd8]
cmp eax, dword [ebx + 0x50]
mov ebx, dword [ebp - 0xec]
ja 0x10063999
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xa4], eax
mov eax, dword [ecx + 0x58]
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xac], eax
mov eax, dword [ecx + 0x50]
cmp eax, dword [edi + 0x54]
mov eax, dword [ebp - 0xec]
jne 0x1005f941
mov ecx, dword [ecx + 0x5c]
mov dword [ebp - 0xa8], ecx
jmp 0x1005fb7e
mov esi, dword [ebp - 0xf4]
mov dword [ebp - 0x54], edx
lea eax, [eax + esi*4]
mov dword [ebp - 0xa8], eax
mov dword [ecx + 0x5c], eax
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xd0]
mov dword [ecx + 0x54], eax
mov eax, dword [ebp - 0xb8]
mov ecx, dword [edi + 0x54]
mov dword [eax + 0x50], ecx
mov eax, dword [ebp - 0xb4]
test eax, eax
je 0x1005f983
mov dword [ebp - 0x98], eax
jmp 0x1005f9e2
mov esi, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xb0]
cmp byte [esi + 0x1f], 0
mov ecx, edx
je 0x1005f9a0
cmp byte [eax + 0x5b], 1
jne 0x1005f9bd
push edx
jmp 0x1005f9a8
cmp byte [eax + 0x5b], 1
jne 0x1005f9bd
push 1
lea edx, [ebp - 0x54]
mov ecx, eax
call fcn.10054dc1
mov esi, dword [ebp - 0xb8]
pop ecx
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x98], ecx
cmp eax, dword [ebp - 0x54]
ja 0x1005f9d9
mov dword [ebp - 0xb4], ecx
mov dword [esi + 0x60], ecx
jmp 0x1005f9dc
mov dword [esi + 0x60], edx
mov eax, dword [ebp - 0x98]
mov cl, byte [eax]
mov edx, 0x80
cmp cl, dl
jae 0x1005f9f8
movzx edx, cl
xor ecx, ecx
mov dword [ebp - 0x60], edx
inc ecx
jmp 0x1005fa0e
lea edx, [ebp - 0x60]
mov ecx, eax
call fcn.1004938b
mov edx, dword [ebp - 0x60]
movzx ecx, al
mov eax, dword [ebp - 0x98]
movzx ecx, cl
mov dword [ebp - 0x58], ecx
cmp edx, 0x18003
jbe 0x1005fa31
mov ecx, 0x1037e
call fcn.1008b85d
mov dword [ebp - 0xd4], eax
jmp 0x100637a8
mov ecx, dword [ebp - 0xa4]
imul ecx, ecx, 5
add ecx, 3
cmp ecx, edx
cmovg ecx, edx
cmp dword [ebp - 0xb4], 0
mov dword [ebp - 0xa0], ecx
jne 0x1005faa8
cmp dword [ebp - 0x54], ecx
jge 0x1005faa8
xor eax, eax
and dword [ebp - 0x90], eax
mov word [ebp - 0x74], ax
lea eax, [ebp - 0x90]
push eax
mov eax, dword [ebp - 0xb8]
xor edx, edx
movzx eax, byte [eax + 0x1f]
push eax
push ecx
mov ecx, dword [ebp - 0xb0]
call fcn.10059fa3
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x100637a8
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x98], eax
lea esi, [eax + ecx]
add eax, dword [ebp - 0x58]
xor ecx, ecx
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x9c], ecx
cmp dword [ebp - 0xa4], ecx
jle 0x1005fb31
cmp eax, esi
mov eax, dword [ebp - 0xa8]
jae 0x1005fbd2
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp - 0x68]
mov edx, 0x80
mov al, byte [ecx]
cmp al, dl
jae 0x1005faef
movzx edx, al
inc ecx
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x68], ecx
jmp 0x1005fb00
lea edx, [ebp - 0x50]
call fcn.1004938b
mov edx, dword [ebp - 0x50]
movzx eax, al
add dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0xac]
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp - 0x50]
call fcn.1005c2a5
mov edx, dword [ebp - 0x60]
add edx, eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x60], edx
cmp edx, eax
jae 0x1005fbd9
mov eax, dword [ebp - 0x64]
inc eax
mov dword [ebp - 0x68], eax
lea ecx, [ebp - 0x90]
call fcn.10059824
mov ecx, dword [ebp - 0x64]
xor eax, eax
inc eax
mov word [ebp - 0x74], ax
cmp dword [ebp - 0x68], ecx
ja 0x1005fd34
mov eax, dword [ebp - 0xd0]
cmp dword [ebp - 0x60], eax
ja 0x1005fd34
cmp dword [ebp - 0x68], ecx
jne 0x1005fb6c
cmp dword [ebp - 0x60], eax
jne 0x1005fd34
mov esi, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xac]
mov edx, dword [ebp - 0xbc]
cmp dword [ecx + edx*4], 0
je 0x1005fcb6
cmp dword [ebp - 0xb4], 0
je 0x1005fbfd
mov ebx, 0x2460
test word [esi + 0x1c], bx
je 0x1005fbc1
mov ecx, esi
call fcn.100597d3
mov esi, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xac]
mov edx, dword [ebp - 0xbc]
mov ecx, dword [ecx + edx*4]
add ecx, dword [ebp - 0xb4]
mov edx, dword [eax + edx*4]
jmp 0x1005fc9e
and dword [eax + ecx*4], 0
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x9c]
inc ecx
mov dword [ebp - 0x9c], ecx
cmp ecx, dword [ebp - 0xa4]
jge 0x1005fb31
mov esi, dword [ebp - 0x64]
mov eax, dword [ebp - 0x68]
jmp 0x1005fac4
mov edx, dword [eax + edx*4]
mov dword [ebp - 0x50], edx
mov al, byte [ebx + 3]
test al, 0xc0
je 0x1005fc2c
cmp edx, 0xc
jb 0x1005fc14
test dl, 1
je 0x1005fc1d
mov ecx, 0x80
test cl, al
je 0x1005fc2c
cmp edx, 0xc
sbb ecx, ecx
lea eax, [ebp - 0xc8]
and ecx, eax
jmp 0x1005fc98
mov ecx, edx
call fcn.1005c2a5
mov edx, esi
lea ecx, [ebp - 0x90]
mov dword [ebp - 0xa0], eax
call fcn.10059c62
mov edx, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xb0]
lea eax, [ebp - 0x90]
push eax
mov eax, dword [ebp - 0xb8]
movzx eax, byte [eax + 0x1f]
push eax
mov eax, dword [ebp - 0xa8]
push dword [ebp - 0xa0]
mov edx, dword [eax + edx*4]
call fcn.10059fa3
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x100637a8
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x94]
mov dword [ebp - 0x98], ecx
push esi
call fcn.1005c35d
mov eax, dword [ebp - 0x94]
pop ecx
mov cl, byte [ebp - 0xfd]
mov byte [eax + 0x1f], cl
jmp 0x1005fce5
cmp byte [ebx + 1], 0xf8
jne 0x1005fccf
mov edx, dword [ebx + 0x10]
mov eax, 0x800
push eax
mov ecx, esi
call fcn.10059b9e
pop ecx
jmp 0x1005fce5
mov ax, word [esi + 0x1c]
mov ecx, 0xbe01
and ax, cx
xor ecx, ecx
inc ecx
or ax, cx
mov word [esi + 0x1c], ax
cmp dword [ebp - 0x6c], 0
je 0x1005fd24
mov eax, dword [ebp - 0x94]
mov ecx, 0xe7ff
and word [eax + 0x1c], cx
mov eax, dword [ebp - 0x94]
mov ecx, 0x200
or word [eax + 0x1c], cx
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x8c]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x6c]
mov dword [eax + 0x24], ecx
mov ecx, dword [ebp - 0x94]
call fcn.10059609
jmp 0x1005fa26
mov ecx, 0x103ce
jmp 0x1005fa21
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xd0], eax
mov esi, dword [ebx + 4]
mov cl, byte [eax]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov byte [ebp - 0xcc], cl
test cl, cl
je 0x1005fdab
push 0x28
pop edi
mov ebx, 0x4000
inc eax
mov dword [ebp - 0xd0], eax
test word [esi + 0x1c], bx
je 0x1005fd81
mov ecx, esi
call fcn.10059665
mov cl, byte [ebp - 0xcc]
push dword [ebp - 0xfd]
mov dl, cl
mov ecx, esi
call fcn.1005e01f
mov eax, dword [ebp - 0xd0]
pop ecx
mov cl, byte [eax]
add esi, edi
mov byte [ebp - 0xcc], cl
test cl, cl
jne 0x1005fd67
mov edi, dword [ebp - 0xf8]
inc eax
mov dword [ebp - 0xd0], eax
jmp 0x1005e4e0
xor eax, eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xb0], eax
xorps xmm0, xmm0
movlpd qword [ebp - 0xc8], xmm0
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x9c], ecx
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xec], eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0xa4], ecx
mov eax, dword [ebx + 8]
mov dword [ebp - 0x9c], eax
imul eax, eax, 0x28
lea edx, [eax - 0x28]
movzx eax, byte [edi + 0x61]
add edx, ecx
mov dword [ebp - 0x94], eax
mov dword [ebp - 0xa0], edx
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
mov esi, ecx
xor ebx, ebx
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xcc], esi
cmp ecx, edx
ja 0x1005ff68
mov edi, dword [ebp - 0xec]
test edi, edi
je 0x1005fe97
push dword [ebp - 0xfd]
mov eax, esi
sub eax, ecx
cdq
push 0x28
pop ecx
idiv ecx
mov ecx, esi
mov dl, byte [eax + edi]
call fcn.1005e01f
mov eax, dword [ebp - 0x98]
mov esi, dword [ebp - 0xcc]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xb0]
pop ecx
mov dword [ebp - 0xe8], eax
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x1005fed8
cmp dword [esi + 0x18], ebx
jle 0x1005fed8
mov ecx, esi
call fcn.10059665
mov eax, dword [ebp - 0x98]
mov esi, dword [ebp - 0xcc]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xe8], eax
mov edx, dword [ebp - 0x94]
mov ecx, esi
call fcn.1005c1b2
mov ecx, eax
mov dword [ebp - 0xa8], ecx
call fcn.1005c2a5
mov dword [ebp - 0x8c], eax
cdq
add dword [ebp - 0xc8], eax
push ebx
push ecx
adc dword [ebp - 0xc4], edx
call fcn.100493f3
mov edi, dword [ebp - 0xc0]
add edi, eax
pop ecx
mov eax, 0x4000
mov dword [ebp - 0xc0], edi
pop ecx
mov ecx, dword [ebp - 0xe8]
test word [esi + 0x1c], ax
je 0x1005ff32
add ecx, dword [esi + 0x10]
jmp 0x1005ff3d
xor eax, eax
cmp dword [ebp - 0x8c], eax
cmovne ecx, eax
push 0x28
pop eax
add esi, eax
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0xe8], ecx
mov ecx, dword [ebp - 0xf4]
mov dword [ebp - 0xcc], esi
cmp esi, dword [ebp - 0xa0]
jbe 0x1005fe48
jmp 0x1005ff6e
mov edi, dword [ebp - 0xc0]
mov eax, edi
cdq
push edx
push eax
call fcn.100493f3
mov esi, eax
add edi, esi
mov eax, edi
cdq
push edx
push eax
mov dword [ebp - 0xac], esi
mov dword [ebp - 0xc0], edi
call fcn.100493f3
add esp, 0x10
cmp esi, eax
jge 0x1005ffa0
inc edi
mov dword [ebp - 0xc0], edi
mov eax, dword [ebp - 0xe8]
cdq
mov ecx, eax
mov eax, edi
mov esi, edx
cdq
sub eax, ecx
mov edi, edx
sbb edi, esi
add eax, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xd8]
adc edi, dword [ebp - 0xc4]
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], edi
mov eax, dword [esi + 0x50]
cdq
cmp edi, edx
jg 0x10063991
mov edx, dword [ebp - 0xec]
jl 0x1005fff4
cmp edx, eax
ja 0x10063991
mov edi, dword [ebp - 0xe4]
push ebx
mov ecx, edi
call fcn.1005954a
pop ecx
test eax, eax
jne 0x100639cb
mov edx, dword [ebp - 0xc0]
mov ecx, dword [edi + 4]
mov eax, 0x80
mov dword [ebp - 0xd0], ecx
cmp edx, eax
jae 0x1006002c
mov al, dl
mov byte [ecx], al
xor eax, eax
inc eax
jmp 0x10060031
call fcn.100491fd
mov ecx, dword [ebp - 0xa0]
movzx esi, al
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x90], esi
mov dword [ebp - 0xcc], eax
cmp eax, ecx
ja 0x100600c4
push 0x28
pop edi
mov edx, dword [ebp - 0x94]
mov ecx, eax
call fcn.1005c1b2
mov edx, eax
mov eax, 0x80
mov dword [ebp - 0xa8], edx
cmp edx, eax
jae 0x10060081
mov eax, dword [ebp - 0xd0]
mov cl, dl
mov byte [esi + eax], cl
xor eax, eax
inc eax
jmp 0x1006008f
mov ecx, dword [ebp - 0xd0]
lea ecx, [esi + ecx]
call fcn.100491fd
mov esi, dword [ebp - 0x90]
mov ecx, dword [ebp - 0xa0]
movzx eax, al
add esi, eax
mov eax, dword [ebp - 0xcc]
add eax, edi
mov dword [ebp - 0x90], esi
mov dword [ebp - 0xcc], eax
cmp eax, ecx
jbe 0x10060053
mov edi, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xcc], eax
cmp eax, ecx
ja 0x1006011a
push 0x28
pop edi
push dword [ebp - 0x94]
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xb8]
push eax
sub edx, esi
lea ecx, [esi + ecx]
call fcn.1005c2b8
mov esi, dword [ebp - 0x90]
add esi, eax
mov eax, dword [ebp - 0xcc]
add eax, edi
pop ecx
pop ecx
mov dword [ebp - 0x90], esi
mov dword [ebp - 0xcc], eax
cmp eax, dword [ebp - 0xa0]
jbe 0x100600d1
mov edi, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xb8]
mov dword [edi + 0x18], eax
mov eax, 0x410
mov dword [edi + 0x20], ebx
mov ebx, dword [ebp - 0xe4]
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0xb0]
test eax, eax
je 0x1006014b
mov dword [ebx + 0x10], eax
mov eax, 0x4410
mov word [ebx + 0x1c], ax
mov byte [ebx + 0x1f], 1
jmp 0x1005e4da
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov dword [ebp - 0xc8], ecx
test ecx, ecx
je 0x1006017c
lea edx, [ebp - 0xd0]
call fcn.10057c37
mov dword [ebp - 0xd4], eax
jmp 0x10060187
xorps xmm0, xmm0
movlpd qword [ebp - 0xd0], xmm0
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe4]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 0x14], eax
jmp case.default.0x1005e221
mov eax, dword [ebx + 4]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebx + 0x10]
xor ebx, ebx
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0xcc], ecx
test eax, eax
jne 0x100602a1
cmp dword [esi + 0x88], ebx
jle 0x100601de
push 0x1019190c
jmp 0x10060317
call fcn.1004884a
mov dword [ebp - 0xc8], eax
mov eax, dword [esi + 0x1e4]
add eax, dword [esi + 0x1e0]
xor edx, edx
push eax
mov ecx, esi
call fcn.100817bd
pop ecx
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x10063941
mov edx, dword [ebp - 0xc8]
mov ecx, esi
lea edx, [edx + 0x19]
call fcn.10046ead
mov dword [ebp - 0xc4], eax
test eax, eax
je case.default.0x1005e221
lea ecx, [eax + 0x18]
mov dword [eax], ecx
mov eax, dword [ebp - 0xc8]
inc eax
push eax
push dword [ebp - 0xcc]
mov eax, dword [ebp - 0xc4]
push dword [eax]
call fcn.100a79a0
add esp, 0xc
cmp byte [esi + 0x36], bl
je 0x1006025d
mov byte [esi + 0x36], bl
mov byte [esi + 0x3d], 1
jmp 0x10060263
inc dword [esi + 0x1e0]
mov eax, dword [ebp - 0xc4]
mov ecx, dword [esi + 0x1d8]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0xc4]
mov ecx, dword [esi + 0x1e8]
mov dword [esi + 0x1d8], eax
mov eax, dword [ebp - 0xc4]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0xc4]
mov ecx, dword [esi + 0x1ec]
mov dword [eax + 0xc], ecx
jmp case.default.0x1005e221
mov dword [ebp - 0xb8], ebx
mov esi, dword [esi + 0x1d8]
mov dword [ebp - 0xc0], esi
test esi, esi
je 0x1006056d
mov edi, dword [ebp - 0xf4]
push edi
push dword [esi]
call fcn.10048970
pop ecx
pop ecx
mov ecx, dword [ebp - 0xb8]
test eax, eax
je 0x100602e9
inc ecx
mov dword [ebp - 0xb8], ecx
mov esi, dword [esi + 0x10]
mov dword [ebp - 0xc0], esi
test esi, esi
jne 0x100602c1
mov edi, dword [ebp - 0xf8]
test esi, esi
je 0x10060567
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xec]
cmp dword [eax + 0x88], ebx
jle 0x1006032b
cmp edx, 1
jne 0x1006032b
push 0x10191960
mov esi, eax
lea eax, [edi + 0x38]
push esi
push eax
call fcn.10047044
add esp, 0xc
push 5
jmp 0x10060876
cmp dword [esi + 0x10], ebx
jne 0x1006041c
cmp byte [eax + 0x3d], bl
je 0x1006041c
mov dword [ebp - 0xec], 1
cmp edx, 1
jne 0x10060422
mov ecx, edi
call fcn.1005bbfb
mov esi, eax
test esi, esi
jne 0x10063a56
mov esi, dword [ebp - 0xd8]
mov ecx, edi
mov byte [esi + 0x36], 1
call fcn.1005bc50
push 5
pop ecx
cmp eax, ecx
je 0x1006388d
mov byte [esi + 0x3d], bl
mov eax, dword [edi + 0x5c]
mov esi, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0xd4], eax
mov ebx, dword [ebp - 0xd8]
cmp dword [ebx + 0x1d8], esi
je 0x100603df
mov eax, dword [ebx + 0x1d8]
mov dword [ebp - 0xbc], eax
mov eax, dword [eax + 0x10]
mov dword [ebx + 0x1d8], eax
mov edx, dword [ebp - 0xbc]
mov ecx, ebx
call fcn.10046cee
dec dword [ebx + 0x1e0]
mov esi, dword [ebp - 0xc0]
cmp dword [ebx + 0x1d8], esi
jne 0x100603a3
mov edx, dword [ebp - 0xd0]
cmp edx, 1
jne 0x1006051b
mov eax, dword [esi + 0x10]
mov esi, dword [ebp - 0xd8]
mov ecx, esi
mov dword [esi + 0x1d8], eax
mov edx, dword [ebp - 0xc0]
call fcn.10046cee
cmp dword [ebp - 0xec], 0
jne case.default.0x1005e221
dec dword [esi + 0x1e0]
jmp 0x10060540
mov dword [ebp - 0xec], ebx
mov eax, dword [eax + 0x1e0]
sub eax, ecx
mov ecx, dword [ebp - 0xd8]
dec eax
push 2
mov dword [ebp - 0xb8], eax
pop eax
cmp edx, eax
jne 0x1006048a
mov eax, ebx
mov dword [ebp - 0xb4], eax
cmp dword [ecx + 0x14], ebx
jle 0x1006048a
push 4
mov esi, ecx
pop edi
mov ecx, dword [esi + 0x10]
add eax, eax
mov edx, edi
mov ecx, dword [ecx + eax*8 + 4]
call fcn.100546e4
mov eax, dword [ebp - 0xb4]
inc eax
mov dword [ebp - 0xb4], eax
cmp eax, dword [esi + 0x14]
jl 0x10060450
mov edi, dword [ebp - 0xf8]
mov esi, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xd8]
mov eax, ebx
mov dword [ebp - 0xb4], eax
cmp dword [ecx + 0x14], ebx
jle 0x100604de
mov esi, dword [ebp - 0xd8]
mov ecx, dword [esi + 0x10]
push dword [ebp - 0xb8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.100547fb
pop ecx
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x10063941
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0xd0]
inc eax
mov dword [ebp - 0xb4], eax
cmp eax, dword [esi + 0x14]
jl 0x1006049d
mov esi, dword [ebp - 0xc0]
push 2
pop eax
cmp edx, eax
jne 0x10060395
mov ebx, dword [ebp - 0xd8]
test byte [ebx + 0x18], al
je 0x1006039b
mov ecx, ebx
call fcn.1005c94e
call fcn.1006c7bd
push 2
pop eax
or dword [ebx + 0x18], eax
mov esi, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xd0]
jmp 0x1006039b
cmp dword [ebp - 0xec], 0
mov eax, dword [esi + 8]
mov dword [ebx + 0x1e8], eax
mov eax, dword [esi + 0xc]
mov esi, dword [ebp - 0xd8]
mov dword [esi + 0x1ec], eax
jne case.default.0x1005e221
push dword [ebp - 0xb8]
mov edx, dword [ebp - 0xd0]
mov ecx, esi
call fcn.100817bd
pop ecx
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x10063941
jmp 0x100637ae
mov ecx, dword [ebp - 0xf4]
mov esi, dword [ebp - 0xd8]
push ecx
push 0x10191998
lea eax, [edi + 0x38]
push esi
push eax
call fcn.10047044
add esp, 0x10
jmp 0x10060612
mov esi, dword [ebx + 4]
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0xd0], esi
mov edx, dword [ebx + 8]
mov dword [ebp - 0xcc], edx
test esi, esi
je 0x100605d1
cmp byte [ecx + 0x36], 0
jne 0x100605d1
xor ebx, ebx
mov dword [ebp - 0xc8], 1
test edx, edx
jne 0x100605d9
cmp dword [ecx + 0x88], ebx
jle 0x100605d9
push 0x101919e0
mov esi, ecx
jmp 0x10060317
xor ebx, ebx
mov dword [ebp - 0xc8], ebx
movzx eax, byte [ecx + 0x36]
cmp esi, eax
jne 0x100638a3
test edx, edx
mov eax, 0x10191a18
mov ecx, 0x10191a44
cmove ecx, eax
test esi, esi
mov esi, dword [ebp - 0xd8]
mov eax, 0x101919b0
cmovne eax, ecx
push eax
lea eax, [edi + 0x38]
push esi
push eax
call fcn.10047044
add esp, 0xc
xor eax, eax
inc eax
mov dword [ebp - 0xd4], eax
jmp 0x100637ae
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xd0], ecx
test ecx, ecx
je case.default.0x1005e221
mov edx, dword [ebx + 8]
call fcn.10053d04
push 5
pop ecx
mov dword [ebp - 0xd4], eax
cmp eax, ecx
je 0x1006391e
test eax, eax
jne 0x10063941
xor edx, edx
cmp dword [ebx + 8], edx
je 0x100637ae
add ecx, 0x7b
test byte [edi + 0x64], cl
je 0x100637ae
cmp byte [esi + 0x36], dl
je 0x10060684
cmp dword [esi + 0x84], 1
jle 0x100637ae
cmp dword [edi + 0x74], edx
jne 0x1006069e
mov eax, dword [esi + 0x1e0]
inc dword [esi + 0x1e4]
add eax, dword [esi + 0x1e4]
mov dword [edi + 0x74], eax
mov eax, dword [edi + 0x74]
dec eax
push eax
xor edx, edx
mov ecx, esi
call fcn.100817bd
pop ecx
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x100606ec
mov ebx, dword [ebp - 0xd0]
mov edi, dword [edi + 0x74]
mov esi, dword [ebx + 4]
mov ecx, ebx
call fcn.10052043
mov ecx, dword [esi]
mov edx, edi
call fcn.1004fdde
mov ecx, ebx
mov dword [ebp - 0xd4], eax
call fcn.100520b6
mov edi, dword [ebp - 0xf8]
mov esi, dword [ebp - 0xd8]
mov eax, dword [esi + 0x1e8]
mov dword [edi + 0x98], eax
mov eax, dword [esi + 0x1ec]
mov dword [edi + 0x9c], eax
jmp case.default.0x1005e221
mov eax, dword [ebx + 4]
mov dword [ebp - 0xcc], eax
mov edx, dword [ebx + 0xc]
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xc8], edx
push ecx
mov ecx, dword [esi + 0x10]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.10057bad
mov eax, dword [ebp - 0xd0]
pop ecx
jmp 0x1005e35a
mov eax, dword [ebx + 4]
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [ebp - 0xd0], eax
mov esi, dword [ebx + 0xc]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov ecx, esi
call fcn.100599da
mov ecx, dword [ebp - 0xd0]
push dword [esi + 0x10]
mov edx, dword [ebx + 8]
mov ecx, dword [ecx + 4]
call fcn.10057be0
xor edx, edx
inc edx
pop ecx
mov dword [ebp - 0xd4], eax
push 2
cmp dword [ebx + 8], edx
jne 0x100607a3
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x10]
mov esi, dword [ebp - 0xd8]
mov dword [ecx], eax
pop eax
or dword [esi + 0x18], eax
mov eax, dword [ebp - 0xd4]
jmp 0x100607c4
pop ecx
cmp dword [ebx + 8], ecx
jne 0x100607be
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0xc]
mov al, byte [esi + 0x10]
mov byte [ecx + 0x4c], al
mov eax, dword [ebp - 0xd4]
mov esi, dword [ebp - 0xd8]
cmp dword [ebx + 4], edx
jne 0x100637ae
mov ecx, esi
call fcn.1005c94e
and dword [edi + 0x64], 0xffffffdf
jmp case.default.0x1005e221
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xc8], ecx
test ecx, ecx
je 0x1006081a
lea eax, [ebp - 0xd0]
xor edx, edx
push eax
inc edx
call fcn.10057bad
mov eax, dword [esi + 0x10]
pop ecx
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [ebp - 0xd0]
mov eax, dword [eax + 4]
jmp 0x10060824
xor eax, eax
mov ecx, eax
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], eax
cmp ecx, dword [ebx + 8]
jne 0x10060838
cmp eax, dword [ebx + 0xc]
je case.default.0x1005e221
mov edx, dword [edi + 0x38]
mov ecx, esi
call fcn.10046cee
mov edx, 0x10191a84
mov ecx, esi
call fcn.10046fd4
mov dword [edi + 0x38], eax
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd0]
je 0x10060870
mov ecx, esi
call fcn.1006c790
or dword [edi + 0x64], 0x20
push 0x11
pop eax
jmp 0x10060615
test byte [edi + 0x64], 0x20
je 0x10060889
mov eax, ecx
jmp 0x10060615
xor ecx, ecx
mov dword [ebp - 0xcc], ecx
mov esi, ecx
mov dword [ebp - 0xd0], esi
mov eax, dword [ebx + 8]
mov dword [ebp - 0xc8], eax
mov edx, dword [ebx + 0xc]
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xf4], edx
shl edx, 4
add edx, dword [eax + 0x10]
mov dword [ebp - 0xb4], edx
mov eax, dword [edx + 4]
mov dword [ebp - 0xbc], eax
cmp byte [ebx], 0x28
jne 0x100608f1
mov dword [ebp - 0xc0], 1
mov eax, dword [edx + 0xc]
mov al, byte [eax + 0x4c]
cmp al, byte [edi + 0x61]
jae 0x100608f7
mov byte [edi + 0x61], al
jmp 0x100608f7
mov dword [ebp - 0xc0], ecx
push 2
pop eax
test byte [ebx + 3], al
je 0x10060937
mov esi, dword [ebp - 0xec]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov ecx, esi
call fcn.100599da
mov eax, dword [esi + 0x10]
push 2
pop ecx
mov dword [ebp - 0xc8], eax
cmp eax, ecx
jl 0x1006392c
mov eax, dword [ebp - 0xc4]
mov esi, dword [ebp - 0xd0]
jmp 0x1006093d
mov eax, dword [ebp - 0xf4]
mov cl, byte [ebx + 1]
cmp cl, 0xfa
jne 0x1006096f
mov ecx, dword [ebx + 0x10]
mov eax, dword [edi]
mov dword [ebp - 0xcc], ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4d]
mov byte [ecx + 4], al
mov eax, dword [ebp - 0xcc]
movzx esi, word [eax + 6]
mov eax, dword [ebp - 0xc4]
inc esi
jmp 0x10060977
cmp cl, 0xf2
jne 0x1006097d
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0xd0], esi
mov edx, dword [ebx + 4]
push 1
push eax
push esi
mov ecx, edi
call fcn.1005deeb
add esp, 0xc
mov dword [ebp - 0xb8], eax
test eax, eax
je 0x100639db
xor ecx, ecx
inc ecx
mov byte [eax + 0x1c], cl
mov eax, dword [ebp - 0xb8]
mov byte [eax + 0x20], cl
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xc8]
push dword [eax]
mov ecx, dword [ebp - 0xbc]
push dword [ebp - 0xcc]
push dword [ebp - 0xc0]
call fcn.10054866
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0xb8]
mov cl, byte [ebx + 3]
mov eax, dword [eax]
and cl, 1
mov byte [eax + 0x5d], cl
mov eax, dword [ebp - 0xb8]
add esp, 0xc
cmp byte [ebx + 1], 0xfa
setne cl
mov byte [eax + 0x1e], cl
mov ecx, dword [ebp - 0xb8]
cmp byte [ecx + 0x1e], 0
sete al
mov byte [ecx + 0x1f], al
jmp 0x1005e4e0
mov edx, dword [ebx + 4]
push 1
push 0xffffffffffffffff
push dword [ebx + 8]
mov ecx, edi
call fcn.1005deeb
add esp, 0xc
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x100639e1
mov byte [eax + 0x1c], 1
movzx eax, byte [ebx + 3]
mov ecx, dword [esi]
or eax, 5
push 0x41e
push eax
mov eax, dword [ebp - 0xd0]
add eax, 4
push eax
push esi
xor edx, edx
call fcn.10053178
add esp, 0x10
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x10060b6d
mov ecx, dword [ebp - 0xd0]
xor edx, edx
mov ecx, dword [ecx + 4]
inc edx
call fcn.10053d04
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x10060b6d
cmp dword [ebx + 0x10], eax
je 0x10060b43
movzx esi, byte [ebx + 3]
push 2
pop eax
or esi, eax
mov eax, dword [ebp - 0xd0]
mov edi, dword [eax + 4]
mov ecx, edi
call fcn.10052043
push esi
lea edx, [ebp - 0x128]
mov ecx, edi
call fcn.100576ed
pop ecx
mov ecx, edi
mov dword [ebp - 0xd4], eax
call fcn.100520b6
cmp dword [ebp - 0xd4], 0
jne 0x10060b2b
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x128]
push dword [ecx]
mov ecx, dword [ecx + 4]
push dword [ebx + 0x10]
push 1
call fcn.10054866
mov ecx, dword [ebx + 0x10]
mov edi, dword [ebp - 0xf8]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xd0]
add esp, 0xc
mov dword [eax + 8], ecx
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 8]
mov al, byte [edx + 0x4d]
mov byte [ecx + 4], al
jmp 0x10060b31
mov edi, dword [ebp - 0xf8]
mov eax, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xd8]
mov byte [eax + 0x1e], 0
jmp 0x10060b6d
mov ecx, dword [ebp - 0xd0]
push dword [ecx]
mov ecx, dword [ecx + 4]
push eax
xor eax, eax
inc eax
push eax
mov edx, eax
call fcn.10054866
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xd0]
add esp, 0xc
mov byte [eax + 0x1e], 1
push 8
pop eax
cmp byte [ebx + 3], al
mov eax, dword [ebp - 0xd0]
setne cl
mov byte [eax + 0x20], cl
mov ecx, dword [ebp - 0xd0]
cmp byte [ecx + 0x1e], 0
sete al
mov byte [ecx + 0x1f], al
jmp case.default.0x1005e221
mov edx, dword [ebx + 4]
push 1
push 0xffffffffffffffff
push dword [ebx + 8]
mov ecx, edi
call fcn.1005deeb
add esp, 0xc
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x100639e1
mov ecx, dword [ebx + 0x10]
mov dword [eax + 8], ecx
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 8]
mov al, byte [edx + 0x4d]
mov byte [ecx + 4], al
mov eax, dword [ebp - 0xd0]
mov ecx, esi
mov byte [eax + 0x21], 1
mov edx, dword [ebp - 0xd0]
call fcn.100648db
jmp 0x10060615
mov edx, dword [ebx + 4]
push 0
push 0xffffffffffffffff
push dword [ebx + 0xc]
mov ecx, edi
call fcn.1005deeb
add esp, 0xc
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x100639e1
xor edx, edx
inc edx
mov byte [eax + 0x1c], dl
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebx + 8]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1e], dl
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1f], 0
mov eax, dword [ebp - 0xd0]
mov cl, byte [ebx + 3]
mov byte [eax + 0x22], cl
jmp case.default.0x1005e221
mov eax, dword [ebx + 4]
mov edx, dword [edi + 0x44]
mov ecx, edi
mov edx, dword [edx + eax*4]
call fcn.1005b433
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
and dword [eax + ecx*4], 0
jmp case.default.0x1005e221
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
xor edx, edx
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xc8], ecx
cmp dword [ecx], edx
je 0x1005e235
movzx eax, byte [ebx]
mov dword [ebp - 0xcc], eax
mov byte [ecx + 0x1c], dl
mov esi, dword [ebp - 0xc8]
cmp byte [esi + 0x1e], dl
je 0x10060ec4
mov esi, dword [ebx + 0xc]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov ecx, esi
call fcn.1005dfa2
mov ecx, esi
call fcn.100598b6
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x9c], edx
xor edx, edx
mov byte [eax + 0x19], dl
movzx eax, word [esi + 0x1c]
push 4
pop ecx
test cl, al
jne 0x10060e53
push 8
pop ecx
test cl, al
jne 0x10060cf0
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xe0], eax
jmp 0x1005e4e0
cmp dword [ebp - 0xa0], edx
jne 0x10060dc0
mov eax, 0x80000000
cmp dword [ebp - 0x9c], eax
jne 0x10060dc0
movsd xmm1, qword [esi + 8]
mov dword [ebp - 0x140], edx
mov dword [ebp - 0x13c], eax
fild qword [ebp - 0x140]
fstp qword [ebp - 0xf0]
fld qword [ebp - 0xf0]
fstp qword [ebp - 0xf0]
movsd xmm0, qword [ebp - 0xf0]
comisd xmm0, xmm1
xorps xmm0, xmm0
ja 0x10060d4d
comisd xmm1, xmm0
jbe 0x10060dc0
mov dword [ebp - 0xd0], 1
comisd xmm0, xmmword [esi + 8]
jbe 0x10060d80
cmp dword [ebp - 0xcc], 0x30
jl 0x10060ce1
mov ecx, dword [ebp - 0xc8]
lea edx, [ebp - 0xd0]
mov ecx, dword [ecx]
call fcn.10055070
jmp 0x10060da0
cmp dword [ebp - 0xcc], 0x2f
jg 0x10060ce1
mov ecx, dword [ebp - 0xc8]
lea edx, [ebp - 0xd0]
mov ecx, dword [ecx]
call fcn.1005509b
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x1006393b
cmp dword [ebp - 0xd0], 0
je 0x100637a8
jmp 0x10060ce1
cmp dword [ebp - 0xcc], 0x2e
je 0x10060e19
cmp dword [ebp - 0xcc], 0x30
je 0x10060e19
fild qword [ebp - 0xa0]
fstp qword [ebp - 0xf0]
fld qword [ebp - 0xf0]
fstp qword [ebp - 0xf0]
movsd xmm0, qword [ebp - 0xf0]
comisd xmm0, xmmword [esi + 8]
jbe 0x10060e53
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x9c]
add eax, 0xffffffff
adc ecx, 0xffffffff
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], ecx
jmp 0x10060e5f
fild qword [ebp - 0xa0]
fstp qword [ebp - 0xf0]
fld qword [ebp - 0xf0]
movsd xmm0, qword [esi + 8]
fstp qword [ebp - 0xf0]
comisd xmm0, xmmword [ebp - 0xf0]
jbe 0x10060e53
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x9c]
add eax, 1
adc ecx, edx
jmp 0x10060e0b
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0xa0]
lea esi, [ebp - 0xd0]
push esi
push edx
push ecx
mov ecx, dword [ebp - 0xc8]
push eax
mov ecx, dword [ecx]
xor edx, edx
call fcn.100550e4
add esp, 0x10
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x1006393b
xor edx, edx
cmp dword [ebp - 0xd0], edx
jne 0x10060f4f
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x19], 1
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xa0]
mov dword [eax + 0x40], ecx
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0x9c]
mov dword [eax + 0x44], ecx
jmp 0x10060f4f
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xa8], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0xc0], eax
mov ax, word [ebp - 0xa8]
mov word [ebp - 0xbc], ax
mov al, byte [ebp - 0xcc]
and al, 1
mov byte [ebp - 0xba], al
mov ecx, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov eax, 0x4000
mov dword [ebp - 0xb0], ecx
test word [ecx + 0x1c], ax
je 0x10060f1c
call fcn.10059665
mov esi, dword [ebp - 0xc8]
xor edx, edx
mov ecx, dword [esi]
lea eax, [ebp - 0xd0]
push eax
push edx
push edx
push edx
lea edx, [ebp - 0xc0]
call fcn.100550e4
add esp, 0x10
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x1006393b
mov eax, dword [ebp - 0xc8]
xor edx, edx
mov byte [eax + 0x19], dl
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x1d], dl
mov eax, dword [ebp - 0xc8]
mov dword [eax + 0x50], edx
cmp dword [ebp - 0xcc], 0x30
mov eax, dword [ebp - 0xd0]
jl 0x10060fa0
test eax, eax
js 0x10060f8a
jne 0x10060f7f
cmp dword [ebp - 0xcc], 0x31
je 0x10060f8a
mov dword [ebp - 0xd0], edx
jmp 0x1005e4e0
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.10055391
jmp 0x10060fdc
test eax, eax
jg 0x10060fc8
jne 0x10060faf
cmp dword [ebp - 0xcc], 0x2e
je 0x10060fc8
mov eax, dword [ebp - 0xc8]
xor ecx, ecx
mov eax, dword [eax]
cmp byte [eax + 0x5b], 1
setne cl
mov dword [ebp - 0xd0], ecx
jmp 0x10060ff6
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.1005549f
pop ecx
mov dword [ebp - 0xd4], eax
pop ecx
test eax, eax
jne 0x1006393b
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x19], 0
cmp dword [ebp - 0xd0], 0
jmp 0x1005f299
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
xor edx, edx
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xd0], eax
cmp dword [eax], edx
je case.default.0x1005e221
mov byte [eax + 0x1c], dl
mov ecx, dword [ebx + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
call fcn.100598b6
mov ecx, dword [ebp - 0xd0]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x3c], edx
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1d], 1
jmp case.default.0x1005e221
mov eax, dword [edi + 0x44]
xor edx, edx
mov dword [ebp - 0xd0], edx
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xcc], ecx
mov esi, dword [ebx + 0xc]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
cmp dword [ecx], edx
je 0x1006117d
cmp dword [ebx + 0x10], edx
jle 0x100610bb
mov eax, dword [ecx + 8]
mov dword [ebp - 0xb8], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0xb4], ax
push 2
pop eax
mov byte [ebp - 0xb2], al
lea eax, [ebp - 0xb8]
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0xc0], eax
jmp 0x10061116
mov ecx, dword [ecx + 8]
lea eax, [ebp - 0xc4]
push eax
push 0x97
lea edx, [ebp - 0xa0]
call fcn.1005c539
pop ecx
pop ecx
mov dword [ebp - 0xc0], eax
test eax, eax
je 0x100639db
mov ecx, dword [ebp - 0xcc]
mov edx, dword [esi + 0x18]
mov ecx, dword [ecx + 8]
push eax
push dword [esi + 4]
call fcn.1005c591
mov eax, dword [ebp - 0xc0]
pop ecx
pop ecx
push 2
pop ecx
or byte [eax + 6], cl
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xcc]
xor edx, edx
mov ecx, dword [ecx]
lea esi, [ebp - 0xc8]
push esi
push edx
push edx
push edx
mov edx, eax
call fcn.100550e4
mov esi, dword [ebp - 0xd8]
xor edx, edx
add esp, 0x10
mov dword [ebp - 0xd4], eax
cmp dword [ebx + 0x10], edx
jne 0x1006114e
mov edx, dword [ebp - 0xc4]
mov ecx, esi
call fcn.10046cee
xor edx, edx
mov eax, dword [ebp - 0xd4]
test eax, eax
jne 0x100637ae
cmp dword [ebp - 0xc8], eax
sete al
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xcc]
mov byte [eax + 0x1d], dl
mov eax, dword [ebp - 0xcc]
mov dword [eax + 0x50], edx
cmp byte [ebx], 0x34
je 0x10060ff6
mov esi, dword [ebp - 0xd8]
cmp dword [ebp - 0xd0], 0
jmp 0x1005f71c
mov eax, dword [ebx + 0x10]
mov esi, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
imul esi, esi, 0x28
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
add esi, dword [ebp - 0xdc]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xcc], eax
xor edx, edx
mov dword [eax + 0x4c], edx
mov eax, dword [ebp - 0xcc]
mov dword [eax + 0x50], edx
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ecx]
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xc8], eax
mov eax, dword [ecx + 8]
xor ecx, ecx
mov ax, word [eax + 6]
mov word [ebp - 0xc4], ax
movzx eax, ax
mov word [ebp - 0xd0], cx
mov dword [ebp - 0xf4], eax
test eax, eax
jle 0x1006123b
mov eax, edx
mov edi, dword [ebp - 0xc0]
imul eax, eax, 0x28
test byte [eax + edi + 0x1c], 1
mov edi, dword [ebp - 0xf8]
jne 0x100612f5
inc cx
movzx eax, cx
mov word [ebp - 0xd0], cx
cmp eax, dword [ebp - 0xf4]
jl 0x1006120d
mov edx, dword [ebp - 0xec]
test edx, edx
je 0x1005e4e0
mov eax, dword [ebp - 0xcc]
push 4
mov eax, dword [eax + 8]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xc4]
inc eax
mov word [ebp - 0xb4], ax
pop eax
mov byte [ebp - 0xb2], al
mov eax, dword [ebp - 0xc0]
mov ecx, esi
mov dword [ebp - 0xa8], eax
call fcn.100599da
mov eax, dword [esi + 0x10]
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xa0], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0xcc]
add eax, 0x4c
push eax
xor eax, eax
push eax
push eax
push eax
lea edx, [ebp - 0xb8]
call fcn.100550e4
add esp, 0x10
mov dword [ebp - 0xd4], eax
push 4
pop ecx
test byte [ebp - 0xb2], cl
jne 0x10061310
mov ecx, dword [ebp - 0xb0]
cmp ecx, dword [ebp - 0xa0]
jne 0x100612e4
mov eax, dword [ebp - 0xac]
cmp eax, dword [ebp - 0x9c]
je 0x1006130a
mov dword [esi + 0x10], ecx
mov eax, dword [ebp - 0xac]
mov dword [esi + 0x14], eax
jmp 0x1005e4e0
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xc8], edx
jmp 0x10061241
mov eax, dword [ebp - 0xd4]
mov esi, dword [ebx + 8]
dec esi
mov dword [ebp - 0xe0], esi
jmp 0x100637a8
mov esi, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
imul esi, esi, 0x28
mov eax, dword [edi + 0x44]
add esi, dword [ebp - 0xdc]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xd0], eax
mov ecx, dword [eax]
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xcc], ecx
test ecx, ecx
je 0x100613f8
xor edx, edx
mov dword [ebp - 0xc8], edx
mov ecx, dword [esi + 0x10]
lea edi, [ebp - 0xc8]
push edi
mov dword [ebp - 0xc0], ecx
mov eax, dword [esi + 0x14]
push edx
push eax
push ecx
mov ecx, dword [ebp - 0xec]
mov dword [ebp - 0xbc], eax
call fcn.100550e4
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xd0]
mov edi, dword [ebp - 0xf8]
mov dword [eax + 0x40], ecx
mov ecx, dword [esi + 0x14]
mov eax, dword [ebp - 0xd0]
add esp, 0x10
mov dword [eax + 0x44], ecx
cmp dword [ebp - 0xc8], 0
mov eax, dword [ebp - 0xd0]
sete cl
mov byte [eax + 0x19], cl
mov eax, dword [ebp - 0xd0]
xor edx, edx
mov byte [eax + 0x1c], dl
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x50], edx
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1d], dl
mov ecx, dword [ebp - 0xc8]
test ecx, ecx
je 0x100613ea
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x4c], ecx
jmp 0x1005e4e0
mov esi, dword [ebx + 8]
dec esi
and dword [eax + 0x4c], 0
mov dword [ebp - 0xe0], esi
jmp 0x1005e4e0
mov eax, dword [edi + 0x44]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov dword [edx + 0x10], eax
mov eax, dword [ecx + 0x34]
mov dword [edx + 0x14], eax
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x30], 1
adc dword [eax + 0x34], 0
jmp case.default.0x1005e221
mov eax, dword [edi + 0x44]
xor edx, edx
xorps xmm0, xmm0
movlpd qword [ebp - 0xd0], xmm0
mov dword [ebp - 0xc4], edx
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0xc8], esi
mov eax, dword [esi]
mov dword [ebp - 0xe8], esi
test eax, eax
je 0x1006175e
cmp byte [esi + 0x1b], dl
jne 0x10061638
mov ecx, dword [eax + 0x20]
mov dword [ebp - 0xd0], ecx
mov esi, dword [eax + 0x24]
mov eax, ecx
or eax, esi
mov dword [ebp - 0xcc], esi
jne 0x1006152d
mov eax, dword [ebp - 0xe8]
lea edx, [ebp - 0xc4]
mov ecx, dword [eax]
call fcn.1005509b
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x1006393b
cmp dword [ebp - 0xc4], eax
je 0x100614bf
xor ecx, ecx
inc ecx
xor edx, edx
mov esi, edx
jmp 0x10061515
mov ecx, dword [ebp - 0xc8]
lea edx, [ebp - 0xd0]
mov ecx, dword [ecx]
call fcn.100549c4
mov esi, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xd4], eax
cmp esi, 0x7fffffff
jl 0x1006150d
jg 0x100614f3
cmp ecx, 0xffffffff
jb 0x1006150d
mov eax, dword [ebp - 0xc8]
xor edx, edx
mov byte [eax + 0x1b], 1
mov esi, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
jmp 0x10061521
push 0
add ecx, 1
pop edx
adc esi, edx
mov dword [ebp - 0xcc], esi
mov dword [ebp - 0xd0], ecx
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x100615f1
mov ecx, dword [edi + 0xa8]
test ecx, ecx
jne 0x100615b3
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
mov ecx, eax
mov dword [ebp - 0xbc], eax
call fcn.100599da
mov ebx, dword [ebp - 0xbc]
mov esi, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
cmp esi, 0xffffffff
jne 0x10061575
cmp ecx, 0x7fffffff
je 0x10063938
mov eax, dword [ebp - 0xc8]
cmp byte [eax + 0x1b], 0
jne 0x10063938
push 0
add esi, 1
pop edx
adc ecx, edx
cmp dword [ebp - 0xcc], ecx
jg 0x100615cb
jl 0x100615a1
mov eax, dword [ebp - 0xd0]
cmp eax, esi
jae 0x100615d1
mov eax, esi
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], ecx
jmp 0x100615d1
mov ecx, eax
mov dword [ebp - 0xb8], ecx
mov eax, dword [ecx + 4]
test eax, eax
jne 0x100615b1
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ecx + 0xc]
jmp 0x1006154b
mov eax, dword [ebp - 0xd0]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
jmp 0x100615f7
mov eax, dword [ebp - 0xe8]
cmp esi, 0x7fffffff
jg 0x1006160d
jl 0x10061606
cmp ecx, 0xffffffff
jae 0x1006160d
add ecx, 1
adc esi, edx
jmp 0x10061624
xorps xmm0, xmm0
movlpd qword [ebp - 0x138], xmm0
mov esi, dword [ebp - 0x134]
mov ecx, dword [ebp - 0x138]
push esi
push ecx
mov ecx, dword [eax]
call fcn.100548dd
mov esi, dword [ebp - 0xc8]
add esp, 8
xor edx, edx
cmp byte [esi + 0x1b], 0
je 0x10061749
mov eax, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x108]
xor ebx, ebx
and eax, 0x3fffffff
inc ebx
add ecx, ebx
lea edi, [ebp - 0xc4]
push edi
adc eax, edx
push edx
push eax
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], eax
push ecx
mov ecx, dword [esi]
xor edx, edx
call fcn.100550e4
mov edi, dword [ebp - 0xf8]
mov edx, eax
add esp, 0x10
mov dword [ebp - 0xd4], edx
test edx, edx
jne 0x10061741
mov ecx, dword [ebp - 0xc4]
test ecx, ecx
jne 0x10061735
mov eax, dword [ebp - 0xc0]
inc eax
mov dword [ebp - 0xc0], eax
cmp eax, 0x64
jge 0x10061735
lea eax, [ebp - 0xd0]
push eax
push 8
pop eax
push eax
call fcn.1004824c
cmp dword [ebp - 0xc0], 5
pop ecx
pop ecx
mov ecx, dword [ebp - 0xd0]
jge 0x100616e5
and ecx, 0xffffff
xor eax, eax
mov edx, eax
jmp 0x100616f3
mov edx, dword [ebp - 0xcc]
and edx, 0x3fffffff
xor eax, eax
add ecx, ebx
lea esi, [ebp - 0xc4]
push esi
adc edx, eax
push eax
push edx
mov dword [ebp - 0xd0], ecx
push ecx
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xcc], edx
mov ecx, dword [ecx]
xor edx, edx
call fcn.100550e4
mov edx, eax
add esp, 0x10
mov dword [ebp - 0xd4], edx
test edx, edx
je 0x10061698
mov ecx, dword [ebp - 0xc4]
test edx, edx
jne 0x10061741
test ecx, ecx
je 0x10063938
mov esi, dword [ebp - 0xc8]
xor edx, edx
mov byte [esi + 0x19], dl
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x1d], dl
mov eax, dword [ebp - 0xc8]
mov dword [eax + 0x50], edx
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe4]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 0x14], eax
jmp 0x1005e4e0
mov esi, dword [ebx + 8]
mov edx, dword [ebp - 0xdc]
imul esi, esi, 0x28
mov eax, dword [edi + 0x44]
add esi, edx
mov dword [ebp - 0xd0], esi
mov ecx, dword [ebx + 4]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xc0], eax
cmp byte [ebx], 0x39
mov dword [ebp - 0xec], eax
mov eax, dword [ebx + 0xc]
jne 0x100617c5
imul eax, eax, 0x28
add eax, edx
mov dword [ebp - 0xcc], eax
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0xc8], ecx
mov edx, dword [eax + 0x14]
jmp 0x100617ce
cdq
mov ecx, eax
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xc4], edx
test byte [ebx + 3], 1
je 0x100617dd
inc dword [edi + 0x68]
push 2
pop eax
test byte [ebx + 3], al
je 0x10061811
mov dword [ebp - 0x104], edx
mov edx, dword [ebp - 0xd8]
mov dword [ebp - 0x108], ecx
mov dword [edx + 0x20], ecx
mov eax, dword [ebp - 0xc4]
mov dword [edx + 0x24], eax
mov edx, dword [ebp - 0xc0]
mov esi, dword [ebp - 0xd0]
jmp 0x10061817
mov edx, dword [ebp - 0xec]
xor ecx, ecx
test byte [esi + 0x1c], 1
je 0x10061837
mov dword [esi + 4], ecx
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x18], ecx
mov edx, dword [ebp - 0xc0]
mov esi, dword [ebp - 0xd0]
push 0x10
pop eax
test byte [ebx + 3], al
je 0x1006184a
mov eax, dword [edx + 0x4c]
mov dword [ebp - 0xb8], eax
jmp 0x10061850
mov dword [ebp - 0xb8], ecx
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x10061866
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xbc], eax
jmp 0x1006186c
mov dword [ebp - 0xbc], ecx
push ecx
push ecx
mov ecx, dword [edx]
call fcn.100548dd
push dword [ebp - 0xb8]
movzx eax, byte [ebx + 3]
push 8
pop ecx
and eax, ecx
mov ecx, dword [ebp - 0xc0]
push eax
push dword [ebp - 0xbc]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ecx]
push dword [eax + 0x18]
xor edx, edx
push dword [eax + 4]
push dword [ebp - 0xc4]
push dword [ebp - 0xc8]
call fcn.10057312
mov esi, dword [ebp - 0xd8]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xc0]
xor edx, edx
mov byte [eax + 0x19], dl
mov eax, dword [ebp - 0xc0]
add esp, 0x24
mov byte [eax + 0x1d], dl
mov eax, dword [ebp - 0xc0]
mov dword [eax + 0x50], edx
mov eax, dword [ebp - 0xd4]
test eax, eax
jne 0x100637ae
cmp dword [esi + 0xbc], edx
je 0x100637ae
cmp dword [ebx + 0x10], edx
je 0x100637ae
mov eax, dword [ebp - 0xc0]
push 4
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov edx, dword [eax + ecx*8]
pop eax
push 0x12
mov dword [ebp - 0xb4], edx
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0xb0], ecx
test byte [ebx + 3], al
pop eax
push 0x17
pop ebx
push dword [ebp - 0xc4]
cmovne eax, ebx
push dword [ebp - 0xc8]
mov dword [ebp - 0xac], eax
push ecx
push edx
push eax
push dword [esi + 0xb8]
call dword [esi + 0xbc]
add esp, 0x18
jmp case.default.0x1005e221
mov eax, dword [edi + 0x44]
xorps xmm0, xmm0
movlpd qword [ebp - 0xd0], xmm0
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [ebp - 0xc8], ecx
cmp dword [esi + 0xbc], eax
je 0x10061994
cmp dword [ebx + 0x10], eax
je 0x10061994
mov eax, dword [ecx + 0x40]
mov dword [ebp - 0xd0], eax
mov eax, dword [ecx + 0x44]
mov dword [ebp - 0xcc], eax
call fcn.1005c114
test eax, eax
jne 0x10063941
mov ecx, dword [ebp - 0xc8]
push eax
mov ecx, dword [ecx]
push eax
call fcn.100548dd
mov ecx, dword [ebp - 0xc8]
add esp, 8
mov ecx, dword [ecx]
call fcn.100574e8
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xc8]
and dword [eax + 0x50], 0
mov eax, dword [ebp - 0xd4]
test eax, eax
jne 0x10061a1c
mov edx, dword [esi + 0xbc]
test edx, edx
je 0x10061a1c
cmp dword [ebx + 0x10], eax
je 0x10061a1c
push dword [ebp - 0xcc]
mov eax, dword [ebp - 0xc8]
push dword [ebp - 0xd0]
mov ecx, dword [eax + 0xc]
push dword [ebx + 0x10]
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
push 9
push dword [esi + 0xb8]
call edx
mov eax, dword [ebp - 0xd4]
add esp, 0x18
test byte [ebx + 8], 1
je 0x100637ae
inc dword [edi + 0x68]
jmp 0x100637ae
mov eax, dword [edi + 0x68]
add dword [esi + 0x4c], eax
mov dword [esi + 0x48], eax
and dword [edi + 0x68], 0
jmp case.default.0x1005e221
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
lea edx, [ebp - 0x124]
mov edi, dword [eax + ecx*4]
mov dword [ebp - 0xd0], edi
mov esi, dword [ebx + 0xc]
mov ecx, dword [edi + 0x48]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
call fcn.100651bc
lea ecx, [ebp - 0xcc]
push ecx
push dword [ebp - 0x124]
xor edx, edx
push eax
push dword [esi + 0x18]
inc edx
push dword [esi + 4]
mov ecx, edi
call fcn.100647bf
mov edi, dword [ebp - 0xf8]
xor eax, eax
add esp, 0x14
mov dword [ebp - 0xd4], eax
cmp dword [ebp - 0xcc], eax
je 0x100637a8
jmp 0x10061310
mov edx, dword [ebx + 8]
mov ecx, dword [ebx + 4]
imul edx, edx, 0x28
mov eax, dword [edi + 0x44]
add edx, dword [ebp - 0xdc]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xe4], edx
mov dword [ebp - 0xd0], ecx
call fcn.100651e3
jmp 0x10060615
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
mov dword [ebp - 0xe4], eax
mov eax, dword [edi + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xd0], ecx
mov eax, dword [ecx]
mov dword [ebp - 0xcc], eax
call fcn.1005c114
test eax, eax
jne 0x10063941
mov eax, dword [ebp - 0xd0]
cmp byte [eax + 0x1f], 0
je 0x10061b4f
mov ecx, dword [ebp - 0xcc]
lea edx, [ebp - 0xc0]
call fcn.100549c4
mov eax, dword [esi + 0x50]
cdq
cmp dword [ebp - 0xbc], edx
jg 0x1006399f
mov edx, dword [ebp - 0xc0]
jl 0x10061b47
cmp edx, eax
ja 0x1006399f
mov dword [ebp - 0xc8], edx
jmp 0x10061b74
mov esi, dword [ebp - 0xcc]
mov ecx, esi
call fcn.1005499a
mov edx, dword [esi + 0x34]
mov esi, dword [ebp - 0xd8]
mov dword [ebp - 0xc8], edx
cmp edx, dword [esi + 0x50]
ja 0x1006399f
mov ecx, dword [ebp - 0xe4]
xor ebx, ebx
push ebx
call fcn.1005954a
pop ecx
test eax, eax
jne 0x100639e1
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xe4]
mov edx, 0xbe10
mov dword [ecx + 0x18], eax
mov ax, word [ecx + 0x1c]
and ax, dx
push 0x10
pop edx
or ax, dx
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xd0]
cmp byte [eax + 0x1f], bl
je 0x10061bd9
push ebx
mov ebx, ecx
mov ecx, dword [ebp - 0xcc]
push dword [ebx + 4]
xor edx, edx
push dword [ebp - 0xc8]
call fcn.10054aaf
add esp, 0xc
jmp 0x10061bf7
push dword [ecx + 4]
push dword [ebp - 0xc8]
push ebx
push dword [ebp - 0xcc]
call fcn.10054d82
mov ebx, dword [ebp - 0xe4]
add esp, 0x10
mov dword [ebp - 0xd4], eax
mov byte [ebx + 0x1f], 1
jmp 0x100637ae
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xd0], ecx
cmp byte [ecx + 0x1c], 0
je 0x10061c27
xor eax, eax
inc eax
mov word [edx + 0x1c], ax
jmp case.default.0x1005e221
cmp byte [ecx + 0x1d], 0
je 0x10061c3b
mov eax, dword [ecx + 0x38]
mov dword [ebp - 0xc8], eax
mov eax, dword [ecx + 0x3c]
jmp 0x10061ca0
mov eax, dword [ecx + 0x24]
test eax, eax
je 0x10061c76
mov eax, dword [eax]
mov dword [ebp - 0xc0], eax
mov eax, dword [eax]
lea edx, [ebp - 0xc8]
push edx
mov dword [ebp - 0xbc], eax
push dword [ecx + 0x24]
call dword [eax + 0x30]
mov edx, dword [ebp - 0xc0]
pop ecx
pop ecx
mov ecx, edi
mov dword [ebp - 0xd4], eax
call fcn.1005e086
jmp 0x10061cbb
call fcn.1005c114
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x10063941
mov ecx, dword [ebp - 0xd0]
cmp byte [ecx + 0x19], al
je 0x10061ca8
mov eax, dword [ecx + 0x40]
mov dword [ebp - 0xc8], eax
mov eax, dword [ecx + 0x44]
mov dword [ebp - 0xc4], eax
jmp 0x10061cbb
mov ecx, dword [ecx]
lea edx, [ebp - 0xc8]
call fcn.100549c4
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xe4]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xc4]
jmp 0x1006019c
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xd0], eax
mov byte [eax + 0x1c], 1
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax]
test ecx, ecx
je case.default.0x1005e221
call fcn.1005237b
jmp case.default.0x1005e221
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
xor edx, edx
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xd0], ecx
mov eax, dword [ecx]
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc8], edx
test eax, eax
je 0x10061d4a
lea edx, [ebp - 0xc8]
mov ecx, eax
call fcn.1005509b
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xd4], eax
xor edx, edx
mov al, byte [ebp - 0xc8]
mov byte [ecx + 0x1c], al
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1d], dl
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x19], dl
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x50], edx
mov eax, dword [ebx + 8]
test eax, eax
jle case.default.0x1005e221
cmp dword [ebp - 0xc8], 0
je case.default.0x1005e221
jmp 0x1005e238
inc dword [edi + 0x7c]
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xc8], 1
cmp dword [ecx + 0x48], 0
je 0x10061dc6
lea eax, [ebp - 0xc8]
mov edx, ecx
push eax
mov ecx, esi
call fcn.10064ee4
pop ecx
mov dword [ebp - 0xd4], eax
jmp 0x10061e0f
mov ecx, dword [ecx]
lea edx, [ebp - 0xc8]
mov dword [ebp - 0xcc], ecx
call fcn.10055070
cmp dword [ebp - 0xc8], 0
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xd0]
sete cl
mov byte [eax + 0x1a], cl
mov eax, dword [ebp - 0xd0]
xor edx, edx
mov byte [eax + 0x1d], dl
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x50], edx
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x19], dl
mov eax, dword [ebp - 0xd0]
mov cl, byte [ebp - 0xc8]
mov byte [eax + 0x1c], cl
cmp dword [ebp - 0xc8], 0
jmp 0x1005f29f
xor edx, edx
cmp dword [esi + 0xe0], edx
jne 0x100639b5
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xd0], eax
test eax, eax
je case.default.0x1005e221
lea ecx, [ebp - 0xcc]
push ecx
cmp dword [eax + 0x48], edx
je 0x10061e66
mov edx, eax
mov ecx, esi
call fcn.1006510a
jmp 0x10061e76
mov dword [ebp - 0xcc], 1
push dword [eax]
call dword [ebx + 0x10]
pop ecx
mov dword [ebp - 0xd4], eax
mov al, byte [ebp - 0xcc]
pop ecx
mov ecx, dword [ebp - 0xd0]
xor edx, edx
mov byte [ecx + 0x1c], al
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x50], edx
cmp dword [ebp - 0xcc], edx
jne 0x10061eb7
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xe0], eax
mov al, byte [ebx + 3]
test al, al
je 0x10061eb7
movzx eax, al
inc dword [edi + eax*4 + 0x74]
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x19], dl
jmp case.default.0x1005e221
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xd0], eax
mov esi, dword [ebx + 8]
mov ecx, dword [eax]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xcc], ecx
test ecx, ecx
je 0x1005e4e0
mov ecx, 0x4000
test word [esi + 0x1c], cx
je 0x10061f2a
mov ecx, esi
call fcn.10059665
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xd0]
xor edx, edx
jmp 0x10061f34
xor edx, edx
mov ecx, edx
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x1005e4e0
cmp dword [eax + 0x48], edx
je 0x10061f56
push esi
mov esi, dword [ebp - 0xd8]
mov edx, eax
mov ecx, esi
call fcn.10064dab
jmp 0x1006312b
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0xc8], ecx
mov esi, dword [esi + 4]
mov dword [ebp - 0xc4], esi
test byte [ebx + 3], 0x10
je 0x10061f73
mov eax, dword [eax + 0x4c]
jmp 0x10061f75
mov eax, edx
push eax
push dword [ebx + 0xc]
mov eax, ecx
mov ecx, dword [ebp - 0xec]
push edx
push edx
cdq
push 0x1017bf8f
push edx
push eax
mov edx, esi
call fcn.10057312
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xd0]
add esp, 0x1c
and dword [eax + 0x50], 0
jmp 0x1005e4e0
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xd0], eax
mov ecx, dword [eax]
mov dword [ebp - 0xcc], ecx
test ecx, ecx
je case.default.0x1005e221
mov eax, dword [eax + 8]
mov dword [ebp - 0xc0], eax
mov ax, word [ebx + 0xc]
mov word [ebp - 0xbc], ax
mov byte [ebp - 0xba], 0
mov eax, dword [ebx + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
xor ebx, ebx
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0xc8]
push eax
push ebx
push ebx
push ebx
lea edx, [ebp - 0xc0]
call fcn.100550e4
add esp, 0x10
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x10062033
cmp dword [ebp - 0xc8], ebx
jne 0x10062033
mov ecx, dword [ebp - 0xcc]
call fcn.100574e8
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x50], ebx
jmp case.default.0x1005e221
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov ebx, dword [ebp - 0xe4]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xcc], eax
mov eax, dword [eax]
mov dword [ebp - 0xd0], eax
xor eax, eax
inc eax
mov word [ebx + 0x1c], ax
cmp dword [ebp - 0xd0], 0
je case.default.0x1005e221
mov ecx, dword [ebp - 0xcc]
call fcn.1005c114
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x10063941
mov eax, dword [ebp - 0xcc]
cmp byte [eax + 0x1c], 0
jne case.default.0x1005e221
mov edx, dword [ebp - 0xd0]
lea eax, [ebp - 0xc8]
push eax
call fcn.1005c7db
pop ecx
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x10063941
mov eax, dword [ebp - 0xc8]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0xc4]
push 4
mov dword [ebx + 0x14], eax
pop eax
jmp 0x1005f60b
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xd0], ecx
cmp dword [ecx], 0
je case.default.0x1005e221
mov eax, dword [ecx + 8]
mov dword [ebp - 0xc8], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0xc4], ax
cmp byte [ebx + 3], 0
push 2
setne al
pop edx
add al, dl
mov byte [ebp - 0xc2], al
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
lea edx, [ebp - 0xc8]
mov dword [ebp - 0xb8], eax
lea eax, [ebp - 0xcc]
push eax
call fcn.1005c8bc
cmp byte [ebx], 0x64
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xcc]
pop ecx
jne 0x1006214e
neg eax
jmp 0x1006214f
inc eax
mov dword [ebp - 0xcc], eax
test eax, eax
jle case.default.0x1005e221
jmp 0x1005e235
mov eax, dword [ebp - 0xd8]
xor edx, edx
mov esi, edx
mov dword [ebp - 0xcc], esi
mov ecx, dword [eax + 4]
mov dword [ebp - 0xc8], ecx
test ecx, ecx
je 0x100621b0
cmp dword [ecx + 0x34], 0xbdf20da3
jne 0x1006219d
mov eax, dword [ecx + 0x64]
and al, 0xc
cmp al, 8
jae 0x1006219d
cmp dword [ecx + 0x58], edx
jl 0x1006219d
inc esi
mov dword [ebp - 0xcc], esi
mov ecx, dword [ecx + 0x40]
mov dword [ebp - 0xc8], ecx
test ecx, ecx
jne 0x1006217f
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe4]
xor edx, edx
inc edx
mov word [ecx + 0x1c], dx
cmp dword [ebp - 0xcc], edx
jle 0x100621d9
push 6
pop eax
push 2
pop ecx
mov dword [ebp - 0xd4], eax
mov byte [edi + 0x60], cl
jmp 0x100637a8
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0xc4], ecx
mov eax, dword [eax + 0x10]
mov esi, dword [ebx + 4]
add ecx, ecx
mov edi, dword [eax + ecx*8 + 4]
mov ecx, edi
call fcn.10052043
lea eax, [ebp - 0xd0]
push eax
mov edx, esi
mov ecx, edi
call fcn.10057a25
pop ecx
mov ecx, edi
mov dword [ebp - 0xd4], eax
call fcn.100520b6
mov ecx, dword [ebp - 0xe4]
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xd0]
cdq
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xd4]
mov dword [ecx + 0x14], edx
test eax, eax
jne 0x100637a2
mov edi, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xd8]
test edi, edi
je 0x1006379a
mov ecx, dword [ebp - 0xc4]
mov ebx, dword [ebx + 4]
shl ecx, 4
add ecx, dword [esi + 0x10]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0x10]
jmp 0x10062273
mov edx, dword [eax + 8]
cmp dword [edx + 0x20], edi
jne 0x10062271
mov dword [edx + 0x20], ebx
mov eax, dword [eax]
test eax, eax
jne 0x10062266
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0x20]
jmp 0x1006228c
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x24], edi
jne 0x1006228a
mov dword [ecx + 0x24], ebx
mov eax, dword [eax]
test eax, eax
jne 0x1006227f
mov al, byte [ebp - 0xc4]
mov edi, dword [ebp - 0xf8]
inc al
mov byte [ebp - 0xfe], al
jmp case.default.0x1005e221
xor ecx, ecx
mov dword [ebp - 0xd0], ecx
xor edx, edx
cmp dword [ebx + 0xc], ecx
mov ecx, dword [esi + 0x10]
lea eax, [ebp - 0xd0]
cmove eax, edx
mov edx, dword [ebx + 4]
push eax
mov eax, dword [ebx + 8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.100579cf
cmp dword [ebx + 0xc], 0
pop ecx
mov dword [ebp - 0xd4], eax
je 0x100637ae
mov edx, dword [ebp - 0xd0]
add dword [edi + 0x68], edx
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jle 0x100637ae
mov ebx, dword [ebp - 0xdc]
imul ecx, ecx, 0x28
mov eax, edx
cdq
add dword [ecx + ebx + 0x10], eax
adc dword [ecx + ebx + 0x14], edx
jmp case.default.0x1005e221
and dword [ebp - 0xd0], 0
mov esi, dword [ebx + 4]
mov eax, dword [ebp - 0xd8]
shl esi, 4
add esi, dword [eax + 0x10]
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0xc8], esi
xor ebx, ebx
cmp byte [eax], 0x69
setne bl
inc ebx
mov dword [ebp - 0xcc], ebx
mov esi, dword [esi + 4]
mov ecx, esi
call fcn.10052043
push ebx
lea edx, [ebp - 0xd0]
mov ecx, esi
call fcn.100576ed
pop ecx
mov ecx, esi
mov dword [ebp - 0xd4], eax
call fcn.100520b6
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe4]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp 0x1005e4e0
mov edx, dword [ebx + 4]
cmp edx, 1
mov dword [ebp - 0xd0], edx
mov eax, 0x10191ae0
mov ecx, 0x10191a70
cmovne ecx, eax
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xc4], esi
mov eax, dword [ebx + 4]
mov dword [ebp - 0xbc], eax
lea eax, [edi + 0x38]
mov dword [ebp - 0xc0], eax
push dword [ebx + 0x10]
mov eax, dword [esi + 0x10]
push ecx
add edx, edx
push dword [eax + edx*8]
push 0x10191aa0
push esi
call fcn.10047f62
add esp, 0x14
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x100623e7
push 7
pop eax
mov dword [ebp - 0xd4], eax
jmp 0x1006243e
xor ebx, ebx
push ebx
lea eax, [ebp - 0xc4]
push eax
mov byte [esi + 0x81], 1
push fcn.10078896
push dword [ebp - 0xc8]
mov dword [ebp - 0xb8], ebx
push esi
call fcn.10075c14
mov edx, dword [ebp - 0xc8]
add esp, 0x14
test eax, eax
cmove eax, dword [ebp - 0xb8]
mov ecx, esi
mov dword [ebp - 0xd4], eax
call fcn.10046cee
mov eax, dword [ebp - 0xd4]
mov byte [esi + 0x81], bl
test eax, eax
je 0x1006244b
mov ecx, esi
call fcn.1006c7bd
mov eax, dword [ebp - 0xd4]
cmp eax, 7
je 0x100639e1
jmp 0x100637ae
mov edx, dword [ebx + 4]
mov ecx, esi
call fcn.1006b6c8
jmp 0x10060615
mov esi, dword [ebx + 4]
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebx + 0x10]
shl esi, 4
add esi, dword [eax + 0x10]
push 0
mov ecx, edx
call fcn.1004884a
mov ecx, dword [esi + 0xc]
push eax
push 8
pop eax
add ecx, eax
call fcn.10049965
mov esi, dword [ebp - 0xd8]
pop ecx
pop ecx
mov edx, eax
mov ecx, esi
call fcn.1006c879
push 2
pop eax
or dword [esi + 0x18], eax
jmp case.default.0x1005e221
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, esi
call fcn.1006c64c
jmp 0x1005e66f
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, esi
call fcn.1007f1c7
jmp 0x1005e66f
mov edx, dword [ebx + 8]
mov dword [ebp - 0xd0], edx
lea edx, [edx*4 + 4]
mov ecx, esi
call fcn.10046ead
mov edx, eax
xor eax, eax
mov dword [ebp - 0xcc], edx
test edx, edx
je 0x100639e3
mov ecx, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xbc], ecx
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xd0], eax
jle 0x1006255b
imul eax, eax, 0x28
lea ecx, [esi + eax]
call fcn.100598b6
mov edx, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xcc]
mov dword [ecx + edx*4], eax
mov eax, dword [ebp - 0xc8]
inc eax
mov dword [ebp - 0xc8], eax
cmp eax, dword [ebp - 0xd0]
jl 0x10062526
mov edx, dword [ebp - 0xcc]
and dword [edx + eax*4], 0
mov edx, dword [ebp - 0xcc]
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xbc]
push dword [eax + 0x10]
movzx eax, byte [ebx + 3]
mov ebx, dword [ebp - 0xd8]
push dword [ebp - 0xd0]
mov ecx, dword [ebx + 0x10]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.10058740
mov edx, dword [ebp - 0xcc]
add esp, 0xc
mov ecx, ebx
mov dword [ebp - 0xc0], eax
call fcn.10046cee
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xbc]
cdq
sub dword [ecx + 0x10], eax
sbb dword [ecx + 0x14], edx
mov ecx, esi
call fcn.10059a6c
cmp dword [ebp - 0xc4], 0
je 0x100625ed
mov edx, dword [ebp - 0xc0]
test edx, edx
je 0x100639d3
push fcn.10046c90
push 1
push 0xffffffffffffffff
mov ecx, esi
call fcn.10059c88
add esp, 0xc
movzx edx, byte [ebp - 0xfd]
mov ecx, esi
call fcn.10059530
mov eax, dword [ebp - 0xd4]
mov esi, ebx
jmp 0x100637ae
mov esi, dword [ebx + 4]
mov ebx, dword [ebx + 8]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xdc]
test byte [esi + 0x1c], 0x20
jne 0x10062637
mov ecx, esi
call fcn.10059b17
test byte [esi + 0x1c], 0x20
je 0x100639db
push dword [ebx + 0x14]
push dword [ebx + 0x10]
mov ecx, dword [esi + 0x10]
call fcn.1004cb1b
pop ecx
jmp 0x1005e549
cmp dword [esi + 0xe0], 0
jne 0x100639b5
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
test byte [esi + 0x1c], 0x20
je 0x1006269b
mov ecx, dword [esi + 0x10]
lea edx, [ebp - 0xd0]
call fcn.1004cd1f
test eax, eax
je 0x1006269b
mov ecx, dword [ebx + 0xc]
push dword [ebp - 0xcc]
imul ecx, ecx, 0x28
push dword [ebp - 0xd0]
add ecx, dword [ebp - 0xdc]
call fcn.10059ab3
jmp 0x10062645
mov ecx, esi
call fcn.10059a6c
jmp 0x10060ce1
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0xd0], edx
test byte [esi + 0x1c], 0x20
mov dword [ebp - 0xec], eax
jne 0x100626f1
mov ecx, esi
call fcn.10059b17
test byte [esi + 0x1c], 0x20
je 0x100639db
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xec]
test edx, edx
je 0x10062732
push dword [eax + 0x14]
mov ecx, 0xff
push dword [eax + 0x10]
mov al, byte [ebp - 0xd0]
and al, 0xf
movzx eax, al
test edx, edx
cmovns ecx, eax
mov dl, cl
mov ecx, dword [esi + 0x10]
call fcn.1004cd6e
pop ecx
pop ecx
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x10060ce1
mov edx, dword [ebp - 0xd0]
test edx, edx
js 0x1005e4e0
mov eax, dword [ebp - 0xec]
push dword [eax + 0x14]
push dword [eax + 0x10]
jmp 0x1006263d
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0xb8], edx
mov ecx, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xc8], ecx
cmp byte [ebx + 3], 0
je 0x100627ab
mov eax, dword [edi + 0xa8]
mov esi, dword [edx + 0x14]
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x100627a5
cmp dword [eax + 0x18], esi
je 0x10062795
mov eax, dword [eax + 4]
mov dword [ebp - 0xbc], eax
test eax, eax
jne 0x10062783
mov esi, dword [ebp - 0xd8]
test eax, eax
jne case.default.0x1005e221
jmp 0x100627ab
mov esi, dword [ebp - 0xd8]
mov eax, dword [edi + 0xb0]
cmp eax, dword [esi + 0x78]
jl 0x100627d7
push 0x10191af8
lea eax, [edi + 0x38]
push esi
push eax
mov dword [ebp - 0xd4], 1
call fcn.10047044
add esp, 0xc
jmp case.default.0x1005e221
test byte [ecx + 0x1c], 0x40
jne 0x1006294a
mov ecx, dword [edx + 8]
add ecx, dword [edx + 0xc]
mov dword [ebp - 0xd0], ecx
imul ecx, ecx, 0xa
mov eax, dword [edx + 0x10]
add ecx, 0x12
add ecx, dword [edx + 0xc]
lea edx, [eax + ecx*4]
mov ecx, esi
mov dword [ebp - 0xcc], edx
call fcn.10046e8d
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x100639e1
mov ecx, dword [ebp - 0xc8]
call fcn.10059824
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xe0]
push 0x40
pop ecx
mov word [eax + 0x1c], cx
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xbc]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0xbc]
mov dword [eax], edi
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xd0]
mov dword [ecx + 0x3c], eax
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0xbc]
mov dword [eax + 0x40], ecx
mov eax, dword [ebp - 0xbc]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [edi + 8]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [edi + 0x18]
mov dword [eax + 0x34], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [edi + 0x44]
mov dword [eax + 0x14], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [edi + 0x30]
mov dword [eax + 0x28], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [edi + 4]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [edi + 0x1c]
mov dword [eax + 0x30], ecx
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax + 0x14]
mov eax, dword [ebp - 0xbc]
mov dword [eax + 0x18], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [edi + 0xc0]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [edi + 0xbc]
mov dword [eax + 0x38], ecx
mov edx, dword [ebp - 0xbc]
mov eax, dword [edx + 0x3c]
imul eax, eax, 0x28
add eax, 0x48
add eax, edx
lea ecx, [edx + 0x48]
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xc4], ecx
cmp ecx, eax
je 0x10062953
push 0x28
pop edi
mov eax, 0x80
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xc4]
mov dword [eax], esi
mov ecx, dword [ebp - 0xc4]
add ecx, edi
mov dword [ebp - 0xc4], ecx
cmp ecx, dword [ebp - 0xc0]
jne 0x10062915
mov edi, dword [ebp - 0xf8]
mov edx, dword [ebp - 0xbc]
jmp 0x10062953
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0xbc], edx
inc dword [edi + 0xb0]
mov eax, dword [edi + 0xa8]
mov ecx, dword [ebp - 0x108]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0xbc]
xor ebx, ebx
mov dword [eax + 0x20], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x104]
mov dword [eax + 0x24], ecx
mov ecx, dword [edi + 0x68]
mov eax, dword [ebp - 0xbc]
or dword [ebp - 0xe0], 0xffffffff
mov dword [eax + 0x44], ecx
mov ecx, dword [ebp - 0xbc]
mov dword [edi + 0xa8], ecx
lea edx, [ecx + 0x20]
mov dword [edi + 8], edx
mov dword [edi + 0x68], ebx
mov eax, dword [ecx + 0x3c]
mov dword [edi + 0x18], eax
movzx eax, word [ecx + 0x40]
mov ecx, dword [edi + 0x18]
inc ecx
imul ecx, ecx, 0x28
add ecx, edx
mov dword [ebp - 0xdc], edx
mov edx, dword [ebp - 0xb8]
mov dword [edi + 0x30], eax
mov dword [edi + 0x44], ecx
mov eax, dword [edx]
mov dword [ebp - 0x110], eax
mov dword [edi + 4], eax
mov eax, dword [edx + 4]
mov dword [edi + 0x1c], eax
mov eax, dword [edi + 0x30]
lea ecx, [ecx + eax*4]
mov dword [edi + 0xc0], ecx
mov eax, dword [edx + 0x10]
push eax
push ebx
push ecx
mov dword [edi + 0xbc], eax
call fcn.100a56b0
jmp 0x100627cf
mov esi, dword [edi + 0xa8]
mov dword [ebp - 0xd0], esi
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 8]
imul ecx, ecx, 0x14
mov edx, dword [ecx + eax + 4]
add edx, dword [ebx + 4]
mov eax, 0x1000
imul edx, edx, 0x28
add edx, dword [esi + 0xc]
mov dword [ebp - 0xcc], edx
jmp 0x1005e53d
cmp dword [ebx + 4], 0
mov eax, dword [ebx + 8]
cdq
je 0x10062a4f
add dword [esi + 0x1e8], eax
adc dword [esi + 0x1ec], edx
jmp case.default.0x1005e221
add dword [edi + 0x90], eax
adc dword [edi + 0x94], edx
jmp case.default.0x1005e221
cmp dword [ebx + 4], 0
je 0x10062a77
mov eax, dword [esi + 0x1e8]
or eax, dword [esi + 0x1ec]
jmp 0x1005f71c
mov eax, dword [edi + 0x90]
or eax, dword [edi + 0x94]
jmp 0x1005f71c
mov eax, dword [edi + 0xa8]
test eax, eax
jne 0x10062ae9
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd0], ecx
call fcn.100599da
mov esi, dword [ebx + 8]
imul esi, esi, 0x28
add esi, dword [ebp - 0xdc]
mov ecx, esi
call fcn.100599da
mov eax, dword [ebp - 0xd0]
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
cmp dword [eax + 0x14], edx
jg 0x1005e4e0
jl 0x10062adc
cmp dword [eax + 0x10], ecx
jae 0x1005e4e0
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
jmp 0x1005e4e0
mov eax, ecx
mov dword [ebp - 0xcc], eax
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x10062ae7
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [eax + 0xc]
jmp 0x10062a9e
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xdc]
imul eax, eax, 0x28
xor edx, edx
cmp dword [eax + ecx + 0x14], edx
jl case.default.0x1005e221
jg 0x1005e235
cmp dword [eax + ecx + 0x10], edx
jbe case.default.0x1005e221
jmp 0x1005e235
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xdc]
imul eax, eax, 0x28
xor edx, edx
cmp dword [eax + ecx + 0x14], edx
jg case.default.0x1005e221
jl 0x1005e235
cmp dword [eax + ecx + 0x10], edx
jae case.default.0x1005e221
jmp 0x1005e235
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
cdq
add dword [ecx + 0x10], eax
mov eax, dword [ecx + 0x10]
adc dword [ecx + 0x14], edx
or eax, dword [ecx + 0x14]
jmp 0x1005f71c
movzx eax, byte [ebx + 3]
mov edx, dword [edi + 0xc]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebx + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xec], edx
mov dword [ebp - 0x80], edx
xor edx, edx
mov esi, edx
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xcc], esi
test eax, eax
jle 0x10062bf7
mov eax, dword [ebp - 0xec]
push 0x28
pop edi
mov dword [eax + esi*4], ecx
mov ecx, dword [ebp - 0xc4]
call fcn.1005dec0
mov esi, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xc4]
inc esi
add ecx, edi
mov dword [ebp - 0xcc], esi
mov dword [ebp - 0xc4], ecx
cmp esi, dword [ebp - 0xd0]
jge 0x10062bf1
mov eax, dword [ebp - 0x80]
jmp 0x10062bbb
mov edi, dword [ebp - 0xf8]
mov eax, dword [ebx + 0x10]
mov esi, dword [ebp - 0xd8]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xdc]
push 8
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0x90], eax
inc dword [eax + 0x18]
mov ecx, dword [ebp - 0xc0]
xor eax, eax
inc eax
mov word [ebp - 0x9c], ax
pop eax
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x98], edx
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x84], edx
test byte [ecx + 3], al
je 0x10062c6c
mov eax, dword [ebx - 4]
mov dword [ebp - 0x8c], eax
push dword [ebp - 0x80]
lea eax, [ebp - 0xc0]
push dword [ebp - 0xd0]
push eax
call dword [ecx + 0x10]
add esp, 0xc
cmp dword [ebp - 0x88], 0
je 0x10062cb7
mov dl, 1
lea ecx, [ebp - 0xb8]
call fcn.1005a08b
push eax
push 0x101903e0
lea eax, [edi + 0x38]
push esi
push eax
call fcn.10047044
mov eax, dword [ebp - 0x88]
add esp, 0x10
mov dword [ebp - 0xd4], eax
cmp dword [ebp - 0x84], 0
je 0x10062ce1
mov ecx, dword [ebx - 0x10]
mov dword [ebp - 0xcc], ecx
test ecx, ecx
je 0x10062ce1
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
push 0
push 1
call fcn.10059ab3
pop ecx
pop ecx
lea ecx, [ebp - 0xb8]
call fcn.10059824
jmp case.default.0x1005e221
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebx + 0x10]
call fcn.10059778
mov dword [ebp - 0xd4], eax
test eax, eax
je 0x10062d35
mov ecx, dword [ebp - 0xd0]
mov dl, 1
call fcn.1005a08b
push eax
push 0x101903e0
lea eax, [edi + 0x38]
push esi
push eax
call fcn.10047044
add esp, 0x10
movzx edx, byte [ebp - 0xfd]
mov ecx, dword [ebp - 0xd0]
call fcn.10059530
mov ecx, dword [ebp - 0xd0]
jmp 0x1005ee39
and dword [ebp - 0xcc], 0
or dword [ebp - 0xc4], 0xffffffff
or dword [ebp - 0xc8], 0xffffffff
mov edx, dword [ebx + 4]
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0xc8]
push eax
push dword [ebx + 8]
mov ecx, esi
call fcn.1008aaa7
mov edx, eax
add esp, 0xc
mov dword [ebp - 0xd4], edx
cmp edx, 5
jne 0x10062da3
and dword [ebp - 0xd4], 0
mov dword [ebp - 0xcc], 1
xor eax, eax
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
push 0x28
mov dword [ebp - 0xc0], ecx
pop ebx
mov eax, dword [ebp + eax*4 - 0xcc]
cdq
push edx
push eax
call fcn.10059ab3
mov eax, dword [ebp - 0xd0]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc0]
inc eax
add ecx, ebx
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc0], ecx
cmp eax, 3
jl 0x10062dc0
jmp case.default.0x1005e221
mov esi, dword [ebx + 0xc]
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xc8], esi
mov ecx, dword [ebx + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
cmp esi, 0xffffffff
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xec], eax
mov eax, dword [eax + 4]
mov edx, dword [eax]
mov dword [ebp - 0xcc], edx
movzx eax, byte [edx + 5]
cmove esi, eax
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc8], esi
cmp byte [edx + 0xf], 3
mov dword [ebp - 0xe8], edx
jae 0x10062e65
mov eax, dword [edx + 0x40]
xor ecx, ecx
cmp dword [eax], ecx
je 0x10062e6d
cmp dword [edx + 0x4c], ecx
jl 0x10062e6d
jg 0x10062e5f
cmp dword [edx + 0x48], ecx
jbe 0x10062e6d
mov eax, dword [ebp - 0xc4]
mov esi, eax
mov dword [ebp - 0xc8], esi
cmp byte [edx + 0xe], 0
mov ecx, 0x1017bf8f
jne 0x10062e7e
mov ecx, dword [edx + 0x90]
mov dword [ebp - 0xc0], ecx
cmp esi, 5
jne 0x10062ead
call fcn.1004884a
test eax, eax
je 0x10062e9d
mov ecx, edx
call fcn.1005016e
test eax, eax
jne 0x10062ead
mov eax, dword [ebp - 0xc4]
mov esi, eax
mov dword [ebp - 0xc8], esi
jmp 0x10062eb3
mov eax, dword [ebp - 0xc4]
cmp esi, eax
je 0x10062fb8
push 5
pop edx
cmp eax, edx
je 0x10062eca
cmp esi, edx
jne 0x10062fb8
mov ecx, dword [ebp - 0xd8]
cmp byte [ecx + 0x36], 0
je 0x10062f81
cmp dword [ecx + 0x84], 1
jg 0x10062f81
cmp eax, edx
jne 0x10062f23
mov ecx, dword [ebp - 0xe8]
call fcn.1005022d
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x10062fc8
mov edx, dword [ebp - 0xc8]
call fcn.100500b9
mov esi, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xd0]
jmp 0x10062f5d
push 4
pop ecx
cmp eax, ecx
mov ecx, dword [ebp - 0xe8]
jne 0x10062f4e
push 2
pop eax
mov edx, eax
call fcn.100500b9
mov esi, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xd0]
jmp 0x10062f54
mov eax, dword [ebp - 0xec]
cmp dword [ebp - 0xd4], 0
jne 0x10062fc8
xor edx, edx
cmp esi, 5
sete dl
mov ecx, eax
inc edx
call fcn.10058b04
mov esi, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0xd4], eax
jmp 0x10062fc4
cmp esi, edx
mov esi, dword [ebp - 0xd8]
mov eax, 0x10191af0
mov ecx, 0x10191b54
cmovne eax, ecx
push eax
mov dword [ebp - 0xd4], 1
push 0x10191b20
lea eax, [edi + 0x38]
push esi
push eax
call fcn.10047044
add esp, 0x10
jmp case.default.0x1005e221
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xe8]
test eax, eax
je 0x10062fd4
mov esi, dword [ebp - 0xc4]
mov dword [ebp - 0xc8], esi
mov edx, esi
call fcn.100500b9
mov dword [ebp - 0xc8], eax
mov ebx, dword [ebx + 8]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xdc]
mov eax, 0xa02
mov dword [ebp - 0xe4], ebx
mov word [ebx + 0x1c], ax
mov ecx, dword [ebp - 0xc8]
cmp ecx, 6
jne 0x1006300b
xor ecx, ecx
jmp 0x10063012
mov ecx, dword [ecx*4 + 0x1018cc40]
mov dword [ebx + 4], ecx
call fcn.1004884a
movzx edx, byte [ebp - 0xfd]
mov ecx, ebx
mov dword [ebx + 0x18], eax
mov byte [ebx + 0x1f], 1
call fcn.10059530
jmp 0x1005e4e0
lea ecx, [edi + 0x38]
mov edx, esi
call fcn.1008088a
jmp 0x10060615
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xd0], ecx
call fcn.100543b3
mov dword [ebp - 0xd4], eax
cmp eax, 0x65
jne 0x100637ae
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xe0], eax
xor eax, eax
jmp 0x10060615
cmp dword [ebx + 4], 0
jne 0x1006308c
mov ecx, esi
call fcn.1005c94e
jmp case.default.0x1005e221
or dword [edi + 0x64], 0x20
jmp case.default.0x1005e221
mov al, byte [ebx + 0xc]
mov byte [ebp - 0x11c], al
test al, al
jne 0x100630b0
mov eax, 0x800
test dword [esi + 0x18], eax
jne case.default.0x1005e221
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x10]
push dword [ebp - 0x11c]
mov edx, dword [ebx + 8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.10058a6b
pop ecx
mov dword [ebp - 0xd4], eax
cmp al, 6
jne 0x100637ae
push dword [ebx + 0x10]
push 0x10191b7c
jmp 0x10062fa6
mov edx, dword [ebx + 0x10]
mov ecx, esi
mov dword [ebp - 0xd0], edx
call fcn.10081732
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0xd4], eax
test edx, edx
je 0x100637ae
mov edx, dword [edx + 8]
mov ecx, edi
call fcn.1005e086
jmp case.default.0x1005e221
mov edx, dword [ebx + 4]
lea eax, [edi + 0x38]
push eax
push dword [ebx + 0x10]
mov ecx, esi
call fcn.100813d1
pop ecx
pop ecx
jmp 0x10060615
mov eax, dword [edi + 0x64]
push 8
pop ecx
and eax, 0xfffffffb
or eax, ecx
mov dword [edi + 0x64], eax
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, esi
call fcn.100815e4
and dword [edi + 0x64], 0xfffffff3
pop ecx
mov dword [ebp - 0xd4], eax
jmp 0x100637ae
xor eax, eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], eax
mov eax, dword [ebx + 0x10]
lea edx, [ebp - 0xcc]
mov ecx, dword [eax + 8]
mov dword [ebp - 0xc8], ecx
mov eax, dword [ecx]
push edx
push ecx
mov dword [ebp - 0xc4], eax
call dword [eax + 0x18]
mov edx, dword [ebp - 0xc8]
pop ecx
pop ecx
mov ecx, edi
mov dword [ebp - 0xd4], eax
call fcn.1005e086
mov eax, dword [ebp - 0xd4]
test eax, eax
jne 0x100637ae
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xc8]
mov dword [eax], ecx
mov edx, dword [ebx + 4]
xor eax, eax
push eax
push 0xffffffffffffffff
push eax
mov ecx, edi
call fcn.1005deeb
add esp, 0xc
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x100631f8
mov ecx, dword [ebp - 0xcc]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x28], ecx
jmp case.default.0x1005e221
mov byte [esi + 0x38], 1
push dword [ebp - 0xcc]
mov eax, dword [ebp - 0xc4]
call dword [eax + 0x1c]
jmp 0x1005e66f
mov edx, dword [ebx + 0xc]
mov eax, dword [edi + 0x44]
imul edx, edx, 0x28
add edx, dword [ebp - 0xdc]
mov dword [ebp - 0xc4], edx
lea esi, [edx + 0x28]
mov dword [ebp - 0xc0], esi
mov ecx, dword [ebx + 4]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xb4], eax
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xe8], eax
mov eax, dword [eax]
mov dword [ebp - 0xb8], eax
mov eax, dword [eax]
mov dword [ebp - 0xc8], eax
mov esi, dword [esi + 0x10]
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xd0], esi
mov eax, dword [edx + 0x10]
mov edx, dword [edi + 0xc]
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xcc], eax
xor eax, eax
mov ecx, eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xa8], edx
mov dword [ebp - 0xac], ecx
test esi, esi
jle 0x100632f4
lea eax, [ecx + 1]
imul eax, eax, 0x28
add eax, dword [ebp - 0xc0]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xa8]
mov ecx, dword [ecx + eax*4]
call fcn.1005dec0
mov ecx, dword [ebp - 0xac]
mov esi, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xa8]
inc ecx
mov dword [ebp - 0xac], ecx
cmp ecx, esi
jl 0x10063294
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xec], eax
jmp 0x100632fa
mov ecx, dword [ebp - 0xe8]
mov eax, dword [edi + 0x64]
push edx
and eax, 0xfffffff7
or eax, 4
push esi
mov dword [edi + 0x64], eax
push dword [ebx + 0x10]
mov eax, dword [ebp - 0xf4]
push dword [ebp - 0xec]
push ecx
call dword [eax + 0x20]
mov edx, dword [ebp - 0xb8]
and dword [edi + 0x64], 0xfffffff3
add esp, 0x14
mov ecx, edi
mov dword [ebp - 0xd4], eax
call fcn.1005e086
cmp dword [ebp - 0xd4], 0
jne 0x10063356
push dword [ebp - 0xbc]
mov eax, dword [ebp - 0xc8]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0xb0], eax
jmp 0x1006335c
mov eax, dword [ebp - 0xb0]
test eax, eax
je 0x1006336a
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xb4]
mov byte [eax + 0x1c], 0
jmp 0x1005e4e0
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xc8], ecx
cmp byte [esi + 0x1c], 0
jne 0x1005e780
mov eax, dword [esi + 0x24]
push 0x40
mov eax, dword [eax]
mov dword [ebp - 0xd0], eax
mov eax, dword [eax]
mov dword [ebp - 0xcc], eax
pop eax
push eax
lea eax, [ebp - 0xc0]
push 0
push eax
call fcn.100a56b0
mov edx, dword [ebp - 0xc8]
add esp, 0xc
lea ecx, [ebp - 0xb8]
call fcn.10059c62
mov eax, dword [ebp - 0x9c]
mov ecx, 0xbe01
and eax, ecx
or eax, 1
mov word [ebp - 0x9c], ax
push dword [ebx + 8]
lea eax, [ebp - 0xc0]
push eax
push dword [esi + 0x24]
mov eax, dword [ebp - 0xcc]
call dword [eax + 0x2c]
mov edx, dword [ebp - 0xd0]
add esp, 0xc
mov ecx, edi
mov dword [ebp - 0xd4], eax
call fcn.1005e086
cmp dword [ebp - 0x88], 0
mov eax, dword [ebp - 0xd4]
cmovne eax, dword [ebp - 0x88]
movzx edx, byte [ebp - 0xfd]
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0xd4], eax
call fcn.10059530
mov ecx, dword [ebp - 0xc8]
lea edx, [ebp - 0xb8]
call fcn.10059c62
mov ecx, dword [ebp - 0xc8]
call fcn.10059b7b
mov esi, dword [ebp - 0xd8]
jmp 0x1005ee3e
and dword [ebp - 0xc8], 0
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x44]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0xc4], edx
cmp byte [edx + 0x1c], 0
jne case.default.0x1005e221
mov eax, dword [edx + 0x24]
mov eax, dword [eax]
mov dword [ebp - 0xd0], eax
mov ecx, dword [eax]
mov eax, dword [edi + 0x64]
and eax, 0xfffffff7
or eax, 4
mov dword [ebp - 0xcc], ecx
mov dword [edi + 0x64], eax
push dword [edx + 0x24]
call dword [ecx + 0x24]
mov edx, dword [ebp - 0xd0]
and dword [edi + 0x64], 0xfffffff3
pop ecx
mov ecx, edi
mov dword [ebp - 0xd4], eax
call fcn.1005e086
cmp dword [ebp - 0xd4], 0
jne 0x100634ee
mov eax, dword [ebp - 0xc4]
push dword [eax + 0x24]
mov eax, dword [ebp - 0xcc]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0xc8], eax
jmp 0x100634f4
mov eax, dword [ebp - 0xc8]
test eax, eax
jmp 0x1005f71c
mov eax, dword [ebx + 0x10]
xor edx, edx
mov eax, dword [eax + 8]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
inc edx
mov dword [ebp - 0xcc], ecx
call fcn.10059530
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x100637ae
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
push dword [eax + 4]
mov edx, dword [ecx]
push ecx
call dword [edx + 0x4c]
mov edx, dword [ebp - 0xd0]
pop ecx
pop ecx
mov ecx, edi
mov dword [ebp - 0xd4], eax
call fcn.1005e086
jmp 0x100607d4
mov eax, dword [ebx + 0x10]
xor edx, edx
mov eax, dword [eax + 8]
mov dword [ebp - 0xd0], eax
mov eax, dword [eax]
mov dword [ebp - 0xcc], eax
mov esi, dword [ebx + 8]
mov dword [ebp - 0xc8], esi
cmp dword [eax + 0x34], edx
je 0x1005e4e0
mov eax, dword [ebp - 0xd8]
mov al, byte [eax + 0x3c]
mov byte [ebp - 0xf9], al
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xb4], ecx
test esi, esi
jle 0x10063600
push 0x28
pop edi
call fcn.1005dec0
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xb4]
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xc4]
add ecx, edi
inc eax
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xc4], eax
cmp eax, dword [ebp - 0xc8]
jl 0x100635bd
mov edi, dword [ebp - 0xf8]
mov al, byte [ebx + 3]
mov esi, dword [ebp - 0xd8]
mov byte [esi + 0x3c], al
lea eax, [ebp - 0xc0]
push eax
push dword [ebp - 0xb8]
mov eax, dword [ebp - 0xcc]
push dword [ebp - 0xc8]
push dword [ebp - 0xd0]
call dword [eax + 0x34]
mov dword [ebp - 0xd4], eax
mov al, byte [ebp - 0xf9]
mov byte [esi + 0x3c], al
mov edx, dword [ebp - 0xd0]
add esp, 0x10
mov ecx, edi
call fcn.1005e086
xor edx, edx
cmp dword [ebp - 0xd4], edx
jne 0x10063680
cmp dword [ebx + 4], edx
je 0x10063680
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0x108], eax
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x104], ecx
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0xd4]
cmp al, 0x13
jne 0x10061a26
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x100636bc
mov al, byte [ebx + 3]
push 4
pop ecx
cmp al, cl
jne 0x100636a8
mov eax, edx
jmp 0x10060615
cmp al, 5
jne 0x100636b1
push 2
pop eax
jmp 0x100636b4
movzx eax, al
mov byte [edi + 0x60], al
jmp case.default.0x1005e221
mov eax, dword [ebp - 0xd4]
jmp 0x10061a26
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2c]
and dword [edx + 0x14], 0
mov dword [edx + 0x10], eax
jmp case.default.0x1005e221
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
mov edx, dword [ebx + 0xc]
add ecx, ecx
xor esi, esi
mov ecx, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xec], ecx
test edx, edx
je 0x1006370b
mov eax, dword [ecx + 4]
mov esi, dword [eax + 0x2c]
cmp esi, edx
cmovb esi, edx
call fcn.10052043
mov ecx, dword [ebp - 0xec]
mov eax, dword [ecx + 4]
mov eax, dword [eax]
test esi, esi
jle 0x10063725
mov dword [eax + 0x84], esi
mov esi, dword [eax + 0x84]
call fcn.100520b6
mov eax, esi
jmp 0x1006236f
cmp dword [esi + 0x98], 0
je case.default.0x1005e221
test dword [edi + 0x64], 0x400
jne case.default.0x1005e221
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x1006375e
mov edx, dword [edi + 0xa0]
mov dword [ebp - 0xd0], edx
test edx, edx
je case.default.0x1005e221
mov ecx, edi
call fcn.1005dbc7
push eax
mov dword [ebp - 0xcc], eax
push dword [esi + 0x9c]
call dword [esi + 0x98]
mov edx, dword [ebp - 0xcc]
pop ecx
pop ecx
mov ecx, esi
call fcn.10046cee
jmp case.default.0x1005e221
mov edi, dword [ebp - 0xf8]
jmp 0x100637ae
mov edi, dword [ebp - 0xf8]
mov esi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe0]
inc edx
mov dword [ebp - 0xe0], edx
test eax, eax
jne 0x10063a08
mov ecx, dword [ebp - 0x120]
mov eax, edx
jmp 0x1005e186
push 9
jmp 0x100639fb
mov eax, dword [ebx + 4]
mov dword [edi + 0x5c], eax
mov al, byte [ebx + 8]
mov byte [edi + 0x60], al
mov eax, dword [ebp - 0xe0]
mov dword [edi + 0x58], eax
cmp dword [ebx + 0x10], ecx
je 0x10063825
push dword [ebx + 0x10]
lea eax, [edi + 0x38]
push 0x101903e0
push esi
push eax
call fcn.10047044
push dword [ebx + 0x10]
mov edx, dword [ebp - 0xe0]
push dword [edi + 0xa0]
push edx
push 0x101918f0
push dword [ebx + 4]
call fcn.10048122
add esp, 0x24
jmp 0x10063841
cmp dword [edi + 0x5c], ecx
je 0x10063841
push dword [edi + 0xa0]
push eax
push 0x10191940
push dword [ebx + 4]
call fcn.10048122
add esp, 0x10
mov ecx, edi
call fcn.1005bc50
push 5
pop ecx
cmp eax, ecx
je 0x10063899
cmp dword [edi + 0x5c], 0
push 0x65
pop esi
push 1
pop eax
cmovne esi, eax
jmp 0x10063a56
cmp byte [esi + 0x38], 0
jne 0x100639e1
mov eax, dword [ebp - 0xe0]
inc eax
push 0x64
mov dword [edi + 0x58], eax
pop esi
jmp 0x10063a56
lea ecx, [ebp - 0xc0]
call fcn.10059824
jmp 0x100639e1
mov edx, dword [ebp - 0xe0]
mov dword [edi + 0x58], edx
mov byte [esi + 0x36], bl
mov esi, ecx
mov dword [edi + 0x5c], ecx
jmp 0x10063a56
test edx, edx
je 0x100638d3
mov edx, 0x204
call fcn.1008a34d
mov esi, dword [ebp - 0xd8]
mov byte [esi + 0x36], 1
mov ecx, esi
call fcn.10089fa8
xor esi, esi
inc esi
cmp dword [edi + 0x5c], ebx
push 0x65
pop eax
cmove esi, eax
jmp 0x10063a56
xor edx, edx
inc edx
mov ecx, edi
call fcn.1005bbfb
mov esi, eax
test esi, esi
jne 0x10063a56
mov al, byte [ebp - 0xd0]
mov esi, dword [ebp - 0xd8]
mov ecx, edi
mov byte [esi + 0x36], al
call fcn.1005bc50
push 5
pop ecx
cmp eax, ecx
jne 0x100638bb
mov edx, dword [ebp - 0xe0]
xor eax, eax
inc eax
sub al, byte [ebp - 0xd0]
mov dword [edi + 0x58], edx
mov byte [esi + 0x36], al
jmp 0x10063899
mov edx, dword [ebp - 0xe0]
mov dword [edi + 0x58], edx
jmp 0x10063899
mov ecx, 0x106fa
call fcn.1008b85d
jmp 0x1006393b
push 0xd
pop eax
mov esi, dword [ebp - 0xd8]
cmp byte [esi + 0x38], 0
push 7
pop ecx
cmovne eax, ecx
mov dword [ebp - 0xd4], eax
cmp eax, 0xc0a
je 0x10063a02
cmp eax, 0x204
je 0x10063971
mov ecx, eax
mov edx, 0x1017bf98
call fcn.1008a3fd
jmp 0x10063976
mov eax, 0x10194e44
push eax
push 0x101903e0
lea eax, [edi + 0x38]
push esi
push eax
call fcn.10047044
mov eax, dword [ebp - 0xd4]
add esp, 0x10
jmp 0x10063a02
mov edi, dword [ebp - 0xf8]
jmp 0x1006399f
mov esi, dword [ebp - 0xd8]
push 0x10191888
lea eax, [edi + 0x38]
push esi
push eax
call fcn.10047044
add esp, 0xc
push 0x12
jmp 0x100639fb
push 9
mov dword [ebp - 0xd4], 9
mov dword [edi + 0x5c], 9
pop ecx
jmp 0x10063965
mov edi, dword [ebp - 0xf8]
jmp 0x100639e1
mov esi, ebx
jmp 0x100639e1
mov esi, eax
jmp 0x100639e1
mov esi, dword [ebp - 0xd8]
xor eax, eax
inc eax
push 0x101916f4
mov byte [esi + 0x38], al
lea eax, [edi + 0x38]
push esi
push eax
call fcn.10047044
add esp, 0xc
push 7
pop eax
mov dword [ebp - 0xd4], eax
mov edx, dword [ebp - 0xe0]
push dword [edi + 0x38]
mov dword [edi + 0x5c], eax
push dword [edi + 0xa0]
push edx
push 0x10191b5c
push eax
call fcn.10048122
add esp, 0x14
mov ecx, edi
call fcn.1005bc50
cmp dword [ebp - 0xd4], 0xc0a
jne 0x10063a3a
mov byte [esi + 0x38], 1
mov al, byte [ebp - 0xfe]
xor esi, esi
inc esi
test al, al
je 0x10063a56
mov ecx, dword [ebp - 0xd8]
movzx edx, al
dec edx
call fcn.1006c790
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0x108]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x104]
mov dword [eax + 0x24], ecx
mov ecx, edi
call fcn.1005acf2
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.100a3ae5
leave
ret