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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8c
mov eax, dword [0x549944]
xor eax, esp
mov dword [esp + 0x88], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, edx
mov dword [esp + 0x1c], eax
mov edx, ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], edx
mov esi, dword [edx + 8]
mov eax, dword [edx]
mov dword [esp + 0xc], eax
mov dword [esp + 0x3c], esi
test esi, esi
jne 0x461f0a
cmp dword [edx + 0x78], esi
jne 0x461ef3
test byte [eax + 0x44], 8
jne 0x461ef3
mov byte [edx + 0x17], 1
call fcn.00425fe0
mov esi, eax
mov dword [esp + 0x3c], eax
test esi, esi
je 0x4666a1
mov edx, dword [esp + 0x14]
or dword [esi + 0x94], 0x20
lea eax, [edx + 0x2c]
mov ecx, dword [edx]
mov dword [eax], 2
cmp dword [ebx + 4], 0
mov dword [esp + 0x4c], eax
jbe 0x461f98
cmp byte [ecx + 0x9d], 0
je 0x461f52
push 0x53a824
push edx
call fcn.004081e0
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x88]
xor ecx, esp
call fcn.004e5962
mov esp, ebp
pop ebp
ret
mov edx, edi
mov dword [esp + 0x18], ebx
call fcn.0044af80
mov ecx, eax
mov dword [esp + 0x24], ecx
test ecx, ecx
jns 0x461f8e
push edi
push 0x53a838
push dword [esp + 0x1c]
call fcn.004081e0
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x88]
xor ecx, esp
call fcn.004e5962
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x14]
mov dword [esp + 0x40], eax
jmp 0x461fab
movzx ecx, byte [ecx + 0x9c]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0xc]
mov eax, ecx
shl eax, 4
mov dword [esp + 0x34], eax
mov edi, dword [edi + 0x10]
add edi, eax
mov dword [esp + 0x5c], edi
cmp ecx, 1
jne 0x461fd5
mov ecx, edx
call fcn.004519b0
test eax, eax
jne 0x4666a1
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4666a1
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x64], eax
test eax, eax
jne 0x461ff8
mov dword [esp + 0x54], eax
jmp 0x462034
xor eax, eax
add ecx, 1
adc eax, eax
push eax
push ecx
mov ecx, dword [esp + 0x14]
call fcn.00405440
add esp, 8
mov dword [esp + 0x54], eax
test eax, eax
je 0x462034
push dword [esp + 0x18]
push dword [esp + 0x68]
push eax
call fcn.004e8950
mov eax, dword [esp + 0x24]
add esp, 0xc
mov edx, dword [esp + 0x54]
mov byte [eax + edx], 0
mov eax, edx
mov ecx, eax
call fcn.004082d0
cmp dword [esp + 0x54], 0
je 0x4666a1
cmp dword [ebp + 0x10], 0
je 0x462063
push dword [esp + 0x1c]
push 0x53baa8
push dword [esp + 0x14]
call fcn.00407470
add esp, 0xc
jmp 0x4620d8
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4620d6
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x64], eax
test eax, eax
jne 0x46208d
mov ecx, eax
mov dword [esp + 0x10], eax
call fcn.004082d0
mov eax, dword [esp + 0x10]
jmp 0x4620dc
xor eax, eax
add ecx, 1
adc eax, eax
push eax
push ecx
mov ecx, dword [esp + 0x14]
call fcn.00405440
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4620c9
push dword [esp + 0x18]
push dword [esp + 0x68]
push eax
call fcn.004e8950
mov eax, dword [esp + 0x24]
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov byte [eax + ecx], 0
mov eax, ecx
mov ecx, eax
call fcn.004082d0
mov eax, dword [esp + 0x10]
jmp 0x4620dc
xor eax, eax
mov dword [esp + 0x10], eax
cmp dword [ebx + 4], 0
jbe 0x4620e6
mov ebx, dword [edi]
jmp 0x4620e8
xor ebx, ebx
mov ecx, dword [esp + 0x14]
mov edx, 0x13
push ebx
push eax
push dword [esp + 0x5c]
mov dword [esp + 0x44], ebx
call fcn.00449a30
add esp, 0xc
test eax, eax
jne 0x46246d
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], 0
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x18c], 0
mov dword [esp + 0x1c], 1
test eax, eax
je 0x46215e
push eax
call dword [0x54a474]
mov ecx, dword [esp + 0x10]
add esp, 4
test ebx, ebx
je 0x462171
mov edx, ebx
call fcn.0044aed0
mov ebx, eax
test ebx, ebx
jns 0x462173
jmp 0x4621dc
xor ebx, ebx
mov eax, dword [esp + 0xc]
add ebx, ebx
mov eax, dword [eax + 0x10]
mov ebx, dword [eax + ebx*8 + 4]
test ebx, ebx
je 0x4621dc
cmp byte [ebx + 9], 0
je 0x46219a
inc dword [ebx + 0xc]
cmp byte [ebx + 0xa], 0
jne 0x46219a
mov ecx, ebx
call fcn.00416d50
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0x3c]
mov ecx, dword [eax]
test ecx, ecx
je 0x4621c1
lea edx, [esp + 0x84]
push edx
push 0xe
push eax
mov eax, dword [ecx + 0x28]
call eax
add esp, 0xc
mov dword [esp + 0x1c], eax
jmp 0x4621c9
mov dword [esp + 0x1c], 0xc
cmp byte [ebx + 9], 0
je 0x4621dc
add dword [ebx + 0xc], 0xffffffff
jne 0x4621dc
mov ecx, ebx
call fcn.00416d10
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4621f1
push eax
call dword [0x54a47c]
add esp, 4
mov ebx, dword [esp + 0x1c]
test ebx, ebx
jne 0x462244
lea edx, [ebx + 1]
mov ecx, esi
call fcn.00427d80
mov eax, dword [esi]
cmp byte [eax + 0x49], bl
jne 0x462222
mov edx, dword [esp + 0x84]
mov ecx, dword [esi + 0x64]
push 0xffffffffffffffff
push 1
push 0xffffffffffffffff
call fcn.00425590
add esp, 0xc
mov edx, dword [esp + 0x84]
mov ecx, esi
call fcn.00461c30
push dword [esp + 0x84]
call fcn.00405050
add esp, 4
jmp 0x46246d
cmp ebx, 0xc
je 0x462284
mov eax, dword [esp + 0x84]
test eax, eax
je 0x462275
push eax
push 0x538ee0
push dword [esp + 0x1c]
call fcn.004081e0
add esp, 0xc
push dword [esp + 0x84]
call fcn.00405050
add esp, 4
mov eax, dword [esp + 0x14]
inc dword [eax + 0x24]
mov dword [eax + 0xc], ebx
jmp 0x46246d
mov ecx, dword [esp + 0x54]
call fcn.00461d00
mov ebx, eax
mov dword [esp + 0x18], ebx
test ebx, ebx
je 0x46246d
test byte [ebx + 5], 1
je 0x4622cb
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
cmp byte [ecx + 0x9d], 0
jne 0x4622cb
lea edx, [eax + 4]
call fcn.00467920
test eax, eax
je 0x4622cb
mov ecx, dword [esp + 0x14]
inc dword [ecx + 0x24]
mov dword [ecx + 0xc], eax
jmp 0x46246d
mov al, byte [ebx + 5]
test al, 2
jne 0x4622e7
test al, 4
je 0x4622de
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x4622eb
mov edx, ebx
mov ecx, esi
call fcn.00461af0
mov ecx, dword [esp + 0x10]
movzx eax, byte [ebx + 4]
cmp eax, 0x27
ja case.0x4622f8.3
jmp dword [eax*4 + 0x4666b8]
mov eax, dword [esi + 0x98]
mov ebx, dword [esp + 0x24]
bts eax, ebx
mov dword [esi + 0x98], eax
cmp ebx, 1
je 0x462339
mov eax, dword [esi]
mov ecx, dword [esp + 0x34]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 4]
cmp byte [eax + 9], 0
je 0x462339
mov eax, dword [esi + 0x9c]
bts eax, ebx
mov dword [esi + 0x9c], eax
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x46236c
mov eax, dword [esp + 0x4c]
mov edx, 9
push ecx
push 0x53e1fc
mov ecx, esi
add dword [eax], 2
call fcn.00426910
mov dword [eax + 4], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x7c], 0xfffff830
jmp 0x46246a
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 0
mov ecx, eax
call fcn.00408cc0
mov ebx, dword [esp + 0x18]
test ebx, ebx
jns 0x462398
cmp ebx, 0x80000000
jne 0x462396
mov ebx, 0x7fffffff
jmp 0x462398
neg ebx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x78]
test eax, eax
cmovne ecx, eax
mov eax, 1
mov dword [esp + 0x14], ecx
mov edx, dword [ecx + 0x5c]
mov ecx, dword [esp + 0x24]
shl eax, cl
test edx, eax
jne 0x4623d4
mov eax, dword [esp + 0x14]
bts edx, ecx
mov dword [eax + 0x5c], edx
cmp ecx, 1
jne 0x4623d4
mov ecx, eax
call fcn.004519b0
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x58]
bts eax, ecx
mov dword [edx + 0x58], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x462407
push ebx
push 3
push dword [esp + 0x2c]
mov edx, 0x66
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x462439
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x66
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0xc]
mov dword [eax + 0x50], ebx
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov edx, dword [edx + 0x50]
call fcn.004193b0
jmp 0x46246d
mov edi, dword [edi + 4]
test ecx, ecx
jne 0x462496
test edi, edi
je 0x462492
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x20]
cdq
push edx
push eax
mov ecx, esi
call fcn.00461b80
add esp, 8
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
cmp dword [eax + 0x1d0], 0
je 0x466601
mov edx, dword [esp + 0x54]
mov ecx, eax
call fcn.004050c0
jmp 0x466632
xor eax, eax
jmp 0x462460
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 0
call fcn.00408cc0
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x18]
mov dword [eax + 0x54], ebx
cmp byte [edi + 9], 0
mov esi, dword [edi + 4]
je 0x4624cb
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x4624cb
mov ecx, edi
call fcn.00416d50
test byte [esi + 0x16], 2
je 0x4624e6
cmp byte [edi + 9], 0
je 0x46246d
add dword [edi + 0xc], 0xffffffff
jne 0x46246d
mov ecx, edi
call fcn.00416d10
jmp 0x46246d
mov eax, dword [esi + 0x20]
lea ecx, [esi + 0x20]
sub eax, dword [esi + 0x24]
mov dword [esp + 0x64], eax
lea eax, [ebx - 0x200]
cmp eax, 0xfe00
ja 0x462525
lea eax, [ebx - 1]
test ebx, eax
jne 0x462525
mov eax, dword [esi + 0x50]
mov dword [ecx], ebx
test eax, eax
je 0x462525
lea ecx, [eax - 4]
mov dword [esi + 0x50], ecx
call fcn.0040dae0
mov dword [esi + 0x50], 0
lea ecx, [esi + 0x20]
mov ebx, dword [esp + 0x64]
mov edx, ecx
mov ecx, dword [esi]
push ebx
call fcn.00411110
mov edx, dword [esi + 0x20]
add esp, 4
movzx ecx, bx
sub edx, ecx
mov dword [esp + 0x64], eax
mov dword [esi + 0x24], edx
cmp byte [edi + 9], 0
je 0x46255c
add dword [edi + 0xc], 0xffffffff
jne 0x46255c
mov ecx, edi
call fcn.00416d10
mov eax, dword [esp + 0x64]
cmp eax, 7
mov eax, dword [esp + 0xc]
jne 0x462471
cmp byte [eax + 0x49], 0
jne 0x462471
cmp byte [eax + 0x4a], 0
jne 0x462471
cmp dword [eax + 0xac], 0
mov byte [eax + 0x49], 1
jle 0x462594
mov dword [eax + 0x100], 1
inc dword [eax + 0x108]
jmp 0x462471
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
mov ebx, dword [edi + 4]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], ecx
test eax, eax
je 0x462617
mov bl, byte [eax]
mov edx, eax
movzx eax, bl
movzx eax, byte [eax + 0x53ea00]
sub eax, 0x66
jne 0x4625f5
mov edi, 0x53baac
sub edi, edx
nop
test bl, bl
je 0x4626c8
movzx eax, byte [edi + edx + 1]
inc edx
movzx ecx, byte [eax + 0x53ea00]
mov bl, byte [edx]
movzx eax, bl
movzx eax, byte [eax + 0x53ea00]
sub eax, ecx
je 0x4625d0
mov ecx, dword [esp + 0x10]
mov edx, 1
push 0
call fcn.00461a40
xor ecx, ecx
add esp, 4
test al, al
setne cl
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x20]
mov edi, 0xfff3
cmp dword [eax + 4], 0
jne 0x4626bb
test ecx, ecx
js 0x4626bb
mov eax, dword [esp + 0xc]
xor edx, edx
mov dword [esp + 0x1c], edx
cmp dword [eax + 0x14], edx
jle 0x4626bb
mov ebx, dword [esp + 0x30]
xor esi, esi
mov eax, dword [eax + 0x10]
mov edi, dword [esi + eax + 4]
test edi, edi
je 0x46269d
cmp byte [edi + 9], 0
je 0x46266c
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x46266c
mov ecx, edi
call fcn.00416d50
mov edx, dword [esp + 0x1c]
mov eax, dword [edi + 4]
mov ecx, 0xfff3
and word [eax + 0x16], cx
lea eax, [ebx*4]
mov ecx, dword [edi + 4]
or word [ecx + 0x16], ax
cmp byte [edi + 9], 0
je 0x46269d
add dword [edi + 0xc], 0xffffffff
jne 0x46269d
mov ecx, edi
call fcn.00416d10
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
inc edx
add esi, 0x10
mov dword [esp + 0x1c], edx
cmp edx, dword [eax + 0x14]
jl 0x462647
mov esi, dword [esp + 0x3c]
mov edi, 0xfff3
mov ebx, dword [esp + 0x28]
test ebx, ebx
jne 0x4626d8
xor edi, edi
push edi
push edi
jmp 0x462463
test eax, eax
jne 0x4625f5
lea ecx, [eax + 2]
jmp 0x46260f
cmp byte [ebx + 9], 0
je 0x4626ee
inc dword [ebx + 0xc]
cmp byte [ebx + 0xa], 0
jne 0x4626ee
mov ecx, ebx
call fcn.00416d50
mov edx, dword [esp + 0x30]
test edx, edx
js 0x46270b
mov eax, dword [ebx + 4]
and word [eax + 0x16], di
lea eax, [edx*4]
mov ecx, dword [ebx + 4]
or word [ecx + 0x16], ax
mov eax, dword [ebx + 4]
movzx edi, word [eax + 0x16]
shr edi, 2
and edi, 3
cmp byte [ebx + 9], 0
je 0x46272b
add dword [ebx + 0xc], 0xffffffff
jne 0x46272b
mov ecx, ebx
call fcn.00416d10
push 0
push edi
jmp 0x462463
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
mov ecx, ebx
mov eax, dword [edi + 0x78]
test eax, eax
cmovne edi, eax
mov eax, 1
shl eax, cl
mov edx, dword [edi + 0x5c]
test edx, eax
jne 0x462765
bts edx, ebx
mov dword [edi + 0x5c], edx
cmp ebx, 1
jne 0x462765
mov ecx, edi
call fcn.004519b0
mov eax, dword [esp + 0x4c]
inc dword [eax]
mov edi, dword [eax]
mov eax, dword [esp + 0x54]
movzx eax, byte [eax]
cmp byte [eax + 0x53ea00], 0x70
jne 0x4627c3
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4627a3
push 0
push edi
push ebx
mov edx, 0x9f
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x462845
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x9f
mov dword [eax + ecx*4 + 0xc], 0
jmp 0x462835
mov eax, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x18], edx
test eax, eax
je 0x4627f5
lea edx, [esp + 0x18]
mov ecx, eax
call fcn.00408cc0
mov edx, dword [esp + 0x18]
test edx, edx
jns 0x4627f5
cmp edx, 0x80000000
jne 0x4627f3
mov edx, 0x7fffffff
jmp 0x4627f5
neg edx
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x462817
push edx
push edi
push ebx
mov edx, 0xa0
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x462845
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0xa0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 4], ebx
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46286c
push 0
push 1
push edi
mov edx, 0x4e
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x46246d
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 1
jmp 0x465f5d
test ecx, ecx
je 0x4628e5
mov eax, dword [esp + 0x10]
mov ecx, 0x53b9d4
mov bl, byte [eax]
movzx eax, bl
movzx eax, byte [eax + 0x53ea00]
mov dword [esp + 0x50], eax
lea edx, [eax - 0x65]
test edx, edx
jne 0x462914
mov eax, dword [esp + 0x10]
mov bh, bl
sub eax, ecx
mov dword [esp + 0x64], eax
nop dword [eax]
test bh, bh
je 0x462907
mov bh, byte [eax + ecx + 1]
inc ecx
movzx eax, bh
movzx edx, byte [eax + 0x53ea00]
movzx eax, byte [ecx]
movzx eax, byte [eax + 0x53ea00]
sub edx, eax
mov eax, dword [esp + 0x64]
je 0x4628c0
or ecx, 0xffffffff
mov eax, dword [esp + 0x20]
cmp dword [eax + 4], 0
jne 0x4629b1
mov eax, dword [esp + 0xc]
cmp ecx, 0xffffffff
jne 0x462957
mov al, byte [eax + 0x4b]
jmp 0x4629db
test edx, edx
jne 0x462910
lea ecx, [edx + 1]
jmp 0x4628e8
mov eax, dword [esp + 0x50]
mov edx, 0x53b9e0
add eax, 0xffffff92
jne 0x4628e5
mov ecx, dword [esp + 0x10]
sub ecx, edx
mov dword [esp + 0x64], ecx
test bl, bl
je 0x46294f
movzx eax, byte [edx + 1]
inc edx
mov bl, byte [edx + ecx]
movzx ecx, byte [eax + 0x53ea00]
movzx eax, bl
movzx eax, byte [eax + 0x53ea00]
sub eax, ecx
mov ecx, dword [esp + 0x64]
je 0x462928
jmp 0x4628e5
test eax, eax
jne 0x4628e5
xor ecx, ecx
jmp 0x4628e8
mov edx, 2
cmp dword [eax + 0x14], edx
jle 0x4629ae
mov ebx, 0x20
mov edi, eax
nop dword [eax + eax]
mov eax, dword [edi + 0x10]
mov eax, dword [eax + ebx + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
test ecx, ecx
js 0x462999
cmp byte [eax + 0xc], 0
jne 0x462999
mov esi, dword [eax + 0xd4]
test esi, esi
je 0x462996
cmp byte [esi + 0x2b], 2
je 0x462999
mov byte [eax + 4], cl
inc edx
add ebx, 0x10
cmp edx, dword [edi + 0x14]
jl 0x462970
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0xc]
mov byte [eax + 0x4b], cl
mov eax, dword [edi + 4]
mov dl, cl
mov eax, dword [eax + 4]
mov eax, dword [eax]
test ecx, ecx
js 0x4629d8
cmp byte [eax + 0xc], 0
jne 0x4629d8
mov ecx, dword [eax + 0xd4]
test ecx, ecx
je 0x4629d5
cmp byte [ecx + 0x2b], 2
je 0x4629d8
mov byte [eax + 4], dl
mov al, byte [eax + 4]
cmp al, 1
mov ecx, 0x53b9d4
mov edx, 0x53b9e0
cmove edx, ecx
mov ecx, esi
call fcn.00461c30
jmp 0x46246d
test ecx, ecx
je 0x462ae7
mov edi, ecx
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x462a03
sub edi, ecx
and edi, 0x3fffffff
xor ebx, ebx
cmp ebx, 6
je 0x462ae7
mov eax, dword [ebx*4 + 0x53dd4c]
test eax, eax
je 0x462ae7
push edi
push eax
push dword [esp + 0x18]
call fcn.004083e0
add esp, 0xc
test eax, eax
je 0x462a41
inc ebx
jmp 0x462a14
cmp ebx, 0xffffffff
je 0x462aea
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x14]
sub edi, 1
js 0x462b56
mov edx, edi
shl edx, 4
mov dword [esp + 0x18], edx
nop word [eax + eax]
mov eax, dword [eax + 0x10]
cmp dword [eax + edx + 4], 0
je 0x462b3e
cmp edi, dword [esp + 0x40]
je 0x462a8e
cmp dword [ecx + 4], 0
jne 0x462b3e
mov eax, dword [esi + 0x98]
bts eax, edi
mov dword [esi + 0x98], eax
cmp edi, 1
je 0x462ac0
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + edx + 4]
cmp byte [eax + 9], 0
je 0x462ac0
mov eax, dword [esi + 0x9c]
bts eax, edi
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x462b0c
push ebx
push 1
push edi
mov edx, 9
mov ecx, esi
call fcn.00426240
mov edx, dword [esp + 0x24]
add esp, 0xc
jmp 0x462b3e
or ebx, 0xffffffff
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 4], 0
jne 0x462a4e
mov dword [esp + 0x40], 0
mov dword [ecx + 4], 1
jmp 0x462a4e
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 9
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x20]
sub edx, 0x10
sub edi, 1
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18], edx
jns 0x462a70
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x462b7e
push 0
push 1
push 1
mov edx, 0x4e
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x46246d
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 8], 1
jmp 0x465f55
mov eax, dword [edi + 4]
mov dword [esp + 0x68], 0xfffffffe
mov dword [esp + 0x6c], 0xffffffff
mov eax, dword [eax + 4]
mov edi, dword [eax]
test ecx, ecx
je 0x462bfa
lea edx, [esp + 0x68]
call fcn.00408bb0
mov ecx, dword [esp + 0x6c]
cmp ecx, 0xffffffff
jg 0x462bda
jl 0x462bd3
mov eax, dword [esp + 0x68]
cmp eax, 0xffffffff
jae 0x462bde
or eax, 0xffffffff
or ecx, eax
jmp 0x462bde
mov eax, dword [esp + 0x68]
mov edx, dword [edi + 0xd4]
mov dword [edi + 0xa0], eax
mov dword [edi + 0xa4], ecx
test edx, edx
je 0x462bfa
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], ecx
push dword [edi + 0xa4]
push dword [edi + 0xa0]
jmp 0x462463
mov edi, dword [edi + 4]
test ecx, ecx
jne 0x462c55
mov al, byte [edi + 9]
test al, al
je 0x462c2b
inc dword [edi + 0xc]
cmp byte [edi + 0xa], cl
jne 0x462c2b
mov ecx, edi
call fcn.00416d50
mov al, byte [edi + 9]
mov ecx, dword [edi + 4]
xor ebx, ebx
cmp byte [ecx + 0x11], bl
je 0x462c3c
cmp byte [ecx + 0x12], bl
setne bl
inc ebx
test al, al
je 0x462c4d
add dword [edi + 0xc], 0xffffffff
jne 0x462c4d
mov ecx, edi
call fcn.00416d10
push 0
push ebx
jmp 0x462463
mov bl, byte [ecx]
mov edx, ecx
movzx eax, bl
movzx eax, byte [eax + 0x53ea00]
mov dword [esp + 0x18], eax
add eax, 0xffffff92
jne 0x462d7d
mov ecx, 0x53b9e8
mov bh, bl
sub ecx, dword [esp + 0x10]
mov dword [esp + 0x64], ecx
nop
test bh, bh
je 0x462d6e
movzx eax, byte [edx + ecx + 1]
inc edx
movzx ecx, byte [eax + 0x53ea00]
mov bh, byte [edx]
movzx eax, bh
movzx eax, byte [eax + 0x53ea00]
sub eax, ecx
mov ecx, dword [esp + 0x64]
je 0x462c80
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 0
call fcn.00408cc0
xor ecx, ecx
cmp dword [esp + 0x18], 2
cmovbe ecx, dword [esp + 0x18]
movzx ebx, cl
mov eax, dword [esp + 0xc]
mov edx, ebx
mov ecx, edi
mov byte [eax + 0x4c], bl
call fcn.004196d0
test eax, eax
jne 0x46246d
cmp ebx, 1
je 0x462cf3
cmp ebx, 2
jne 0x46246d
mov edi, dword [esi + 0x88]
mov edx, 5
push ecx
push 0x540864
mov ecx, esi
call fcn.00426910
mov edx, dword [esp + 0x2c]
lea ecx, [edi + 4]
add esp, 8
mov dword [eax + 0x30], ecx
lea ecx, [ebx - 1]
mov dword [eax + 4], edx
mov dword [eax + 0x18], edx
mov dword [eax + 0x54], edx
mov dword [eax + 0x5c], ecx
mov eax, dword [esi + 0x98]
bts eax, edx
mov dword [esi + 0x98], eax
cmp edx, 1
je 0x46246d
mov eax, dword [esi]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 4]
cmp byte [eax + 9], 0
je 0x462d65
mov eax, dword [esi + 0x9c]
bts eax, edx
mov dword [esi + 0x9c], eax
mov eax, dword [esp + 0xc]
jmp 0x462475
test eax, eax
jne 0x462d79
xor ebx, ebx
jmp 0x462ccd
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov edx, ecx
add eax, 0xffffff9a
jne 0x462dd1
mov ecx, 0x53b9f0
mov bh, bl
sub ecx, dword [esp + 0x10]
mov dword [esp + 0x64], ecx
test bh, bh
je 0x462dc1
movzx eax, byte [edx + ecx + 1]
inc edx
movzx ecx, byte [eax + 0x53ea00]
mov bh, byte [edx]
movzx eax, bh
movzx eax, byte [eax + 0x53ea00]
sub eax, ecx
mov ecx, dword [esp + 0x64]
je 0x462d97
jmp 0x462ca9
test eax, eax
jne 0x462dcd
lea ebx, [eax + 1]
jmp 0x462ccd
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov edx, ecx
add eax, 0xffffff97
jne 0x462cad
mov ecx, 0x53b9f8
sub ecx, dword [esp + 0x10]
mov dword [esp + 0x64], ecx
nop dword [eax]
test bl, bl
je 0x462e1a
movzx eax, byte [edx + ecx + 1]
inc edx
movzx ecx, byte [eax + 0x53ea00]
mov bl, byte [edx]
movzx eax, bl
movzx eax, byte [eax + 0x53ea00]
sub eax, ecx
mov ecx, dword [esp + 0x64]
je 0x462df0
jmp 0x462ca9
test eax, eax
jne 0x462ca9
lea ebx, [eax + 2]
jmp 0x462ccd
test ecx, ecx
je 0x462e43
lea edx, [esp + 0x64]
call fcn.00408cc0
test eax, eax
je 0x462e43
mov edi, dword [esp + 0x64]
test edi, edi
jg 0x462e48
mov edi, 0x7fffffff
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
mov eax, dword [ecx + 0x78]
test eax, eax
cmovne ecx, eax
mov eax, 1
mov dword [esp + 0x14], ecx
mov edx, dword [ecx + 0x5c]
mov ecx, ebx
shl eax, cl
mov ecx, dword [esp + 0x14]
test edx, eax
jne 0x462e84
bts edx, ebx
mov dword [ecx + 0x5c], edx
cmp ebx, 1
jne 0x462e84
call fcn.004519b0
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x58]
bts eax, ebx
mov dword [ecx + 0x58], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x462eb1
push 0
push 1
push edi
mov edx, 0x43
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x462ee3
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x88]
cmp dword [eax + 0x30], edi
jg 0x462f09
push 0
push 0
push ebx
mov edx, 0x3c
mov ecx, esi
call fcn.00426240
add esp, 0xc
mov edi, eax
jmp 0x462f3b
lea eax, [edi + 1]
mov dword [esi + 0x88], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x3c
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x462f60
push 0
push 0
push 1
mov edx, 0x4e
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x462f96
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x4e
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x462fbb
push 0
push 0xffffffffffffffff
push 1
mov edx, 0x50
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x462ff1
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x50
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 0xffffffff
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x463015
push 0
push edi
push 1
mov edx, 0x30
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x463047
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x30
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
mov edx, dword [esi + 0x88]
cmp byte [eax + 0x49], 0
je 0x463062
mov eax, 0x550080
mov dword [eax + 8], edx
jmp 0x46246d
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x46246d
test ecx, ecx
jne 0x46308b
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x50]
jmp 0x462460
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 0
call fcn.00408cc0
mov ecx, dword [edi + 0xc]
mov eax, dword [esp + 0x18]
mov dword [ecx + 0x50], eax
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov edx, dword [edx + 0x50]
call fcn.004193b0
jmp 0x46246d
test ecx, ecx
jne 0x463158
mov eax, dword [esp + 0xc]
test byte [eax + 0x1c], 0x20
jne 0x4630d4
xor edi, edi
mov eax, edi
jmp 0x462460
mov ebx, dword [edi + 4]
mov cl, byte [ebx + 9]
mov edi, dword [ebx + 4]
mov byte [esp + 0x2f], cl
test cl, cl
je 0x463100
inc dword [ebx + 0xc]
cmp byte [ebx + 0xa], 0
mov byte [esp + 0x2f], cl
jne 0x463100
mov ecx, ebx
call fcn.00416d50
mov al, byte [ebx + 9]
mov byte [esp + 0x2f], al
mov eax, dword [edi]
mov ecx, dword [eax + 0xd0]
mov dword [esp + 0x18], ecx
mov eax, dword [ecx + 0x10]
test eax, eax
jns 0x463135
mov eax, dword [ecx + 0x1c]
add eax, dword [ecx + 0x18]
cdq
mov edi, eax
mov eax, ecx
push edx
mov edx, 0xfffffc00
push edi
mov eax, dword [eax + 0x10]
imul edx
push edx
push eax
call fcn.0050e8e0
mov ecx, dword [esp + 0x18]
mov edi, dword [ecx + 0x14]
cmp eax, edi
cmovge edi, eax
cmp byte [esp + 0x2f], 0
je 0x463151
add dword [ebx + 0xc], 0xffffffff
jne 0x463151
mov ecx, ebx
call fcn.00416d10
mov eax, edi
jmp 0x462460
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 1
call fcn.00408cc0
mov esi, dword [esp + 0x18]
test eax, eax
je 0x46317b
mov ecx, dword [edi + 4]
mov edx, esi
call fcn.00419430
mov ebx, dword [esp + 0x10]
test esi, esi
mov edx, 1
mov ecx, ebx
setne al
movzx eax, al
push eax
call fcn.00461a40
mov ecx, dword [esp + 0x10]
add esp, 4
mov edx, dword [ecx + 0x1c]
mov ecx, edx
or ecx, 0x20
and edx, 0xffffffdf
test al, al
mov eax, dword [esp + 0xc]
cmovne edx, ecx
mov ecx, eax
mov dword [eax + 0x1c], edx
call fcn.00461cb0
mov eax, dword [esp + 0xc]
jmp 0x462475
test ecx, ecx
je 0x4632fd
lea edx, [esp + 0x68]
call fcn.00408bb0
cmp dword [esp + 0x6c], 0
jg 0x4631f6
jl 0x4631e3
cmp dword [esp + 0x68], 0
jae 0x4631f6
mov eax, dword [0x54a4d0]
mov ecx, dword [0x54a4d4]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0xc]
cmp dword [edx + 4], 0
jne 0x463212
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], ecx
mov ecx, dword [ebx + 0x14]
sub ecx, 1
mov dword [esp + 0x30], ecx
js 0x4632fd
mov esi, ecx
shl esi, 4
mov eax, dword [ebx + 0x10]
mov edi, dword [eax + esi + 4]
test edi, edi
je 0x4632e9
cmp ecx, dword [esp + 0x24]
je 0x463246
cmp dword [edx + 4], 0
jne 0x4632e9
cmp byte [edi + 9], 0
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov ebx, dword [edi + 4]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x50], edx
je 0x463277
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x463277
mov ecx, edi
call fcn.00416d50
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x50]
mov ebx, dword [ebx]
mov eax, dword [ebx + 0x3c]
mov dword [ebx + 0x80], ecx
mov dword [ebx + 0x84], edx
mov eax, dword [eax]
test eax, eax
je 0x4632ca
cmp dword [eax], 3
jl 0x4632ca
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], edx
test edx, edx
jl 0x4632a9
jg 0x4632a5
test ecx, ecx
je 0x4632a9
mov al, 1
jmp 0x4632ab
xor al, al
mov ecx, ebx
mov byte [ebx + 0x16], al
call fcn.0040ec70
mov eax, dword [ebx + 0x3c]
lea edx, [esp + 0x78]
push edx
push 0x12
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x28]
call eax
add esp, 0xc
cmp byte [edi + 9], 0
je 0x4632dd
add dword [edi + 0xc], 0xffffffff
jne 0x4632dd
mov ecx, edi
call fcn.00416d10
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0xc]
dec ecx
sub esi, 0x10
mov dword [esp + 0x30], ecx
test ecx, ecx
jns 0x463227
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0xc]
mov ebx, 1
mov dword [esp + 0x68], 0xffffffff
mov dword [esp + 0x6c], 0xffffffff
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x46332b
push eax
call dword [0x54a474]
mov ecx, dword [esp + 0x10]
add esp, 4
mov eax, dword [esp + 0x38]
test eax, eax
je 0x463342
mov edx, eax
call fcn.0044aed0
mov edi, eax
test edi, edi
jns 0x463344
jmp 0x4633a5
xor edi, edi
mov eax, dword [esp + 0xc]
add edi, edi
mov eax, dword [eax + 0x10]
mov edi, dword [eax + edi*8 + 4]
test edi, edi
je 0x4633a5
cmp byte [edi + 9], 0
je 0x46336b
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x46336b
mov ecx, edi
call fcn.00416d50
mov eax, dword [edi + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0x3c]
mov ecx, dword [eax]
test ecx, ecx
je 0x46338d
lea edx, [esp + 0x68]
push edx
push 0x12
push eax
mov eax, dword [ecx + 0x28]
call eax
add esp, 0xc
mov ebx, eax
jmp 0x463392
mov ebx, 0xc
cmp byte [edi + 9], 0
je 0x4633a5
add dword [edi + 0xc], 0xffffffff
jne 0x4633a5
mov ecx, edi
call fcn.00416d10
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4633ba
push eax
call dword [0x54a47c]
add esp, 4
test ebx, ebx
jne 0x4633cb
push dword [esp + 0x6c]
push dword [esp + 0x6c]
jmp 0x462463
cmp ebx, 0xc
je 0x46246d
mov eax, dword [esp + 0x14]
inc dword [eax + 0x24]
mov dword [eax + 0xc], ebx
jmp 0x46246d
test ecx, ecx
jne 0x4633f4
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0x48]
jmp 0x462460
mov dl, byte [ecx]
mov al, dl
sub al, 0x30
cmp al, 2
ja 0x463409
movsx ebx, dl
sub ebx, 0x30
jmp 0x463494
movzx eax, dl
mov esi, ecx
movzx ecx, byte [eax + 0x53ea00]
movzx eax, byte [0x53b580]
mov dword [esp + 0x50], ecx
movzx eax, byte [eax + 0x53ea00]
sub ecx, eax
jne 0x46345b
mov edi, 0x53b580
mov bl, dl
sub edi, dword [esp + 0x10]
test bl, bl
je 0x4634da
movzx eax, byte [esi + edi + 1]
inc esi
movzx ecx, byte [eax + 0x53ea00]
mov bl, byte [esi]
movzx eax, bl
movzx eax, byte [eax + 0x53ea00]
sub eax, ecx
je 0x463436
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x10]
mov esi, ecx
add eax, 0xffffff93
jne 0x463492
mov edi, 0x53ba04
sub edi, ecx
test dl, dl
je 0x4634e1
movzx eax, byte [esi + edi + 1]
inc esi
movzx ecx, byte [eax + 0x53ea00]
mov dl, byte [esi]
movzx eax, dl
movzx eax, byte [eax + 0x53ea00]
sub eax, ecx
je 0x463471
xor ebx, ebx
mov edx, dword [esp + 0x14]
mov esi, dword [edx]
movzx eax, byte [esi + 0x48]
cmp eax, ebx
je 0x46246d
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x4634d2
cmp byte [esi + 0x47], 0
je 0x4634ea
cmp byte [ecx + 8], 0
jne 0x4634ea
call fcn.00419230
mov eax, dword [esi + 0x10]
mov ecx, esi
mov dword [eax + 0x14], 0
call fcn.0044a9f0
mov byte [esi + 0x48], bl
jmp 0x46246d
mov ebx, 1
jmp 0x463494
test eax, eax
jne 0x463492
lea ebx, [eax + 2]
jmp 0x463494
push 0x53ba0c
push edx
call fcn.004081e0
jmp 0x46246a
test ecx, ecx
jne 0x463510
mov edx, dword [0x54fe3c]
mov ecx, esi
call fcn.00461c30
jmp 0x46246d
cmp byte [ecx], 0
je 0x463549
mov eax, dword [esp + 0xc]
lea edx, [esp + 0x64]
push edx
push 1
push ecx
mov eax, dword [eax]
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x463536
cmp dword [esp + 0x64], eax
jne 0x463549
push 0x53bab4
push dword [esp + 0x18]
call fcn.004081e0
jmp 0x46246a
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x48], 1
ja 0x463595
mov edx, dword [esp + 0x14]
mov esi, dword [edx]
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x463595
cmp byte [esi + 0x47], 0
je 0x463587
cmp byte [ecx + 8], 0
jne 0x463587
call fcn.00419230
mov eax, dword [esi + 0x10]
mov ecx, esi
mov dword [eax + 0x14], 0
call fcn.0044a9f0
jmp 0x463595
push 0x53ba0c
push edx
call fcn.004081e0
add esp, 8
push dword [0x54fe3c]
call fcn.00405050
mov ebx, dword [esp + 0x14]
add esp, 4
cmp byte [ebx], 0
je 0x4635c8
push ebx
push 0x538ee0
call fcn.00407560
mov dword [0x54fe3c], eax
add esp, 8
mov eax, dword [esp + 0xc]
jmp 0x462475
mov eax, dword [esp + 0xc]
mov dword [0x54fe3c], 0
jmp 0x462475
test ecx, ecx
jne 0x4635f1
mov edx, dword [0x54fe38]
mov ecx, esi
call fcn.00461c30
jmp 0x46246d
cmp byte [ecx], 0
je 0x46361f
mov eax, dword [esp + 0xc]
lea edx, [esp + 0x64]
push edx
push 1
push ecx
mov eax, dword [eax]
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x463536
cmp dword [esp + 0x64], eax
je 0x463536
push dword [0x54fe38]
call fcn.00405050
mov ebx, dword [esp + 0x14]
add esp, 4
cmp byte [ebx], 0
je 0x463652
push ebx
push 0x538ee0
call fcn.00407560
mov dword [0x54fe38], eax
add esp, 8
mov eax, dword [esp + 0xc]
jmp 0x462475
mov eax, dword [esp + 0xc]
mov dword [0x54fe38], 0
jmp 0x462475
test ecx, ecx
jne 0x463678
movzx eax, byte [edi + 8]
cdq
sub eax, 1
sbb edx, ecx
jmp 0x462461
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x47], 0
jne 0x463695
push 0x53bad0
push dword [esp + 0x18]
call fcn.004081e0
jmp 0x46246a
cmp dword [esp + 0x24], 1
je 0x462471
push 1
xor edx, edx
call fcn.00461a40
inc eax
add esp, 4
and eax, 7
mov ecx, 1
mov byte [edi + 9], cl
cmove eax, ecx
mov ecx, dword [esp + 0xc]
mov byte [edi + 8], al
call fcn.00461cb0
jmp 0x46246d
test ecx, ecx
jne 0x4636f0
mov edx, ebx
mov ecx, esi
call fcn.00461af0
mov ecx, dword [esp + 0xc]
mov eax, dword [ebx + 8]
push 0
and eax, dword [ecx + 0x1c]
neg eax
sbb eax, eax
neg eax
jmp 0x462462
mov ecx, dword [esp + 0xc]
mov edx, 1
mov edi, dword [ebx + 8]
and edi, 0xffffbfff
push 0
cmp byte [ecx + 0x47], 0
cmovne edi, dword [ebx + 8]
mov ebx, dword [esp + 0x14]
mov ecx, ebx
call fcn.00461a40
mov edx, dword [esp + 0x10]
add esp, 4
mov ecx, dword [edx + 0x1c]
test al, al
je 0x46372c
or ecx, edi
mov dword [edx + 0x1c], ecx
jmp 0x463751
mov eax, edi
not eax
and eax, ecx
mov dword [edx + 0x1c], eax
cmp edi, 0x80000
jne 0x463751
mov dword [edx + 0x1c8], 0
mov dword [edx + 0x1cc], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x463788
push 0
push 0
push 0
mov edx, 0x97
mov ecx, esi
call fcn.00426240
mov edx, dword [esp + 0x18]
add esp, 0xc
mov ecx, edx
call fcn.00461cb0
mov eax, dword [esp + 0xc]
jmp 0x462475
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x97
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, edx
call fcn.00461cb0
mov eax, dword [esp + 0xc]
jmp 0x462475
test ecx, ecx
je 0x46246d
push dword [esp + 0x38]
mov edx, 2
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.0044a470
mov edi, eax
add esp, 8
mov dword [esp + 0x48], edi
test edi, edi
je 0x46246d
mov ebx, dword [edi + 8]
mov dword [esp + 0x1c], 0
test ebx, ebx
je 0x463820
nop dword [eax]
mov eax, dword [ebx + 0x38]
and al, 3
cmp al, 2
je 0x463820
mov ebx, dword [ebx + 0x14]
test ebx, ebx
jne 0x463810
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
mov edx, ecx
mov dword [eax], 6
mov eax, dword [ecx + 0x78]
test eax, eax
mov ecx, dword [esp + 0x24]
cmovne edx, eax
mov eax, 1
shl eax, cl
mov ecx, dword [edx + 0x5c]
test ecx, eax
jne 0x463860
mov eax, dword [esp + 0x24]
bts ecx, eax
mov dword [edx + 0x5c], ecx
cmp eax, 1
jne 0x463860
mov ecx, edx
call fcn.004519b0
mov ecx, dword [esp + 0x14]
mov edx, edi
call fcn.0044dac0
mov eax, dword [esp + 0x48]
xor edx, edx
xor edi, edi
mov ecx, dword [eax + 4]
movzx eax, word [eax + 0x2a]
mov dword [esp + 0x30], ecx
cmp dx, ax
jge 0x46246d
mov edx, eax
mov dword [esp + 0x18], edx
nop dword [eax]
mov al, byte [ecx + 0xf]
mov byte [esp + 0x2f], al
test al, 2
je 0x4638a7
inc dword [esp + 0x1c]
movzx eax, dx
jmp 0x463967
test al, 1
jne 0x4638af
xor edx, edx
jmp 0x4638dd
mov edx, 1
test ebx, ebx
je 0x4638dd
mov eax, dword [esp + 0x18]
cwde
cmp eax, edx
jl 0x4638dd
mov ecx, dword [ebx + 4]
mov esi, eax
movsx eax, word [ecx]
cmp eax, edi
je 0x4638d5
inc edx
add ecx, 2
cmp edx, esi
jle 0x4638c6
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 4]
test eax, eax
je 0x4638ed
mov eax, dword [eax + 8]
mov dword [esp + 0x18], eax
jmp 0x4638f5
mov dword [esp + 0x18], 0
test byte [esp + 0x2f], 4
mov eax, dword [ecx]
mov dword [esp + 0x50], eax
jne 0x46390c
mov dword [esp + 0x28], 0x538284
jmp 0x46392f
mov ecx, eax
lea eax, [ecx + 1]
mov dword [esp + 0x64], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x463915
mov eax, dword [esp + 0x50]
sub ecx, dword [esp + 0x64]
inc eax
add eax, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x28], eax
push edx
push dword [esp + 0x1c]
xor eax, eax
cmp byte [ecx + 0xc], al
setne al
push eax
push dword [esp + 0x34]
mov eax, dword [ecx]
push eax
mov eax, edi
sub eax, dword [esp + 0x30]
push eax
push 0x53bb08
push 1
push esi
call fcn.004263a0
mov eax, dword [esp + 0x6c]
add esp, 0x24
mov ecx, dword [esp + 0x30]
movzx eax, word [eax + 0x2a]
movzx edx, ax
inc edi
add ecx, 0x10
cwde
mov dword [esp + 0x30], ecx
mov dword [esp + 0x18], edx
cmp edi, eax
jl 0x463890
jmp 0x46246d
test ecx, ecx
je 0x46246d
push dword [esp + 0x38]
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.0044a600
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x46246d
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4639b9
movzx eax, word [ebx + 0x34]
jmp 0x4639bd
movzx eax, word [ebx + 0x32]
mov edi, dword [esp + 0x14]
test ecx, ecx
mov ecx, dword [esp + 0x24]
mov edx, 3
mov dword [esp + 0x1c], eax
mov eax, 6
cmove eax, edx
mov dword [edi + 0x2c], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x64], eax
mov eax, dword [edi + 0x78]
test eax, eax
cmovne edi, eax
mov eax, 1
shl eax, cl
mov edx, dword [edi + 0x5c]
test edx, eax
jne 0x463a0a
bts edx, ecx
mov dword [edi + 0x5c], edx
cmp ecx, 1
jne 0x463a0a
mov ecx, edi
call fcn.004519b0
xor edi, edi
cmp word [esp + 0x1c], di
je 0x46246d
nop word [eax + eax]
mov eax, dword [ebx + 4]
movzx eax, word [eax + edi*2]
movsx edx, ax
test ax, ax
jns 0x463a33
xor eax, eax
jmp 0x463a41
mov eax, dword [esp + 0x64]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*8]
push eax
push edx
push edi
push 0x53bb10
push 1
push esi
call fcn.004263a0
mov eax, dword [esp + 0x30]
add esp, 0x18
cmp dword [eax + 8], 0
je 0x463a87
movzx eax, word [ebx + 0x32]
cmp edi, eax
sbb eax, eax
neg eax
push eax
mov eax, dword [ebx + 0x20]
push dword [eax + edi*4]
mov eax, dword [ebx + 0x1c]
movzx eax, byte [eax + edi]
push eax
push 0x53bb18
push 4
push esi
call fcn.004263a0
add esp, 0x18
mov eax, dword [esp + 0x4c]
mov ecx, dword [esi + 0x88]
mov edx, dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x463ab1
push 0
push edx
push 1
mov edx, 0x4e
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x463ae7
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x4e
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x1c]
inc edi
movzx eax, cx
cmp edi, eax
jl 0x463a20
jmp 0x46246d
test ecx, ecx
je 0x46246d
push dword [esp + 0x38]
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.0044a340
mov edi, eax
add esp, 4
test edi, edi
je 0x46246d
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
mov ecx, dword [ebx + 0x78]
test ecx, ecx
mov dword [eax], 5
mov eax, 1
cmovne ebx, ecx
mov ecx, dword [esp + 0x24]
shl eax, cl
mov edx, dword [ebx + 0x5c]
test edx, eax
jne 0x463b5a
bts edx, ecx
mov dword [ebx + 0x5c], edx
cmp ecx, 1
jne 0x463b5a
mov ecx, ebx
call fcn.004519b0
mov edi, dword [edi + 8]
xor ebx, ebx
test edi, edi
je 0x46246d
mov dword [esp + 0x68], 0x53bb20
mov dword [esp + 0x6c], 0x53bb24
mov dword [esp + 0x70], 0x53b52c
nop
xor eax, eax
cmp dword [edi + 0x24], eax
setne al
push eax
mov eax, dword [edi + 0x38]
and eax, 3
push dword [esp + eax*4 + 0x6c]
xor eax, eax
cmp byte [edi + 0x36], al
setne al
push eax
push dword [edi]
push ebx
push 0x53bb28
push 1
push esi
call fcn.004263a0
mov edi, dword [edi + 0x14]
add esp, 0x20
inc ebx
test edi, edi
jne 0x463b80
jmp 0x46246d
mov eax, dword [esp + 0x4c]
xor edi, edi
mov dword [eax], 3
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x14], edi
jle 0x462471
xor ebx, ebx
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + ebx + 4]
test eax, eax
je 0x463c0f
mov eax, dword [eax + 4]
mov eax, dword [eax]
cmp byte [eax + 0xf], 0
je 0x463bf4
mov eax, 0x538284
jmp 0x463bfa
mov eax, dword [eax + 0xa8]
push eax
push dword [ecx + ebx]
push edi
push 0x53bb30
push 1
push esi
call fcn.004263a0
add esp, 0x18
mov eax, dword [esp + 0xc]
inc edi
add ebx, 0x10
cmp edi, dword [eax + 0x14]
jl 0x463bd7
jmp 0x462471
mov eax, dword [esp + 0x4c]
xor ebx, ebx
mov edi, dword [esp + 0xc]
mov dword [eax], 2
mov edi, dword [edi + 0x17c]
test edi, edi
je 0x46246d
nop
mov eax, dword [edi + 8]
push dword [eax]
push ebx
push 0x53bb34
push 1
push esi
call fcn.004263a0
mov edi, dword [edi]
add esp, 0x14
inc ebx
test edi, edi
jne 0x463c40
jmp 0x46246d
test ecx, ecx
je 0x46246d
push dword [esp + 0x38]
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.0044a340
add esp, 4
mov dword [esp + 0x64], eax
test eax, eax
je 0x46246d
mov edi, dword [eax + 0x10]
test edi, edi
je 0x46246d
mov eax, dword [esp + 0x4c]
xor edx, edx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], edx
mov dword [eax], 8
mov eax, dword [ecx + 0x78]
test eax, eax
cmovne ecx, eax
mov eax, 1
mov dword [esp + 0x14], ecx
mov ebx, dword [ecx + 0x5c]
mov ecx, dword [esp + 0x24]
shl eax, cl
test ebx, eax
jne 0x463ce0
mov eax, dword [esp + 0x14]
bts ebx, ecx
mov dword [eax + 0x5c], ebx
cmp ecx, 1
jne 0x463ce0
mov ecx, eax
call fcn.004519b0
xor edx, edx
nop dword [eax]
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x463da3
lea edx, [edi + 0x24]
mov dword [esp + 0x18], edx
movzx eax, byte [edi + 0x19]
add eax, 0xfffffffa
cmp eax, 3
ja case.default.0x463cfe
jmp dword [eax*4 + 0x466758]
mov ecx, 0x53ba4c
jmp 0x463d26
mov ecx, 0x53ba58
jmp 0x463d26
mov ecx, 0x53ba64
jmp 0x463d26
mov ecx, 0x53ba6c
jmp 0x463d26
mov ecx, 0x53ba78
movzx eax, byte [edi + 0x1a]
add eax, 0xfffffffa
cmp eax, 3
ja case.default.0x463d32
jmp dword [eax*4 + 0x466768]
mov eax, 0x53ba4c
jmp 0x463d5a
mov eax, 0x53ba58
jmp 0x463d5a
mov eax, 0x53ba64
jmp 0x463d5a
mov eax, 0x53ba6c
jmp 0x463d5a
mov eax, 0x53ba78
push 0x53bb38
push ecx
mov ecx, dword [edx]
push eax
push dword [edx + 4]
mov eax, dword [esp + 0x74]
add ecx, ecx
mov eax, dword [eax + 4]
push dword [eax + ecx*8]
push dword [edi + 8]
push ebx
push dword [esp + 0x38]
push 0x53bb40
push 1
push esi
call fcn.004263a0
mov edx, dword [esp + 0x44]
inc ebx
add edx, 8
add esp, 0x2c
mov dword [esp + 0x18], edx
cmp ebx, dword [edi + 0x14]
jl 0x463cf2
mov edx, dword [esp + 0x1c]
mov edi, dword [edi + 4]
inc edx
mov dword [esp + 0x1c], edx
test edi, edi
jne 0x463ce0
jmp 0x46246d
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x24]
mov eax, dword [edx]
lea ecx, [eax + 1]
add eax, 5
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x40], eax
inc eax
mov dword [edx], eax
mov edx, ecx
mov eax, dword [ecx + 0x78]
test eax, eax
mov ecx, ebx
cmovne edx, eax
mov eax, 1
shl eax, cl
mov edi, dword [edx + 0x5c]
test edi, eax
jne 0x463e03
bts edi, ebx
mov dword [edx + 0x5c], edi
cmp ebx, 1
jne 0x463e03
mov ecx, edx
call fcn.004519b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x34]
mov eax, dword [eax + 0x10]
mov eax, dword [ecx + eax + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x46246d
nop dword [eax]
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x463e41
push dword [esp + 0x38]
xor edx, edx
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.0044a470
add esp, 8
mov edi, eax
xor eax, eax
jmp 0x463e46
mov edi, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x44], eax
mov dword [esp + 0x30], edi
test edi, edi
je 0x464564
cmp dword [edi + 0x10], 0
je 0x464564
push dword [edi]
mov ecx, dword [esp + 0x18]
mov edx, ebx
push 0
push dword [edi + 0x1c]
call fcn.00449ad0
mov ecx, dword [esp + 0x4c]
add esp, 0xc
movsx eax, word [edi + 0x2a]
inc ecx
add eax, ecx
mov ecx, dword [esp + 0x4c]
cmp eax, dword [ecx]
jle 0x463e8a
mov dword [ecx], eax
mov ecx, dword [esp + 0x14]
xor edx, edx
push 0x68
push edi
push ebx
call fcn.0045b4e0
mov edx, dword [esp + 0x2c]
add esp, 0xc
mov ecx, esi
push dword [edi]
call fcn.004262f0
mov eax, dword [edi + 0x10]
add esp, 4
mov dword [esp + 0x1c], eax
mov ebx, 1
test eax, eax
je 0x463ff2
push dword [esp + 0x38]
mov edx, dword [eax + 8]
mov ecx, dword [esp + 0x10]
call fcn.0044a340
mov edi, eax
add esp, 4
test edi, edi
je 0x463fda
push dword [edi]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
push 0
push dword [edi + 0x1c]
mov dword [esp + 0x34], 0
call fcn.00449ad0
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x34]
add esp, 0xc
mov edx, edi
push 0
push eax
push dword [esp + 0x24]
call fcn.004589f0
add esp, 0xc
test eax, eax
jne 0x46246d
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x463f3f
mov ecx, dword [esp + 0x14]
mov edx, ebx
push 0x68
push edi
push dword [esp + 0x2c]
call fcn.0045b4e0
add esp, 0xc
jmp 0x463fda
mov edx, dword [eax + 0x2c]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x463f67
push dword [esp + 0x24]
mov ecx, esi
push edx
push ebx
mov edx, 0x68
call fcn.00426240
add esp, 0xc
jmp 0x463f95
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x68
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
mov ecx, eax
mov edx, dword [esp + 0x28]
mov edi, dword [eax + 8]
call fcn.00452430
mov edx, eax
test edx, edx
je 0x463fda
mov ecx, dword [edi]
cmp byte [ecx + 0x49], 0
je 0x463fc5
push edx
mov edx, 0xfffffff7
call fcn.00426b10
add esp, 4
jmp 0x463fda
mov eax, dword [edi + 0x88]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [esp + 0x1c]
inc ebx
mov eax, dword [eax + 4]
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x463ec0
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x28], ebx
jge 0x463ffe
mov dword [eax + 0x28], ebx
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x88]
mov dword [esp + 0x58], edx
cmp dword [eax + 0x30], edx
jg 0x46402b
push 0
push 0
push 0
mov edx, 0x25
mov ecx, esi
call fcn.00426240
add esp, 0xc
mov dword [esp + 0x58], eax
jmp 0x464061
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [edi + 0x10]
mov dword [esp + 0x3c], 1
mov dword [esp + 0x34], ebx
test ebx, ebx
je 0x4644d6
mov edi, dword [esp + 0xc]
nop dword [eax]
push dword [esp + 0x38]
mov edx, dword [ebx + 8]
mov ecx, edi
call fcn.0044a340
add esp, 4
mov dword [esp + 0x64], eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x1c], 0
test eax, eax
je 0x4640c2
lea ecx, [esp + 0x1c]
mov edx, eax
push ecx
lea ecx, [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x1c]
push ebx
call fcn.004589f0
add esp, 0xc
mov ebx, dword [esi + 0xc]
mov edi, dword [ebx + 0x44]
lea eax, [edi + 1]
mov dword [ebx + 0x44], eax
lea eax, [edi - 1]
test edi, eax
jne 0x4640ef
mov edx, dword [ebx + 0x48]
lea eax, [edi*8 + 4]
mov ecx, dword [ebx]
push 0
push eax
call fcn.004055e0
add esp, 8
mov dword [ebx + 0x48], eax
mov eax, dword [ebx + 0x48]
test eax, eax
je 0x4640fd
mov dword [eax + edi*4], 0xffffffff
mov ecx, dword [esp + 0x34]
not edi
xor ebx, ebx
mov dword [esp + 0x48], edi
mov eax, dword [ecx + 0x14]
test eax, eax
jle 0x4641b9
mov edi, dword [esp + 0x40]
inc edi
add ecx, 0x24
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x1c]
test eax, eax
lea eax, [eax + ebx*4]
jne 0x46412d
mov eax, ecx
mov eax, dword [eax]
mov ecx, esi
mov edx, dword [esp + 0x30]
push edi
push eax
push 0
call fcn.00441100
mov eax, dword [esi + 0xc]
add esp, 0xc
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x464167
push 0
push dword [esp + 0x4c]
mov edx, 0x32
mov ecx, esi
push edi
call fcn.00426240
add esp, 0xc
jmp 0x464199
mov edx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x34]
inc ebx
mov ecx, dword [esp + 0x18]
inc edi
add ecx, 8
mov dword [esp + 0x18], ecx
mov eax, dword [eax + 0x14]
cmp ebx, eax
jl 0x464120
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x28]
test edx, edx
je 0x464277
push eax
push ecx
mov ecx, dword [esp + 0x14]
call fcn.0045b6a0
mov ecx, dword [esp + 0x48]
add esp, 4
mov ebx, dword [esp + 0x38]
mov edx, 0x63
push eax
push ecx
push dword [ebx + 0x14]
lea eax, [ecx + 1]
mov ecx, esi
push eax
call fcn.00426570
mov eax, dword [esi + 0xc]
add esp, 0x14
mov edx, dword [esi + 0x88]
cmp dword [eax + 0x30], edx
jg 0x46421d
push dword [esp + 0x40]
mov edx, 0x1e
mov ecx, esi
push edi
push dword [esp + 0x44]
call fcn.00426240
add esp, 0xc
mov edx, eax
jmp 0x464253
mov ebx, dword [esp + 0x3c]
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x40]
mov dword [eax + ecx*4 + 0xc], ebx
mov ebx, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x1e
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
jne 0x46433c
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x46433c
cmp dword [esp + 0x64], 0
je 0x464338
mov ecx, dword [esi + 0x88]
mov eax, dword [esi + 0xc]
lea edx, [ecx + 2]
cmp dword [eax + 0x30], ecx
jg 0x4642af
mov eax, dword [esp + 0x40]
mov ecx, esi
inc eax
push eax
push edx
push dword [esp + 0x44]
mov edx, 0x1f
call fcn.00426240
add esp, 0xc
jmp 0x4642e2
mov ebx, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x40]
inc edx
mov dword [eax + ecx*4], 0x1f
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x464306
push 0
push edi
push 0
mov edx, 0xd
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x464338
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
test byte [edx + 0x24], 0x20
mov eax, dword [eax + 0x30]
jne 0x464389
cmp eax, ecx
jg 0x464371
mov eax, dword [esp + 0x20]
mov edx, 0x7b
push 0
inc eax
mov ecx, esi
push eax
push 0
call fcn.00426240
add esp, 0xc
jmp 0x4643e3
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x7b
jmp 0x4643be
cmp eax, ecx
jg 0x4643a8
mov eax, dword [esp + 0x20]
mov edx, 0x46
push 0
inc eax
mov ecx, esi
push eax
push 0
call fcn.00426240
add esp, 0xc
jmp 0x4643e3
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x46
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x48]
inc edx
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 4], 0
mov eax, dword [esp + 0x3c]
dec eax
push eax
push dword [ebx + 8]
mov eax, dword [esp + 0x28]
push 0x53bb4c
add eax, 2
push eax
push esi
call fcn.004263a0
mov eax, dword [esi + 0xc]
add esp, 0x14
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x464429
push 0
push 4
push dword [esp + 0x28]
mov edx, 0x4e
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x46445f
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x4e
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x46447a
lea eax, [edi*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0xc]
test ecx, ecx
je 0x4644c3
cmp dword [edi + 0x1d0], 0
je 0x46449a
mov edx, ecx
mov ecx, edi
call fcn.004050c0
jmp 0x4644c3
cmp ecx, dword [edi + 0x128]
jb 0x4644ba
cmp ecx, dword [edi + 0x12c]
jae 0x4644ba
mov eax, dword [edi + 0x124]
mov dword [ecx], eax
mov dword [edi + 0x124], ecx
jmp 0x4644c3
push ecx
call fcn.00405050
add esp, 4
mov ebx, dword [ebx + 4]
inc dword [esp + 0x3c]
mov dword [esp + 0x34], ebx
test ebx, ebx
jne 0x464080
mov eax, dword [esi + 0xc]
mov ebx, dword [esp + 0x58]
mov ecx, dword [esi + 0x88]
lea edx, [ebx + 1]
cmp dword [eax + 0x30], ecx
jg 0x464501
push 0
push edx
push 0
mov edx, 7
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x464533
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 7
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
mov edx, dword [esi + 0x88]
cmp byte [eax + 0x49], 0
je 0x464548
mov eax, 0x550080
jmp 0x464559
test ebx, ebx
lea eax, [edx - 1]
cmovns eax, ebx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea eax, [eax + ecx*4]
mov ebx, dword [esp + 0x24]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x463e20
jmp 0x46246d
test ecx, ecx
je 0x46246d
push 0
mov edx, 1
call fcn.00461a40
mov edi, dword [esp + 0x10]
add esp, 4
xor ebx, ebx
mov ecx, 0x53d258
test al, al
mov esi, 0x53e1f8
mov edx, 0x53b1c8
push 0
push 0
setne bl
test al, al
push 0
cmove esi, ecx
mov ecx, edi
push 0x4569c0
push esi
push 1
push 2
call fcn.00490320
add esp, 0x1c
mov edx, 0x53b1c8
mov ecx, edi
push 0
push 0
push 0
push 0x4569c0
push esi
push 1
push 3
call fcn.00490320
add esp, 0x1c
mov edx, 0x53b1d0
mov ecx, edi
push 0
push 0
push 0
push 0x4569c0
push 0x53e514
push 1
push 2
call fcn.00490320
add esp, 0x1c
mov edx, 0x53b1d0
mov ecx, edi
push 0
push 1
push 2
call fcn.00452db0
add esp, 0xc
test eax, eax
je 0x464621
or word [eax + 2], 0xc
push 0
push 1
push 2
mov edx, 0x53b1c8
mov ecx, edi
call fcn.00452db0
add esp, 0xc
test eax, eax
je 0x46464c
xor ecx, ecx
test ebx, ebx
setne cl
lea ecx, [ecx*8 + 4]
or word [eax + 2], cx
mov eax, edi
jmp 0x462471
mov eax, dword [esp + 0x54]
or edx, 0xffffffff
movzx eax, byte [eax]
mov al, byte [eax + 0x53ea00]
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x20]
cmp dword [eax], 0
mov eax, dword [esp + 0x40]
cmove eax, edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x4c]
mov dword [eax], 6
mov eax, 0x64
mov dword [esp + 0x64], eax
mov ebx, eax
mov dword [esp + 0x44], eax
test ecx, ecx
je 0x4646ac
lea edx, [esp + 0x44]
call fcn.00408cc0
mov eax, dword [esp + 0x44]
test eax, eax
cmovle eax, ebx
mov dword [esp + 0x64], eax
mov ecx, dword [esi + 0x88]
lea edx, [eax - 1]
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x4646d3
push 0
push 1
push edx
mov edx, 0x43
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x464705
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0xc]
xor ebx, ebx
mov dword [esp + 0x1c], ebx
lea edi, [ebx + 1]
cmp dword [eax + 0x14], ebx
jle 0x465ad5
mov ecx, dword [esp + 0x40]
nop
mov dword [esp + 0x28], 0
test ecx, ecx
js 0x464734
cmp ebx, ecx
jne 0x465ac2
mov ecx, dword [esp + 0x14]
mov edx, ecx
mov eax, dword [ecx + 0x78]
test eax, eax
mov ecx, ebx
cmovne edx, eax
mov eax, 1
shl eax, cl
mov edi, dword [edx + 0x5c]
test edi, eax
jne 0x464764
bts edi, ebx
mov dword [edx + 0x5c], edi
cmp ebx, 1
jne 0x464764
mov ecx, edx
call fcn.004519b0
mov eax, dword [esp + 0xc]
mov ecx, ebx
shl ecx, 4
xor edx, edx
mov dword [esp + 0x50], ecx
mov eax, dword [eax + 0x10]
mov eax, dword [ecx + eax + 0xc]
mov dword [esp + 0x44], eax
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x4647cc
mov esi, edx
nop word [eax + eax]
mov ecx, dword [ebx + 8]
lea eax, [edx + 1]
test byte [ecx + 0x24], 0x20
cmovne eax, edx
xor edi, edi
mov edx, eax
mov eax, dword [ecx + 8]
test eax, eax
je 0x4647b1
mov eax, dword [eax + 0x14]
inc edx
inc edi
test eax, eax
jne 0x4647a8
mov ebx, dword [ebx]
cmp edi, esi
cmovle edi, esi
mov esi, edi
test ebx, ebx
jne 0x464790
mov dword [esp + 0x28], esi
mov eax, edi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0xc]
lea eax, [edx*4 + 4]
push 0
push eax
call fcn.00405440
mov edi, eax
add esp, 8
test edi, edi
je 0x465ad0
mov ebx, dword [esp + 0x44]
xor edx, edx
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x46482b
nop dword [eax]
mov ecx, dword [ebx + 8]
test byte [ecx + 0x24], 0x20
jne 0x464810
mov eax, dword [ecx + 0x1c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x464825
mov eax, dword [ecx + 0x2c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x464817
mov ebx, dword [ebx]
test ebx, ebx
jne 0x464800
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x28]
mov dword [edi], edx
add eax, 8
mov ecx, dword [ebx]
cmp ecx, eax
cmovle ecx, eax
mov eax, dword [esp + 0x14]
mov dword [ebx], ecx
mov byte [eax + 0x13], 0
mov dword [eax + 0x1c], 0
mov eax, dword [esi + 0xc]
mov ebx, dword [esi + 0x88]
cmp dword [eax + 0x30], ebx
jg 0x464876
push 1
push edx
push 2
mov edx, 0x8e
mov ecx, esi
call fcn.00426240
add esp, 0xc
mov ebx, eax
jmp 0x4648ac
lea eax, [ebx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x8e
mov dword [eax + ecx*4 + 4], 2
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 1
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
je 0x4648c4
push edi
mov edx, 0xfffffff1
call fcn.00426b10
add esp, 4
jmp 0x4648f7
test ebx, ebx
jns 0x4648cf
mov ebx, dword [esi + 0x88]
dec ebx
mov eax, dword [esi + 0x58]
lea ecx, [ebx + ebx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x4648f0
push 0xfffffffffffffff1
push edi
mov edx, eax
mov ecx, esi
call fcn.00426c90
add esp, 8
jmp 0x4648f7
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xf1
mov edi, dword [esi + 0x88]
test edi, edi
jle 0x464919
mov eax, dword [esp + 0x1c]
lea ecx, [edi + edi*4]
movzx edx, al
mov eax, dword [esi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
mov edi, dword [esi + 0x88]
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], edi
jg 0x46493a
push 0
push 0
push 2
mov edx, 0x32
mov ecx, esi
call fcn.00426240
add esp, 0xc
mov edi, eax
jmp 0x464970
lea eax, [edi + 1]
mov dword [esi + 0x88], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], 2
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x50]
mov eax, dword [edx + 0x10]
push dword [ecx + eax]
push 0x53bb50
push edx
call fcn.00407470
mov ecx, dword [esi + 0xc]
add esp, 0xc
mov edx, dword [esi + 0x88]
mov ebx, eax
cmp dword [ecx + 0x30], edx
jg 0x4649b5
push 0
push 3
push 0
mov edx, 0x61
mov ecx, esi
call fcn.00426240
add esp, 0xc
mov edx, eax
jmp 0x4649ef
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
je 0x464a07
push ebx
mov edx, 0xfffffff9
call fcn.00426b10
add esp, 4
jmp 0x464a3e
test edx, edx
jns 0x464a12
mov edx, dword [esi + 0x88]
dec edx
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x464a33
push 0xfffffffffffffff9
push ebx
mov edx, eax
mov ecx, esi
call fcn.00426c90
add esp, 8
jmp 0x464a3e
test ebx, ebx
je 0x464a3e
mov dword [eax + 0x10], ebx
mov byte [eax + 1], 0xf9
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x464a63
push 3
push 3
push 2
mov edx, 0x5d
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x464a99
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x5d
mov dword [eax + ecx*4 + 4], 2
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, esi
call fcn.00461d70
mov eax, dword [esi]
mov edx, dword [esi + 0x88]
cmp byte [eax + 0x49], 0
je 0x464ab5
mov eax, 0x550080
jmp 0x464ac6
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x50], eax
test eax, eax
je 0x465ab6
nop dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x34], eax
mov dword [esp + 0x60], 0
mov dword [esp + 0x48], 0xffffffff
cmp dword [eax + 0x1c], 1
jl 0x465aa4
test byte [eax + 0x24], 0x20
jne 0x464b11
mov dword [esp + 0x30], 0
jmp 0x464b34
mov ecx, dword [eax + 8]
mov dword [esp + 0x30], ecx
test ecx, ecx
je 0x464b34
nop dword [eax]
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
je 0x464b30
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x464b20
mov dword [esp + 0x30], ecx
mov ebx, dword [esp + 0x14]
xor edi, edi
cmp byte [ebx + 0x19], 0
jbe 0x464b6e
lea edx, [ebx + 0xa0]
cmp byte [edx - 6], 0
je 0x464b62
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x464b62
movzx ecx, al
mov eax, dword [edx]
mov dword [ebx + ecx*4 + 0x15c], eax
inc byte [ebx + 0x13]
movzx eax, byte [ebx + 0x19]
inc edi
add edx, 0x14
cmp edi, eax
jl 0x464b46
mov edi, dword [esp + 0x34]
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x24]
mov byte [ebx + 0x19], 0
push eax
push 0
push 1
push 0
push 0x68
mov edx, edi
mov ecx, ebx
call fcn.0045f6a0
mov eax, dword [esi + 0xc]
add esp, 0x18
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x464bb9
push 0
push 7
push 0
mov edx, 0x43
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x464bef
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 7
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x464c62
mov edi, 8
nop dword [eax + eax]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x464c24
push 0
push edi
push 0
mov edx, 0x43
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x464c56
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [ebx + 0x14]
inc edi
test ebx, ebx
jne 0x464c00
mov edi, dword [esp + 0x34]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
mov ebx, dword [esp + 0x20]
cmp dword [eax + 0x30], ecx
jg 0x464c8a
push 0
push 0
push ebx
mov edx, 0x25
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x464cbc
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x88]
mov dword [esp + 0x18], edx
cmp dword [eax + 0x30], edx
jg 0x464ce9
push 0
push 1
push 7
mov edx, 0x50
mov ecx, esi
call fcn.00426240
add esp, 0xc
mov dword [esp + 0x18], eax
jmp 0x464d1f
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x50
mov dword [eax + ecx*4 + 4], 7
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x44], ecx
cmp ax, word [edi + 0x2a]
jge 0x464f0b
xor ebx, ebx
mov dword [esp + 0x58], ebx
nop word [eax + eax]
movsx eax, word [edi + 0x28]
cmp ecx, eax
je 0x464eef
mov eax, dword [edi + 4]
cmp byte [ebx + eax + 0xc], 0
je 0x464eef
push 3
push ecx
push dword [esp + 0x28]
mov edx, edi
mov ecx, esi
call fcn.00441100
mov edi, dword [esi + 0x88]
add esp, 0xc
test edi, edi
jle 0x464d8d
mov eax, dword [esi + 0x58]
lea ecx, [edi + edi*4]
mov edx, 0x80
mov word [eax + ecx*4 - 0x12], dx
mov edi, dword [esi + 0x88]
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], edi
jg 0x464dae
push 0
push 0
push 3
mov edx, 0x33
mov ecx, esi
call fcn.00426240
add esp, 0xc
mov edi, eax
jmp 0x464de4
lea eax, [edi + 1]
mov dword [esi + 0x88], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x33
mov dword [eax + ecx*4 + 4], 3
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 4]
push dword [ebx + eax]
push dword [ecx]
push 0x53bb68
push dword [esp + 0x18]
call fcn.00407470
mov ecx, dword [esi + 0xc]
add esp, 0x10
mov edx, dword [esi + 0x88]
mov ebx, eax
cmp dword [ecx + 0x30], edx
jg 0x464e2a
push 0
push 3
push 0
mov edx, 0x61
mov ecx, esi
call fcn.00426240
add esp, 0xc
mov edx, eax
jmp 0x464e64
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
je 0x464e7c
push ebx
mov edx, 0xfffffff9
call fcn.00426b10
add esp, 4
jmp 0x464eb3
test edx, edx
jns 0x464e87
mov edx, dword [esi + 0x88]
dec edx
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x464ea8
push 0xfffffffffffffff9
push ebx
mov edx, eax
mov ecx, esi
call fcn.00426c90
add esp, 8
jmp 0x464eb3
test ebx, ebx
je 0x464eb3
mov dword [eax + 0x10], ebx
mov byte [eax + 1], 0xf9
mov ecx, esi
call fcn.00461d70
mov eax, dword [esi]
mov edx, dword [esi + 0x88]
cmp byte [eax + 0x49], 0
je 0x464ecf
mov eax, 0x550080
jmp 0x464ee0
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x34]
mov dword [eax + 8], edx
movsx eax, word [edi + 0x2a]
inc ecx
add ebx, 0x10
mov dword [esp + 0x44], ecx
mov dword [esp + 0x58], ebx
cmp ecx, eax
jl 0x464d40
mov ebx, dword [esp + 0x20]
mov edx, dword [edi + 0x18]
test edx, edx
je 0x465162
mov ecx, dword [esp + 0xc]
test dword [ecx + 0x1c], 0x200
jne 0x465162
push 0
call fcn.0043d030
mov ecx, dword [esp + 0x10]
add esp, 4
mov dword [esp + 0x38], eax
cmp byte [ecx + 0x49], 0
jne 0x465157
mov edi, dword [esi + 0xc]
mov ebx, dword [edi + 0x44]
lea eax, [ebx - 1]
lea ecx, [ebx + 1]
mov dword [edi + 0x44], ecx
test ebx, eax
jne 0x464f70
mov edx, dword [edi + 0x48]
lea eax, [ebx*8 + 4]
mov ecx, dword [edi]
push 0
push eax
call fcn.004055e0
add esp, 8
mov dword [edi + 0x48], eax
mov eax, dword [edi + 0x48]
test eax, eax
je 0x464f7e
mov dword [eax + ebx*4], 0xffffffff
mov edi, dword [esi + 0xc]
not ebx
mov dword [esp + 0x44], ebx
mov ecx, dword [edi + 0x44]
mov dword [esp + 0x28], ecx
lea eax, [ecx + 1]
mov dword [edi + 0x44], eax
lea eax, [ecx - 1]
test ecx, eax
jne 0x464fb9
mov edx, dword [edi + 0x48]
lea eax, [ecx*8 + 4]
mov ecx, dword [edi]
push 0
push eax
call fcn.004055e0
mov ecx, dword [esp + 0x30]
add esp, 8
mov dword [edi + 0x48], eax
mov eax, dword [edi + 0x48]
test eax, eax
je 0x464fc7
mov dword [eax + ecx*4], 0xffffffff
mov edx, dword [esp + 0x14]
not ecx
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x28], ecx
inc dword [edx + 0x3c]
mov dword [edx + 0x38], eax
mov edx, dword [esp + 0x38]
mov edi, dword [edx]
dec edi
test edi, edi
jle 0x46501d
mov esi, dword [esp + 0x44]
lea eax, [edi + edi*2]
lea ebx, [edx + 4]
lea ebx, [ebx + eax*8]
push 0
push esi
push dword [ebx]
push dword [esp + 0x20]
call fcn.00444130
dec edi
lea ebx, [ebx - 0x18]
add esp, 0x10
test edi, edi
jg 0x464ff4
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x38]
push 0x10
push ecx
push dword [edx + 4]
push dword [esp + 0x20]
call fcn.00443af0
mov eax, dword [esi + 0xc]
add esp, 0x10
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x46504a
lea eax, [ebx*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
mov dword [ebx + 0x38], 0
push dword [eax]
push 0x53bb7c
push dword [esp + 0x14]
call fcn.00407470
mov ecx, dword [esi + 0xc]
add esp, 0xc
mov edx, dword [esi + 0x88]
mov edi, eax
cmp dword [ecx + 0x30], edx
jg 0x465095
push 0
push 3
push 0
mov edx, 0x61
mov ecx, esi
call fcn.00426240
add esp, 0xc
mov edx, eax
jmp 0x4650cb
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
je 0x4650e3
push edi
mov edx, 0xfffffff9
call fcn.00426b10
add esp, 4
jmp 0x46511a
test edx, edx
jns 0x4650ee
mov edx, dword [esi + 0x88]
dec edx
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x46510f
push 0xfffffffffffffff9
push edi
mov edx, eax
mov ecx, esi
call fcn.00426c90
add esp, 8
jmp 0x46511a
test edi, edi
je 0x46511a
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xf9
mov ecx, esi
call fcn.00461d70
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x465140
mov eax, dword [esp + 0x28]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
mov ecx, ebx
call fcn.00441070
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x465162
mov edx, eax
call fcn.0043dac0
cmp byte [esp + 0x2f], 0x71
je 0x465853
mov eax, dword [esi + 0xc]
movsx edx, word [edi + 0x2a]
mov ecx, dword [esi + 0x88]
dec edx
cmp dword [eax + 0x30], ecx
jg 0x46519c
push 3
push edx
push dword [esp + 0x28]
mov edx, 0x60
mov ecx, esi
call fcn.00426240
mov ebx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x4651ce
mov edi, dword [esp + 0x34]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x60
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x88]
test eax, eax
jle 0x4651e8
lea ecx, [eax + eax*4]
mov edx, 0x80
mov eax, dword [esi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
mov ecx, dword [edi + 8]
mov dword [esp + 0x24], ecx
test ecx, ecx
je 0x465853
mov edx, dword [esp + 0x5c]
mov eax, 8
sub eax, edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x58], eax
nop word [eax + eax]
mov ebx, dword [esi + 0xc]
mov edi, dword [ebx + 0x44]
lea eax, [edi + 1]
mov dword [ebx + 0x44], eax
lea eax, [edi - 1]
test edi, eax
jne 0x465245
mov edx, dword [ebx + 0x48]
lea eax, [edi*8 + 4]
mov ecx, dword [ebx]
push 0
push eax
call fcn.004055e0
mov ecx, dword [esp + 0x2c]
add esp, 8
mov edx, dword [esp + 0x38]
mov dword [ebx + 0x48], eax
mov eax, dword [ebx + 0x48]
test eax, eax
je 0x465253
mov dword [eax + edi*4], 0xffffffff
not edi
cmp dword [esp + 0x30], ecx
je 0x46583b
push dword [esp + 0x48]
lea eax, [esp + 0x6c]
mov edx, ecx
push dword [esp + 0x64]
mov ecx, dword [esp + 0x1c]
push eax
push 0
push 0
push dword [esp + 0x34]
call fcn.00454e40
mov ecx, dword [esi + 0xc]
add esp, 0x18
mov ebx, dword [esp + 0x38]
mov edx, dword [esi + 0x88]
add ebx, dword [esp + 0x58]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x60], eax
cmp dword [ecx + 0x30], edx
jg 0x4652ba
push 0
push 1
push ebx
mov edx, 0x50
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x4652ec
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x50
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x24]
mov ebx, dword [esi + 0x88]
movzx edx, word [eax + 0x34]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x44], edx
cmp dword [eax + 0x30], ebx
jg 0x465322
push dword [esp + 0x48]
mov edx, 0x1e
mov ecx, esi
push edi
push dword [esp + 0x40]
call fcn.00426240
add esp, 0xc
mov ebx, eax
jmp 0x465354
mov edx, dword [esp + 0x38]
lea eax, [ebx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x1e
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
mov edx, dword [esp + 0x44]
cmp byte [eax + 0x49], 0
jne 0x46536f
mov eax, dword [esi + 0x58]
lea ecx, [ebx + ebx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
push 0x53bb9c
mov edx, 3
mov ecx, esi
call fcn.004262f0
mov eax, dword [esi + 0xc]
add esp, 4
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4653a8
push 3
push 3
push 7
mov edx, 0x5d
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x4653de
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x5d
mov dword [eax + ecx*4 + 4], 7
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
push 0x53bba4
mov edx, 4
mov ecx, esi
call fcn.004262f0
mov eax, dword [esi + 0xc]
add esp, 4
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x465417
push 3
push 3
push 4
mov edx, 0x5d
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x46544d
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x5d
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x24]
mov edx, 4
mov ecx, esi
push dword [eax]
call fcn.004262f0
mov ecx, dword [esi + 0xc]
add esp, 4
mov edx, dword [esi + 0x88]
mov dword [esp + 0x44], eax
cmp dword [ecx + 0x30], edx
jg 0x46548b
push 3
push 3
push 4
mov edx, 0x5d
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x4654c1
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x5d
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, esi
call fcn.00461d70
mov ecx, dword [esi]
mov edx, dword [esi + 0x88]
mov dword [esp + 0x78], eax
cmp byte [ecx + 0x49], 0
je 0x4654e1
mov ecx, 0x550080
jmp 0x4654f2
test ebx, ebx
lea eax, [edx - 1]
cmovns eax, ebx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*4]
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x24]
cmp byte [ecx + 0x36], 0
je 0x4657d6
mov edi, dword [esi + 0xc]
mov edx, dword [edi + 0x44]
mov dword [esp + 0x28], edx
lea eax, [edx + 1]
mov dword [edi + 0x44], eax
lea eax, [edx - 1]
test edx, eax
jne 0x46553c
mov ecx, dword [edi]
lea eax, [edx*8 + 4]
mov edx, dword [edi + 0x48]
push 0
push eax
call fcn.004055e0
mov edx, dword [esp + 0x30]
add esp, 8
mov ecx, dword [esp + 0x24]
mov dword [edi + 0x48], eax
mov eax, dword [edi + 0x48]
test eax, eax
je 0x46554a
mov dword [eax + edx*4], 0xffffffff
xor eax, eax
not edx
xor ebx, ebx
mov dword [esp + 0x28], edx
cmp ax, word [ecx + 0x32]
jae 0x4655e8
mov edi, dword [esp + 0x48]
mov eax, dword [ecx + 4]
movsx ecx, word [eax + ebx*2]
test ecx, ecx
js 0x46557d
mov eax, dword [esp + 0x34]
add ecx, ecx
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0xc], 0
jne 0x4655d6
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4655a4
push 0
push edx
push edi
mov edx, 0x32
mov ecx, esi
call fcn.00426240
mov edx, dword [esp + 0x34]
add esp, 0xc
jmp 0x4655d6
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x24]
inc ebx
inc edi
movzx eax, word [ecx + 0x32]
cmp ebx, eax
jl 0x465562
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x88]
cmp dword [eax + 0x30], edi
jg 0x465611
push 0
push 0
push dword [esp + 0x40]
mov edx, 7
mov ecx, esi
call fcn.00426240
add esp, 0xc
mov edi, eax
jmp 0x465647
mov edx, dword [esp + 0x38]
lea eax, [edi + 1]
mov dword [esi + 0x88], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 7
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
mov ebx, dword [esp + 0x28]
cmp dword [eax + 0x30], ecx
jg 0x46566f
push 0
push ebx
push 0
mov edx, 0xd
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x4656a1
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
mov edx, dword [esi + 0x88]
cmp byte [eax + 0x49], 0
je 0x4656b6
mov eax, 0x550080
jmp 0x4656c7
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 0x88]
movzx edi, word [eax + 0x32]
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], edx
jg 0x4656fc
push dword [esp + 0x48]
mov edx, 0x27
mov ecx, esi
push ebx
push dword [esp + 0x40]
call fcn.00426240
add esp, 0xc
mov edx, eax
jmp 0x465736
mov ebx, dword [esp + 0x38]
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x28]
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [esp + 0x48]
mov dword [eax + ecx*4 + 0xc], ebx
mov ebx, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x27
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
jne 0x46574d
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
push 0x53bbbc
mov edx, 3
mov ecx, esi
call fcn.004262f0
mov eax, dword [esi + 0xc]
add esp, 4
mov ecx, dword [esi + 0x88]
mov edx, dword [esp + 0x44]
cmp dword [eax + 0x30], ecx
jg 0x465789
push 0
push edx
push 0
mov edx, 0xd
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x4657bb
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x4657d6
lea eax, [ebx*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
mov ecx, dword [esp + 0x78]
mov edx, dword [esi + 0x88]
test ecx, ecx
jns 0x4657e7
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x4657f6
mov eax, 0x550080
jmp 0x4657ff
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov edi, dword [esp + 0x68]
mov dword [eax + 8], edx
test edi, edi
je 0x465833
mov ebx, dword [esp + 0x14]
mov edx, dword [ebx + 8]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x46582c
lea eax, [edi*4 + 4]
sub ecx, eax
mov eax, dword [edx + 0x88]
mov dword [ecx], eax
mov ecx, ebx
call fcn.00441070
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 0x14]
inc edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x38], edx
test ecx, ecx
jne 0x465210
mov ebx, dword [esp + 0x20]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
mov edi, dword [esp + 0x18]
cmp dword [eax + 0x30], ecx
jg 0x46587d
push 0
push edi
push dword [esp + 0x28]
mov edx, 7
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x4658ab
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 7
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
lea ecx, [edi - 1]
mov edx, dword [esi + 0x88]
cmp byte [eax + 0x49], 0
je 0x4658c3
mov eax, 0x550088
jmp 0x4658d6
test ecx, ecx
mov eax, edx
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea eax, [eax + ecx*4]
add eax, 0xfffffff4
cmp byte [esp + 0x2f], 0x71
mov dword [eax], edx
je 0x465aa4
push 0x53bbd8
mov edx, 2
mov ecx, esi
call fcn.004262f0
mov eax, dword [esp + 0x38]
add esp, 4
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x465aa4
mov ecx, dword [esp + 0x30]
mov eax, 8
mov dword [esp + 0x28], eax
cmp ecx, ebx
je 0x465a94
mov edx, dword [esp + 0x5c]
mov ecx, dword [esi + 0x88]
add edx, 0xfffffff8
add edx, eax
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x465948
push 0
push 3
push edx
mov edx, 0x64
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x46597a
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x64
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x88]
mov edx, dword [esp + 0x28]
cmp dword [eax + 0x30], edi
jg 0x4659a4
push 3
push 0
push edx
mov edx, 0x35
mov ecx, esi
call fcn.00426240
add esp, 0xc
mov edi, eax
jmp 0x4659d6
lea eax, [edi + 1]
mov dword [esi + 0x88], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x35
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x88]
test eax, eax
jle 0x4659f0
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
push dword [ebx]
mov edx, 4
mov ecx, esi
call fcn.004262f0
mov eax, dword [esi + 0xc]
add esp, 4
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x465a26
push 3
push 2
push 4
mov edx, 0x5d
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x465a5c
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x5d
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, esi
call fcn.00461d70
mov eax, dword [esi]
mov edx, dword [esi + 0x88]
cmp byte [eax + 0x49], 0
je 0x465a78
mov eax, 0x550080
jmp 0x465a89
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x30]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x28]
mov ebx, dword [ebx + 0x14]
inc eax
mov dword [esp + 0x28], eax
test ebx, ebx
jne 0x465913
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
test eax, eax
jne 0x464ae0
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
inc ebx
mov dword [esp + 0x1c], ebx
cmp ebx, dword [eax + 0x14]
jl 0x464720
mov edi, 1
push ecx
push 0x53fa9c
mov edx, 7
mov ecx, esi
call fcn.00426910
mov edx, eax
add esp, 8
test edx, edx
je 0x465b18
sub edi, dword [esp + 0x64]
mov ecx, 0x53ced4
mov eax, dword [0x53d164]
test eax, eax
mov dword [edx + 8], edi
cmovne ecx, eax
mov byte [edx + 0x29], 0xff
mov dword [edx + 0x38], 0x53bbf8
mov byte [edx + 0x65], 0xff
mov dword [edx + 0x74], ecx
mov eax, dword [esi]
mov ecx, dword [esi + 0x88]
sub ecx, 2
cmp byte [eax + 0x49], 0
mov eax, 0x550080
jne 0x465b31
mov eax, dword [esi + 0x58]
mov dword [eax + 0xc], ecx
jmp 0x46246d
test ecx, ecx
jne 0x465b7c
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebx]
cmp byte [ecx + 0x9d], 0
jne 0x465b63
lea edx, [ebx + 4]
call fcn.00467920
test eax, eax
je 0x465b63
inc dword [ebx + 0x24]
mov dword [ebx + 0xc], eax
jmp 0x46246d
mov eax, dword [ebx]
mov ecx, esi
movzx edx, byte [eax + 0x46]
mov edx, dword [edx*8 + 0x53d1b0]
call fcn.00461c30
jmp 0x46246d
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4e]
and al, 5
cmp al, 1
je 0x46246d
mov esi, dword [0x53d1b0]
mov edi, 0x53d1b0
test esi, esi
je 0x465c36
mov bh, byte [ecx]
movzx eax, bh
movzx ecx, byte [eax + 0x53ea00]
mov dword [esp + 0x78], ecx
nop word [eax + eax]
movzx eax, byte [esi]
mov edx, dword [esp + 0x10]
movzx eax, byte [eax + 0x53ea00]
sub ecx, eax
jne 0x465bf7
mov bl, bh
sub esi, edx
test bl, bl
je 0x465c07
movzx eax, byte [esi + edx + 1]
inc edx
movzx ecx, byte [eax + 0x53ea00]
mov bl, byte [edx]
movzx eax, bl
movzx eax, byte [eax + 0x53ea00]
sub eax, ecx
je 0x465bd6
mov esi, dword [edi + 8]
add edi, 8
test esi, esi
je 0x465c32
mov ecx, dword [esp + 0x78]
jmp 0x465bc0
mov cl, byte [edi + 4]
mov edx, 2
test cl, cl
movzx eax, cl
cmovne edx, eax
mov eax, dword [esp + 0xc]
mov ecx, eax
mov byte [eax + 0x46], dl
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 0xc]
mov byte [eax + 0x4d], dl
cmp dword [edi], 0
jne 0x4665fa
mov ecx, dword [esp + 0x10]
push ecx
push 0x53bc44
push dword [esp + 0x1c]
call fcn.004081e0
add esp, 0xc
jmp 0x46246d
mov eax, dword [esi + 0x98]
mov edx, dword [esp + 0x24]
bts eax, edx
mov edi, dword [ebx + 8]
mov dword [esi + 0x98], eax
cmp edx, 1
je 0x465c8a
mov eax, dword [esi]
mov ecx, dword [esp + 0x34]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 4]
cmp byte [eax + 9], 0
je 0x465c8a
mov eax, dword [esi + 0x9c]
bts eax, edx
mov dword [esi + 0x9c], eax
cmp dword [esp + 0x10], 0
je 0x465ce2
test byte [ebx + 5], 8
jne 0x465ce2
push ecx
push 0x5401ac
mov edx, 2
mov ecx, esi
call fcn.00426910
mov ebx, dword [esp + 0x18]
lea edx, [esp + 0x6c]
mov esi, eax
mov dword [esp + 0x6c], 0
mov eax, dword [esp + 0x2c]
add esp, 8
mov ecx, ebx
mov dword [esi + 4], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edi
call fcn.00408cc0
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0xc]
mov dword [esi + 0x20], ecx
jmp 0x462475
push ecx
push 0x53d1a4
mov edx, 3
mov ecx, esi
call fcn.00426910
mov ecx, dword [esp + 0x2c]
add esp, 8
mov dword [eax + 4], ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x20], edi
and dword [esi + 0x94], 0xffffffdf
jmp 0x46246d
mov eax, dword [esp + 0x4c]
xor edi, edi
mov dword [eax], 1
mov ecx, 1
cmp edi, ecx
ja 0x465d04
mov eax, dword [edi*4 + 0x53ee34]
inc edi
test eax, eax
je 0x465d04
mov edx, ecx
mov ecx, esi
push eax
call fcn.004262f0
mov eax, dword [esi + 0xc]
add esp, 4
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x465d63
push 0
push 1
push 1
mov edx, 0x4e
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x465d1c
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x4e
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x465d1c
mov eax, dword [esp + 0x20]
mov ebx, 0xa
cmp dword [eax], 0
cmovne ebx, dword [esp + 0x24]
xor edx, edx
mov dword [esp + 0x30], ebx
test ecx, ecx
je 0x465e53
mov bl, byte [ecx]
mov edx, ecx
movzx eax, bl
movzx ecx, byte [eax + 0x53ea00]
mov dword [esp + 0x1c], ecx
lea eax, [ecx - 0x66]
test eax, eax
jne 0x465e90
mov edi, 0x53b9f0
mov bh, bl
sub edi, dword [esp + 0x10]
test bh, bh
je 0x465e83
movzx eax, byte [edx + edi + 1]
inc edx
movzx ecx, byte [eax + 0x53ea00]
mov bh, byte [edx]
movzx eax, bh
movzx eax, byte [eax + 0x53ea00]
sub eax, ecx
je 0x465de2
mov ecx, dword [esp + 0x1c]
movzx eax, byte [0x53ba98]
mov edx, dword [esp + 0x10]
movzx eax, byte [eax + 0x53ea00]
sub ecx, eax
jne 0x465e4d
mov edi, 0x53ba98
sub edi, edx
test bl, bl
je 0x465ede
movzx eax, byte [edi + edx + 1]
inc edx
movzx ecx, byte [eax + 0x53ea00]
mov bl, byte [edx]
movzx eax, bl
movzx eax, byte [eax + 0x53ea00]
sub eax, ecx
je 0x465e28
xor edx, edx
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x4c]
mov dword [eax], 3
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x465ee8
push 1
push edx
push ebx
mov edx, 8
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x465f16
test eax, eax
jne 0x465e8c
lea edx, [eax + 1]
jmp 0x465e4f
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
lea eax, [ecx - 0x72]
test eax, eax
jne 0x465e0b
mov edi, 0x53bc60
mov bh, bl
sub edi, edx
test bh, bh
je 0x465ece
movzx eax, byte [edi + edx + 1]
inc edx
movzx ecx, byte [eax + 0x53ea00]
mov bh, byte [edx]
movzx eax, bh
movzx eax, byte [eax + 0x53ea00]
sub eax, ecx
je 0x465ea8
jmp 0x465e07
test eax, eax
jne 0x465e07
lea edx, [eax + 2]
jmp 0x465e4f
mov edx, 3
jmp 0x465e4f
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 8
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 1
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x465f3e
push 0
push 3
push 1
mov edx, 0x4e
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x46246d
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4], 0x4e
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x46246d
test ecx, ecx
je 0x465f9e
lea edx, [esp + 0x64]
mov dword [esp + 0x64], 0
call fcn.00408cc0
push dword [esp + 0x64]
push dword [esp + 0x10]
call fcn.00490b30
add esp, 8
mov eax, dword [esp + 0xc]
cmp dword [eax + 0xe4], 0x490a40
jne 0x462492
mov eax, dword [eax + 0xe8]
jmp 0x462460
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x465fd2
push eax
call dword [0x54a474]
add esp, 4
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x51], 0
jne 0x465fe7
mov ecx, eax
call fcn.00416e10
mov eax, dword [esp + 0xc]
xor esi, esi
cmp dword [eax + 0x14], esi
jle 0x46601f
xor edi, edi
mov eax, dword [eax + 0x10]
mov eax, dword [eax + edi + 4]
test eax, eax
je 0x466012
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0xd0]
push dword [eax + 0x2c]
call dword [0x54a4b8]
add esp, 4
mov eax, dword [esp + 0xc]
inc esi
add edi, 0x10
cmp esi, dword [eax + 0x14]
jl 0x465ff0
cmp byte [eax + 0x51], 0
jne 0x466030
mov ecx, eax
call fcn.00416e60
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x46246d
push eax
call dword [0x54a47c]
add esp, 4
jmp 0x46246d
test ecx, ecx
je 0x466072
lea edx, [esp + 0x64]
mov dword [esp + 0x64], 0
call fcn.00408cc0
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x18], ecx
test cl, 2
je 0x46246d
jmp 0x46607a
mov dword [esp + 0x18], 0xfffe
cmp dword [esp + 0x38], 0
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x28]
mov dword [esp + 0x20], edx
lea eax, [edx + 1]
mov dword [ecx + 0x28], eax
je 0x46609e
mov eax, dword [esp + 0x24]
mov edi, eax
mov dword [esp + 0x1c], edi
jmp 0x4660b6
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x14]
mov eax, dword [esp + 0x24]
dec edi
mov dword [esp + 0x1c], edi
cmp eax, edi
jg 0x466415
mov ecx, eax
mov ebx, 1
mov eax, dword [esp + 0x34]
rol ebx, cl
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x50], ebx
nop dword [eax + eax]
cmp ecx, 1
je 0x4663fb
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x78]
test eax, eax
cmovne ecx, eax
mov eax, dword [ecx + 0x5c]
test eax, ebx
jne 0x4660f6
mov edi, dword [esp + 0x40]
bts eax, edi
mov dword [ecx + 0x5c], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x34]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 0xc]
mov edi, dword [eax + 0x10]
mov dword [esp + 0x64], edi
test edi, edi
je 0x4663ef
nop dword [eax]
nop dword [eax + eax]
mov edi, dword [edi + 8]
test dword [edi + 0x24], 0x100
je 0x4663d9
mov ax, word [edi + 0x2c]
add ax, 0x2e
movzx ebx, ax
mov eax, dword [edi + 8]
test eax, eax
je 0x466153
test byte [eax + 0x38], 0x80
je 0x4661d1
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x466142
test bx, bx
je 0x4661d1
mov ecx, dword [esp + 0x14]
push 0x68
push edi
push dword [esp + 0x48]
call fcn.0045b4e0
mov eax, dword [esi + 0xc]
add esp, 0xc
mov ecx, dword [esi + 0x88]
movsx edx, bx
mov ebx, dword [esp + 0x18]
and ebx, 1
add ebx, 2
add ebx, ecx
cmp dword [eax + 0x30], ecx
jg 0x46619f
push edx
push ebx
push dword [esp + 0x28]
mov edx, 0x22
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x4661d1
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x20]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x22
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0xc]
push dword [edi]
mov edx, dword [esp + 0x38]
mov eax, dword [ecx + 0x10]
push dword [eax + edx]
push 0x53bc68
push ecx
call fcn.00407470
add esp, 0x10
mov edi, eax
test byte [esp + 0x18], 1
je 0x466329
mov ecx, dword [esp + 0x14]
mov al, byte [ecx + 0x13]
test al, al
jne 0x466211
mov eax, dword [esp + 0x4c]
inc dword [eax]
mov ebx, dword [eax]
jmp 0x466220
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov ebx, dword [ecx + eax*4 + 0x15c]
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x88]
cmp dword [eax + 0x30], edx
jg 0x466246
push 0
push ebx
push 0
mov edx, 0x61
mov ecx, esi
call fcn.00426240
add esp, 0xc
mov edx, eax
jmp 0x46627c
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
je 0x466294
push edi
mov edx, 0xfffffff9
call fcn.00426b10
add esp, 4
jmp 0x4662cb
test edx, edx
jns 0x46629f
mov edx, dword [esi + 0x88]
dec edx
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x4662c0
push 0xfffffffffffffff9
push edi
mov edx, eax
mov ecx, esi
call fcn.00426c90
add esp, 8
jmp 0x4662cb
test edi, edi
je 0x4662cb
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xf9
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4662f2
push 0
push 1
push ebx
mov edx, 0x4e
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x4663d5
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x4e
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4663d5
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x88]
cmp dword [eax + 0x30], edx
jg 0x466350
push 0
push 0
push 0
mov edx, 0x88
mov ecx, esi
call fcn.00426240
add esp, 0xc
mov edx, eax
jmp 0x466386
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x88
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
je 0x46639e
push edi
mov edx, 0xfffffff9
call fcn.00426b10
add esp, 4
jmp 0x4663d5
test edx, edx
jns 0x4663a9
mov edx, dword [esi + 0x88]
dec edx
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x4663ca
push 0xfffffffffffffff9
push edi
mov edx, eax
mov ecx, esi
call fcn.00426c90
add esp, 8
jmp 0x4663d5
test edi, edi
je 0x4663d5
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xf9
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x64]
mov edi, dword [edi]
mov dword [esp + 0x64], edi
test edi, edi
jne 0x466120
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
inc ecx
rol ebx, 1
add eax, 0x10
mov dword [esp + 0x40], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x50], ebx
cmp ecx, edi
jle 0x4660d0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46643d
push 0
push 0
push 0
mov edx, 0x97
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x46246d
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x97
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
jmp 0x465f64
test ecx, ecx
je 0x466489
lea edx, [esp + 0x68]
call fcn.00408bb0
test eax, eax
jne 0x466489
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.00404ce0
add esp, 8
call fcn.0048eb40
test eax, eax
je 0x46649e
or edi, 0xffffffff
or ebx, edi
push ebx
push edi
jmp 0x462463
mov eax, dword [0x550228]
test eax, eax
je 0x4664b6
push eax
call dword [0x54a474]
mov eax, dword [0x550228]
add esp, 4
mov edi, dword [0x550230]
mov ebx, dword [0x550234]
test eax, eax
je 0x4664d0
push eax
call dword [0x54a47c]
add esp, 4
push ebx
push edi
jmp 0x462463
test ecx, ecx
je 0x466511
lea edx, [esp + 0x68]
call fcn.00408bb0
test eax, eax
jne 0x466511
cmp dword [esp + 0x6c], eax
jl 0x466511
mov eax, dword [esp + 0x68]
jg 0x4664f8
test eax, eax
jb 0x466511
mov ecx, 8
and eax, 0x7fffffff
cmp eax, ecx
cmova eax, ecx
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x90], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x90]
jmp 0x462460
test ecx, ecx
je 0x4665eb
lea edx, [esp + 0x64]
mov dword [esp + 0x64], 0
call fcn.00408cc0
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x64]
mov eax, dword [ecx + 0xc]
test edi, edi
jle 0x4665a0
test eax, eax
je 0x46655d
push eax
call dword [0x54a474]
mov ecx, dword [esp + 0x10]
add esp, 4
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x184], 0x490100
mov dword [ecx + 0x188], ecx
mov dword [ecx + 0x18c], 0
mov dword [ecx + 0x1b4], 0
test eax, eax
je 0x466593
push eax
call dword [0x54a47c]
mov ecx, dword [esp + 0x10]
add esp, 4
mov dword [ecx + 0x1b4], edi
mov eax, edi
jmp 0x462460
test eax, eax
je 0x4665b5
push eax
call dword [0x54a474]
mov ecx, dword [esp + 0x10]
add esp, 4
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x184], 0
mov dword [ecx + 0x188], 0
mov dword [ecx + 0x18c], 0
mov dword [ecx + 0x1b4], 0
test eax, eax
je 0x4665ef
push eax
call dword [0x54a47c]
add esp, 4
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x1b4]
jmp 0x462460
mov eax, ecx
jmp 0x462471
mov ecx, dword [esp + 0x54]
cmp ecx, dword [eax + 0x128]
jb 0x466629
cmp ecx, dword [eax + 0x12c]
jae 0x466629
mov eax, dword [eax + 0x124]
mov dword [ecx], eax
mov eax, dword [esp + 0xc]
mov dword [eax + 0x124], ecx
jmp 0x466636
push ecx
call fcn.00405050
add esp, 4
mov eax, dword [esp + 0xc]
test ebx, ebx
je 0x4666a1
cmp dword [eax + 0x1d0], 0
je 0x466661
mov edx, ebx
mov ecx, eax
call fcn.004050c0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x88]
xor ecx, esp
call fcn.004e5962
mov esp, ebp
pop ebp
ret
cmp ebx, dword [eax + 0x128]
jb 0x466698
cmp ebx, dword [eax + 0x12c]
jae 0x466698
mov eax, dword [eax + 0x124]
mov dword [ebx], eax
mov eax, dword [esp + 0xc]
mov dword [eax + 0x124], ebx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x88]
xor ecx, esp
call fcn.004e5962
mov esp, ebp
pop ebp
ret
push ebx
call fcn.00405050
add esp, 4
mov ecx, dword [esp + 0x94]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004e5962
mov esp, ebp
pop ebp
ret