Function at 0x461850
Capabilities:
Execute anti-debugging instructions
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x626b8b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc4
push ebx
push esi
push edi
rdtsc
lea ebx, [0xa254c8]
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov eax, dword [0x647e90]
mov ebx, dword [0x647e94]
mov esi, dword [ebx*4 + 0x679c9c]
lea ecx, [eax + eax]
mov edx, ecx
xor eax, eax
add edx, esi
mov esi, dword [0x675a90]
mov ax, word [edx + esi]
test eax, eax
mov dword [0xa23350], eax
jne 0x461ac7
mov eax, dword [0x647e90]
add ecx, 0xfffffffe
or esi, 0xffffffff
mov dword [ebp - 0x18], ecx
lea edx, [eax + eax + 2]
mov edi, 1
mov dword [ebp - 0x28], edx
lea ecx, [ebx*4 + 0x679ca0]
lea edx, [ebx*4 + 0x679c98]
sub eax, ebx
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], eax
cmp esi, edi
mov dword [ebp - 0x14], esi
jge 0x461958
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
lea ecx, [esi + ebx]
add eax, ecx
mov dword [ebp - 0x30], eax
test ecx, ecx
jl 0x461940
cmp ecx, 0x300
jge 0x461940
test eax, eax
jl 0x461940
cmp eax, 0x400
jge 0x461940
mov eax, dword [ebp - 0x20]
mov esi, edx
mov edi, dword [eax]
xor eax, eax
add esi, edi
mov edi, dword [0x675a90]
mov ax, word [esi + edi]
test eax, eax
mov dword [0xa23350], eax
jne 0x461ac1
mov esi, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x14]
add edx, 2
inc ebx
inc eax
cmp ebx, edi
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x30], eax
jl 0x4618fe
mov ebx, dword [0x647e94]
cmp esi, edi
mov dword [ebp - 0x14], esi
jge 0x4619bb
mov ecx, dword [ebp - 0x20]
lea edx, [esi + ebx]
test edx, edx
jl 0x4619ac
cmp edx, 0x300
jge 0x4619ac
mov eax, dword [ebp - 0x1c]
add eax, ebx
add eax, edi
test eax, eax
jl 0x4619ac
cmp eax, 0x400
jge 0x4619ac
mov eax, dword [ebp - 0x28]
mov edi, dword [0x675a90]
mov ebx, dword [ecx]
add edi, eax
xor eax, eax
mov ax, word [edi + ebx]
test eax, eax
mov dword [0xa23350], eax
jne 0x461ac1
mov edi, dword [ebp - 0x24]
mov ebx, dword [0x647e94]
mov eax, dword [ebp - 0x14]
add ecx, 4
inc eax
inc edx
cmp eax, edi
mov dword [ebp - 0x14], eax
jl 0x461965
cmp edi, esi
mov dword [ebp - 0x14], edi
jle 0x461a25
mov ecx, dword [ebp - 0x1c]
lea eax, [ebx + edi]
mov dword [ebp - 0x34], eax
lea edx, [ecx + eax]
mov ecx, dword [ebp - 0x28]
test eax, eax
jl 0x461a10
cmp eax, 0x300
jge 0x461a10
test edx, edx
jl 0x461a10
cmp edx, 0x400
jge 0x461a10
mov eax, dword [ebp - 0x2c]
mov edi, ecx
mov ebx, dword [eax]
xor eax, eax
add edi, ebx
mov ebx, dword [0x675a90]
mov ax, word [edi + ebx]
test eax, eax
mov dword [0xa23350], eax
jne 0x461ac1
mov eax, dword [ebp - 0x34]
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x14]
sub ecx, 2
dec ebx
dec edx
cmp ebx, esi
mov dword [ebp - 0x14], ebx
jg 0x4619d1
mov ebx, dword [0x647e94]
cmp edi, esi
mov dword [ebp - 0x14], edi
jle 0x461a84
mov ecx, dword [ebp - 0x2c]
lea edx, [ebx + edi]
test edx, edx
jl 0x461a75
cmp edx, 0x300
jge 0x461a75
mov eax, dword [ebp - 0x1c]
add eax, esi
add eax, ebx
test eax, eax
jl 0x461a75
cmp eax, 0x400
jge 0x461a75
mov edi, dword [ecx]
mov ebx, dword [ebp - 0x18]
add edi, ebx
mov ebx, dword [0x675a90]
xor eax, eax
mov ax, word [edi + ebx]
mov ebx, dword [0x647e94]
test eax, eax
mov dword [0xa23350], eax
jne 0x461ac7
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
sub ecx, 4
dec eax
dec edx
cmp eax, esi
mov dword [ebp - 0x14], eax
jg 0x461a32
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x2c]
mov eax, 2
inc edi
add ecx, eax
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x28], ecx
mov ecx, 4
add edx, ecx
dec esi
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x20]
sub edx, ecx
mov ecx, dword [ebp - 0x18]
sub ecx, eax
cmp esi, 0xfffffff6
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x18], ecx
jge 0x4618e9
jmp 0x461ac7
mov ebx, dword [0x647e94]
mov edx, dword [0x675a88]
mov eax, dword [0x675a8c]
cmp edx, eax
jge 0x461b1f
lea esi, [edx*4 + 0x679c9c]
mov ecx, dword [0x675a84]
mov edi, dword [0x675a80]
mov ebx, dword [0x675a90]
sub ecx, edi
xor eax, eax
add esi, 4
lea edi, [ebx + edi*2]
mov ebx, dword [esi - 4]
lea ecx, [ecx + ecx + 2]
add edi, ebx
mov ebx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, ebx
and ecx, 3
inc edx
rep stosb byte es:[edi], al
cmp edx, dword [0x675a8c]
jl 0x461add
mov ebx, dword [0x647e94]
mov ecx, dword [0x647e90]
cmp ecx, 0x40
jge 0x461b36
mov dword [0x675a80], 0
jmp 0x461b3f
lea edx, [ecx - 0x40]
mov dword [0x675a80], edx
cmp ebx, 0x40
jge 0x461b50
mov dword [0x675a88], 0
jmp 0x461b58
lea eax, [ebx - 0x40]
mov dword [0x675a88], eax
mov eax, dword [0xd1cbf0]
lea edx, [eax - 0x41]
cmp ecx, edx
jle 0x461b6c
dec eax
mov dword [0x675a84], eax
jmp 0x461b75
add ecx, 0x40
mov dword [0x675a84], ecx
mov eax, dword [0xd1cd04]
lea ecx, [eax - 0x41]
cmp ebx, ecx
jle 0x461b89
dec eax
mov dword [0x675a8c], eax
jmp 0x461b92
add ebx, 0x40
mov dword [0x675a8c], ebx
mov edx, dword [0xa4f194]
mov ecx, dword [0xa4f18c]
mov ebx, dword [0xa4f190]
mov esi, dword [0xa4f188]
sub edx, ecx
mov edi, dword [0xa4f19c]
sub edx, 8
sub ebx, esi
sub ebx, 0xd
mov dword [ebp - 0x3c], edx
lea eax, [edx + 0x60]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x28], eax
lea ecx, [eax + eax*4]
shl ecx, 3
sub ecx, eax
cmp eax, edx
lea esi, [ebx + ecx*4]
mov ecx, dword [0x6456c4]
lea ecx, [edi + ecx + 0x600]
mov dword [0x723034], ecx
jl 0x461e02
lea eax, [esi + esi*2]
lea esi, [esi + esi*2]
shl eax, 2
shl esi, 3
lea edx, [ebx + 0x27]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x38], esi
mov edi, dword [0xa4f17c]
add esi, edi
mov edi, dword [0xa4f2b8]
add eax, edi
mov edi, dword [0xa4f198]
mov dword [0x8a314c], eax
mov eax, dword [ebp - 0x28]
and eax, 1
shl eax, 5
add eax, edi
mov edi, dword [0x6456c0]
add eax, edi
mov edi, ebx
cmp ebx, edx
mov dword [0x723030], eax
mov dword [ebp - 0x34], edi
jge 0x461dd2
mov edx, dword [ebp - 0x28]
test edx, edx
jl 0x461da9
test edi, edi
jl 0x461da9
test dword [esi], 0x4000000
je 0x461c86
mov edx, dword [esi + 4]
dec edx
mov dword [ebp - 0x34], edx
js 0x461c86
mov edx, dword [ebp - 0x28]
push 1
push esi
push edx
push edi
push ecx
push eax
mov eax, dword [ebp - 0x34]
push eax
call fcn.0045fd20
mov ecx, dword [0x723034]
mov eax, dword [0x723030]
add esp, 0x1c
mov edx, dword [0x8a314c]
cmp dword [edx + 8], 0
je 0x461da9
mov ebx, dword [edx + 4]
mov edx, dword [ebx]
cmp edx, ebx
mov dword [ebp - 0x24], edx
je 0x461da6
mov edx, dword [edx + 8]
mov ebx, dword [edx]
cmp ebx, 0xe000
jb 0x461ce2
cmp ebx, 0xffff
ja 0x461ce2
mov ebx, dword [edx + 0x1c]
test ebx, ebx
je 0x461ce2
mov ebx, dword [ebp - 0x28]
push 5
push esi
push ebx
push edi
push ecx
mov ecx, dword [edx]
push eax
push ecx
call fcn.0045fd20
mov ecx, dword [0x723034]
mov eax, dword [0x723030]
add esp, 0x1c
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebx + 8]
mov edx, dword [edx]
cmp edx, 0x14000
jb 0x461d24
cmp edx, 0x17fff
ja 0x461d24
push 6
push esi
push dword [ebp - 0x28]
push edi
push ecx
push eax
push edx
call fcn.0045fd20
mov eax, dword [ebx + 8]
add esp, 0x1c
mov dword [eax + 0x274], 1
mov ecx, dword [0x723034]
mov eax, dword [0x723030]
mov ebx, dword [ebx + 8]
mov edx, dword [ebx]
cmp edx, 1
jb 0x461d71
cmp edx, 0x7fff
ja 0x461d71
cmp dword [ebx + 0x1c], 0
je 0x461d8f
cmp dword [ebx + 0x278], 0
mov ebx, dword [ebp - 0x28]
push 2
push esi
push ebx
push edi
push ecx
push eax
push edx
je 0x461d57
call fcn.0045ff10
jmp 0x461d5c
call fcn.0045fd20
mov ecx, dword [ebp - 0x24]
add esp, 0x1c
mov edx, dword [ecx + 8]
mov dword [edx + 0x274], 1
jmp 0x461d84
mov ebx, dword [ebp - 0x28]
push 2
push esi
push ebx
push edi
push ecx
push eax
push edx
call fcn.0045fd20
add esp, 0x1c
mov ecx, dword [0x723034]
mov eax, dword [0x723030]
mov edx, dword [ebp - 0x24]
mov ebx, dword [0x8a314c]
mov edx, dword [edx]
cmp edx, dword [ebx + 4]
mov dword [ebp - 0x24], edx
jne 0x461ca6
mov ebx, dword [ebp - 0x30]
mov edx, dword [0x8a314c]
add esi, 0x18
add edx, 0xc
add eax, 0x40
mov dword [0x8a314c], edx
inc edi
lea edx, [ebx + 0x27]
mov dword [0x723030], eax
cmp edi, edx
jl 0x461c41
mov dword [ebp - 0x34], edi
mov esi, dword [ebp - 0x38]
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x28]
sub esi, 0xea0
sub eax, 0x750
sub ecx, 0x10
dec edi
mov dword [ebp - 0x38], esi
cmp edi, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], eax
mov dword [0x723034], ecx
mov dword [ebp - 0x28], edi
jge 0x461c01
mov ecx, 0xd125d0
call fcn.0059bdf0
mov eax, dword [0x68f04c]
test eax, eax
je 0x461eca
mov ecx, dword [0x68f024]
mov edx, dword [0x68f028]
mov eax, dword [0x68f02c]
mov esi, dword [0x68f030]
mov dword [ebp - 0x70], ecx
mov ecx, dword [0x68f034]
mov dword [ebp - 0x6c], edx
mov edx, dword [0x68f038]
mov dword [ebp - 0x60], ecx
mov ecx, dword [0x68f03c]
mov dword [ebp - 0x5c], edx
mov edx, dword [0x68f040]
cmp eax, ecx
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x54], edx
je 0x461eca
mov eax, dword [eax]
mov ebx, dword [0xa23358]
push 4
push eax
mov ecx, dword [eax + 4]
mov esi, dword [eax + 0xc]
mov edi, dword [eax + 8]
mov edx, dword [eax]
sub ecx, ebx
push esi
add ecx, 0x1b2
push edi
push ecx
mov ecx, dword [0xa23354]
sub edx, ecx
add edx, 0x170
push edx
push 0
call fcn.0045fd20
add esp, 0x1c
lea ecx, [ebp - 0x70]
call fcn.0049a750
mov eax, dword [0x68f034]
mov ecx, dword [0x68f038]
mov edx, dword [0x68f040]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x5c], ecx
mov ecx, dword [0x68f03c]
mov dword [ebp - 0x54], edx
cmp eax, ecx
jne 0x461e61
mov ecx, dword [0x8a30f4]
test ecx, ecx
je 0x461f09
mov eax, dword [0x8a30f8]
mov edx, eax
sub edx, ecx
test edx, 0xfffffffc
je 0x461f09
push ecx
push eax
push eax
call fcn.004782c0
add esp, 0xc
mov esi, eax
mov eax, dword [0x8a30f8]
mov ecx, 0x8a30f0
push eax
push esi
call fcn.004e2bb0
mov dword [0x8a30f8], esi
mov ecx, dword [0x7e306c]
test ecx, ecx
je 0x461f48
mov eax, dword [0x7e3070]
mov edx, eax
sub edx, ecx
test edx, 0xfffffffc
je 0x461f48
push ecx
push eax
push eax
call fcn.004782c0
add esp, 0xc
mov esi, eax
mov eax, dword [0x7e3070]
mov ecx, 0x7e3068
push eax
push esi
call fcn.004e2bb0
mov dword [0x7e3070], esi
mov edi, dword [0x9831f4]
test edi, edi
je 0x461f95
mov esi, dword [0x9831f8]
mov eax, 0x88888889
mov ecx, esi
sub ecx, edi
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
je 0x461f95
push edi
push esi
push esi
call fcn.00475610
add esp, 0xc
mov esi, eax
mov eax, dword [0x9831f8]
mov ecx, 0x9831f0
push eax
push esi
call fcn.004e2bb0
mov dword [0x9831f8], esi
mov ecx, dword [0x9831e4]
test ecx, ecx
je 0x461fd4
mov eax, dword [0x9831e8]
mov edx, eax
sub edx, ecx
test edx, 0xfffffffc
je 0x461fd4
push ecx
push eax
push eax
call fcn.004782c0
add esp, 0xc
mov esi, eax
mov eax, dword [0x9831e8]
mov ecx, 0x9831e0
push eax
push esi
call fcn.004e2bb0
mov dword [0x9831e8], esi
mov ecx, dword [0x9c3274]
test ecx, ecx
je 0x462013
mov eax, dword [0x9c3278]
mov edx, eax
sub edx, ecx
test edx, 0xfffffffc
je 0x462013
push ecx
push eax
push eax
call fcn.004782c0
add esp, 0xc
mov esi, eax
mov eax, dword [0x9c3278]
mov ecx, 0x9c3270
push eax
push esi
call fcn.004e2bb0
mov dword [0x9c3278], esi
mov ecx, 0x1f
xor eax, eax
mov edi, 0xd35ea0
push 0
rep stosd dword es:[edi], eax
mov eax, dword [0xa4f008]
push 1
mov dword [0xd35ea0], 0x7c
push 0xd35ea0
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x64]
test eax, eax
jne 0x468370
mov eax, dword [0x68efdc]
mov edx, dword [0xd35ec4]
test eax, eax
mov dword [0x675a64], edx
je 0x4620db
mov ecx, dword [0x6d6a00]
xor edx, edx
mov eax, ecx
and eax, 0x400
or eax, edx
jne 0x4620e1
mov edx, dword [0x68efd4]
mov eax, dword [edx]
cmp eax, edx
mov dword [ebp - 0x30], eax
je 0x4620e1
mov esi, dword [eax + 0xc]
test esi, esi
je 0x4620c6
mov ecx, dword [eax + 0x10]
mov eax, dword [esi + 0x340]
mov edi, dword [0xa23354]
mov edx, dword [esi + 0x358]
mov ebx, dword [0xa23358]
sub eax, edi
mov edi, dword [esi + 0xe4]
mov esi, dword [esi + 0xd8]
sub edx, ebx
push edi
add edx, 0x1c2
add eax, 0x190
push esi
push edx
push eax
call fcn.0041c2a0
lea ecx, [ebp - 0x30]
call fcn.00422a90
mov ecx, dword [0x68efd4]
mov eax, dword [ebp - 0x30]
cmp eax, ecx
jne 0x462080
mov ecx, dword [0x6d6a00]
mov eax, dword [0x8a3120]
test eax, eax
je 0x463751
mov eax, dword [0x8a311c]
mov ecx, dword [eax]
cmp ecx, eax
mov dword [ebp - 0x38], ecx
je 0x463739
mov esi, dword [ecx + 8]
mov dword [ebp - 0x48], esi
mov eax, dword [esi]
cmp eax, 2
jne 0x463707
mov eax, dword [esi + 4]
mov edi, dword [0x6d620c]
lea ecx, [ebp - 0x3c]
lea edx, [ebp - 0x24]
push ecx
push edx
mov ecx, 0x6d6208
mov dword [ebp - 0x3c], eax
call fcn.0045b490
cmp dword [eax], edi
je 0x463718
mov edi, dword [esi + 0x18]
mov esi, dword [esi + 4]
lea eax, [ebp - 0x50]
lea ecx, [ebp - 0x68]
push eax
push ecx
mov ecx, 0x6d6208
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], 0
call fcn.00408bd0
mov edx, dword [eax]
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x44], edx
lea edx, [ebp - 0x44]
mov eax, dword [eax + 4]
push ecx
push edx
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x40], eax
call fcn.0045bbb0
mov ecx, eax
mov eax, dword [ecx]
mov esi, dword [eax + 0x10]
mov eax, dword [edi]
mov edx, dword [ecx + 4]
test eax, 0x20000000
mov dword [ebp - 0x80], edx
je 0x462886
mov eax, dword [esi + 0x268]
mov ecx, dword [esi + 0x26c]
or eax, ecx
je 0x46242e
mov ebx, dword [esi + 0x358]
mov ecx, dword [0xa23358]
mov edi, dword [esi + 0x340]
mov edx, dword [0xa23354]
sub ebx, ecx
mov ecx, dword [esi + 0x390]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [esi + 0x490]
mov eax, 0x2aaaaaab
sub edi, edx
imul ecx
sar edx, 2
mov eax, edx
lea ecx, [ecx + ecx*4 + 0x6456c8]
shr eax, 0x1f
add edx, eax
mov eax, dword [esi + 0x2c0]
test eax, eax
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x14], ecx
je 0x462200
mov edx, dword [ebp - 0x1c]
mov eax, dword [eax + edx*4]
mov dword [0xa23480], eax
mov edx, dword [ebp - 0x30]
mov ecx, dword [0xd36ac8]
mov dword [edx*4 + 0x645a7c], ecx
mov eax, dword [esi + 0x818]
test eax, eax
je 0x46226b
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x462226
mov al, byte [eax + 0xc]
jmp 0x462228
xor al, al
mov dl, byte [0x645930]
add dl, al
mov byte [0x645930], dl
mov eax, dword [esi + 0x818]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x462248
mov al, byte [eax + 0xd]
jmp 0x46224a
xor al, al
mov dl, byte [0x645931]
add dl, al
mov byte [0x645931], dl
mov ecx, dword [esi + 0x818]
call fcn.00469ab0
add byte [0x645932], al
jmp 0x46229e
mov eax, dword [esi + 0x268]
mov ecx, dword [esi + 0x26c]
or eax, ecx
je 0x46229e
mov cl, byte [esi + 0x4a1]
mov byte [0x645930], cl
mov dl, byte [esi + 0x4a2]
mov byte [0x645931], dl
mov al, byte [esi + 0x4a3]
mov byte [0x645932], al
mov eax, dword [esi + 0x2ec]
test eax, eax
je 0x4622e7
movzx cx, byte [0x645932]
movzx dx, byte [0x645931]
movzx ax, byte [0x645930]
push ecx
mov ecx, dword [esi + 0x300]
push edx
mov edx, dword [esi + 0x2f8]
push eax
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36ac4]
add esp, 0x1c
jmp 0x463718
mov edx, dword [ebp - 0x14]
movsx eax, byte [edx]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x462320
mov ecx, dword [0xa23480]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a7c]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46235d
mov ecx, dword [0xa23480]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a80]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46239a
mov ecx, dword [0xa23480]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a84]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x4623d7
mov ecx, dword [0xa23480]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a88]
add esp, 0x14
mov eax, dword [ebp - 0x14]
movsx eax, byte [eax + 1]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x462411
mov ecx, dword [0xa23480]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a8c]
add esp, 0x14
mov eax, dword [ebp - 0x30]
mov dword [0xa23480], 0
mov dword [eax*4 + 0x645a7c], 0x468ab0
jmp 0x46321f
mov al, byte [esi + 0x4a0]
test al, al
je 0x462674
mov ebx, dword [esi + 0x358]
mov ecx, dword [0xa23358]
mov edi, dword [esi + 0x340]
mov edx, dword [0xa23354]
sub ebx, ecx
mov ecx, dword [esi + 0x390]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [esi + 0x490]
mov eax, 0x2aaaaaab
sub edi, edx
imul ecx
sar edx, 2
mov eax, edx
lea ecx, [ecx + ecx*4 + 0x6456c8]
shr eax, 0x1f
add edx, eax
mov eax, dword [esi + 0x2c0]
test eax, eax
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x14], ecx
je 0x46249a
mov edx, dword [ebp - 0x1c]
mov eax, dword [eax + edx*4]
mov dword [0xa2347c], eax
mov edx, dword [ebp - 0x30]
mov ecx, dword [0xd36ac8]
mov dword [edx*4 + 0x645a68], ecx
mov eax, dword [esi + 0x818]
test eax, eax
je 0x46250a
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4624c0
mov al, byte [eax + 0xc]
jmp 0x4624c2
xor al, al
mov cl, byte [esi + 0x4a1]
add cl, al
mov byte [0x645930], cl
mov eax, dword [esi + 0x818]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4624e2
mov al, byte [eax + 0xd]
jmp 0x4624e4
xor al, al
mov dl, byte [esi + 0x4a2]
add dl, al
mov byte [0x645931], dl
mov ecx, dword [esi + 0x818]
call fcn.00469ab0
add al, byte [esi + 0x4a3]
mov byte [0x645932], al
jmp 0x46252d
mov al, byte [esi + 0x4a1]
mov byte [0x645930], al
mov cl, byte [esi + 0x4a2]
mov byte [0x645931], cl
mov dl, byte [esi + 0x4a3]
mov byte [0x645932], dl
mov eax, dword [ebp - 0x14]
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x462566
mov ecx, dword [0xa2347c]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a68]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x4625a3
mov ecx, dword [0xa2347c]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a6c]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x4625e0
mov ecx, dword [0xa2347c]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a70]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46261d
mov ecx, dword [0xa2347c]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a74]
add esp, 0x14
mov eax, dword [ebp - 0x14]
movsx eax, byte [eax + 1]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x462657
mov ecx, dword [0xa2347c]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a78]
add esp, 0x14
mov eax, dword [ebp - 0x30]
mov dword [0xa2347c], 0
mov dword [eax*4 + 0x645a68], 0x468ab0
jmp 0x46321f
mov al, byte [0xd37ae0]
test al, 1
jne 0x4626a2
or al, 1
mov byte [0xd37ae0], al
mov eax, dword [0xd36ab4]
mov dword [0xa23468], eax
mov dword [0xa2346c], eax
mov dword [0xa23470], eax
mov dword [0xa23474], eax
mov dword [0xa23478], eax
mov ebx, dword [esi + 0x358]
mov ecx, dword [0xa23358]
mov edi, dword [esi + 0x340]
mov edx, dword [0xa23354]
sub ebx, ecx
mov ecx, dword [esi + 0x390]
mov dword [ebp - 0x14], ecx
mov ecx, dword [esi + 0x490]
mov eax, 0x2aaaaaab
sub edi, edx
imul ecx
sar edx, 2
mov eax, edx
lea ecx, [ecx + ecx*4 + 0x6456c8]
shr eax, 0x1f
add edx, eax
mov eax, dword [esi + 0x2ec]
test eax, eax
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x1c], ecx
je 0x462719
mov ecx, dword [esi + 0x300]
mov edx, dword [esi + 0x2f8]
mov eax, dword [ebp - 0x14]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36ab4]
add esp, 0x10
jmp 0x463718
mov eax, dword [esi + 0x2c0]
test eax, eax
je 0x46272e
mov edx, dword [ebp - 0x14]
mov eax, dword [eax + edx*4]
mov dword [0xa23464], eax
mov eax, dword [ebp - 0x30]
mov edx, dword [0xd36ac8]
mov dword [eax*4 + 0xa23468], edx
movsx eax, byte [ecx]
mov edx, dword [esi + eax*4 + 0x27c]
test edx, edx
je 0x462777
mov ecx, dword [0xa23464]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x14]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xa23468]
mov ecx, dword [ebp - 0x1c]
add esp, 0x14
movsx eax, byte [ecx + 1]
inc ecx
mov edx, dword [esi + eax*4 + 0x27c]
mov dword [ebp - 0x1c], ecx
test edx, edx
je 0x4627b5
mov ecx, dword [0xa23464]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x14]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xa2346c]
mov ecx, dword [ebp - 0x1c]
add esp, 0x14
movsx eax, byte [ecx + 1]
inc ecx
mov edx, dword [esi + eax*4 + 0x27c]
mov dword [ebp - 0x1c], ecx
test edx, edx
je 0x4627f3
mov ecx, dword [0xa23464]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x14]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xa23470]
mov ecx, dword [ebp - 0x1c]
add esp, 0x14
movsx eax, byte [ecx + 1]
inc ecx
mov edx, dword [esi + eax*4 + 0x27c]
mov dword [ebp - 0x1c], ecx
test edx, edx
je 0x462831
mov ecx, dword [0xa23464]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x14]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xa23474]
mov ecx, dword [ebp - 0x1c]
add esp, 0x14
movsx eax, byte [ecx + 1]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x462868
mov ecx, dword [0xa23464]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x14]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xa23478]
add esp, 0x14
mov ecx, dword [ebp - 0x30]
mov eax, dword [0xd36ab4]
mov dword [0xa23464], 0
mov dword [ecx*4 + 0xa23468], eax
jmp 0x463718
mov edx, dword [esi + 0x268]
mov eax, dword [esi + 0x26c]
or edx, eax
je 0x462da9
mov ebx, dword [esi + 0x358]
mov ecx, dword [0xa23358]
mov ax, word [esi]
mov edi, dword [esi + 0x340]
mov edx, dword [0xa23354]
sub ebx, ecx
mov ecx, dword [esi + 0x390]
mov word [ebp - 0x14], ax
mov dword [ebp - 0x18], ecx
mov ecx, dword [esi + 0x490]
mov eax, 0x2aaaaaab
sub edi, edx
imul ecx
sar edx, 2
mov eax, edx
lea ecx, [ecx + ecx*4 + 0x6456c8]
shr eax, 0x1f
add edx, eax
mov eax, dword [esi + 0x2c0]
test eax, eax
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x10], ecx
je 0x4628ff
mov ecx, dword [ebp - 0x18]
mov eax, dword [eax + ecx*4]
mov dword [0xa23460], eax
mov ecx, dword [0xd36ac8]
mov dword [edx*4 + 0x645a54], ecx
mov eax, dword [esi + 0x818]
test eax, eax
je 0x462965
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x462922
mov al, byte [eax + 0xc]
jmp 0x462924
xor al, al
mov dl, byte [0x645930]
add dl, al
mov byte [0x645930], dl
mov eax, dword [esi + 0x818]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x462944
mov al, byte [eax + 0xd]
jmp 0x462946
xor al, al
mov dl, byte [0x645931]
add dl, al
mov byte [0x645931], dl
mov ecx, dword [esi + 0x818]
call fcn.00469ab0
add byte [0x645932], al
mov eax, dword [esi + 0x2ec]
test eax, eax
je 0x462a2a
mov edx, dword [ebp - 0x14]
mov eax, dword [0x6d67a8]
and edx, 0xffff
cmp edx, eax
jne 0x4629d2
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x4629d2
movzx ax, byte [0x645932]
movzx cx, byte [0x645931]
movzx dx, byte [0x645930]
push eax
mov eax, dword [esi + 0x300]
push ecx
mov ecx, dword [esi + 0x2f8]
push edx
mov edx, dword [ebp - 0x18]
push eax
mov eax, dword [ecx + edx*4]
push eax
push ebx
push edi
call dword [0xd36ab8]
add esp, 0x1c
jmp 0x463718
mov ecx, dword [ebp - 0x14]
mov edx, dword [esi + 0x2f8]
mov eax, dword [ebp - 0x18]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
movzx dx, byte [0x645932]
movzx ax, byte [0x645931]
movzx cx, byte [0x645930]
push edx
mov edx, dword [esi + 0x300]
push eax
mov eax, dword [esi + 0x2f8]
push ecx
mov ecx, dword [ebp - 0x18]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xd36ab8]
add esp, 0x2c
jmp 0x463718
mov eax, dword [ebp - 0x14]
mov ecx, dword [0x6d67a8]
and eax, 0xffff
cmp eax, ecx
jne 0x462b77
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x462b77
push esi
call fcn.0051bd40
add esp, 4
test al, al
jne 0x462a6c
cmp dword [ebp - 0x18], 0x187
jg 0x463718
mov ecx, dword [ebp - 0x10]
movsx eax, byte [ecx]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x462aa5
mov edx, dword [0xa23460]
mov ecx, dword [esi + eax*4 + 0x2c4]
push edx
mov edx, dword [esi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x18]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0x645a54]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x462ae2
mov edx, dword [0xa23460]
mov ecx, dword [esi + eax*4 + 0x2c4]
push edx
mov edx, dword [esi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x18]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0x645a58]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x462b1f
mov edx, dword [0xa23460]
mov ecx, dword [esi + eax*4 + 0x2c4]
push edx
mov edx, dword [esi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x18]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0x645a5c]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x462b5c
mov edx, dword [0xa23460]
mov ecx, dword [esi + eax*4 + 0x2c4]
push edx
mov edx, dword [esi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x18]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0x645a60]
add esp, 0x14
mov edx, dword [ebp - 0x10]
movsx eax, byte [edx + 1]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x462d8c
jmp 0x462d64
push esi
call fcn.0051bd40
add esp, 4
test al, al
jne 0x462b91
cmp dword [ebp - 0x18], 0x187
jg 0x463718
mov eax, dword [ebp - 0x10]
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x462bf4
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x462bc6
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x10]
mov ecx, dword [0xa23460]
push ecx
mov ecx, dword [ebp - 0x18]
movsx eax, byte [edx]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a54]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x462c5a
cmp dword [ebp - 0x1c], 1
je 0x462c2c
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x10]
mov ecx, dword [0xa23460]
push ecx
mov ecx, dword [ebp - 0x18]
movsx eax, byte [edx]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a58]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x462cc0
cmp dword [ebp - 0x1c], 2
je 0x462c92
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x10]
mov ecx, dword [0xa23460]
push ecx
mov ecx, dword [ebp - 0x18]
movsx eax, byte [edx]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a5c]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x462d26
cmp dword [ebp - 0x1c], 3
je 0x462cf8
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x10]
mov ecx, dword [0xa23460]
push ecx
mov ecx, dword [ebp - 0x18]
movsx eax, byte [edx]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a60]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x462d8c
cmp dword [ebp - 0x1c], 4
je 0x462d5e
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x10]
movsx eax, byte [edx]
mov ecx, dword [0xa23460]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x18]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a64]
add esp, 0x14
mov eax, dword [ebp - 0x1c]
mov dword [0xa23460], 0
mov dword [eax*4 + 0x645a54], 0x469030
jmp 0x46321f
mov al, byte [esi + 0x4a0]
test al, al
je 0x46324a
mov cx, word [esi]
mov edi, dword [esi + 0x340]
mov edx, dword [0xa23354]
mov ebx, dword [esi + 0x358]
mov word [ebp - 0x1c], cx
mov ecx, dword [0xa23358]
sub edi, edx
mov edx, dword [esi + 0x390]
sub ebx, ecx
mov ecx, dword [esi + 0x490]
mov eax, 0x2aaaaaab
mov dword [ebp - 0x2c], edx
imul ecx
sar edx, 2
mov eax, edx
lea ecx, [ecx + ecx*4 + 0x6456c8]
shr eax, 0x1f
add edx, eax
mov eax, dword [esi + 0x2c0]
test eax, eax
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], ecx
je 0x462e1c
mov ecx, dword [ebp - 0x2c]
mov eax, dword [eax + ecx*4]
mov dword [0xa2345c], eax
mov ecx, dword [0xd36ac8]
mov dword [edx*4 + 0x645a40], ecx
mov eax, dword [esi + 0x818]
test eax, eax
je 0x462e83
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x462e3f
mov al, byte [eax + 0xc]
jmp 0x462e41
xor al, al
add al, byte [esi + 0x4a1]
mov byte [0x645930], al
mov eax, dword [esi + 0x818]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x462e5e
mov al, byte [eax + 0xd]
jmp 0x462e60
xor al, al
add al, byte [esi + 0x4a2]
mov byte [0x645931], al
mov ecx, dword [esi + 0x818]
call fcn.00469ab0
add al, byte [esi + 0x4a3]
mov byte [0x645932], al
jmp 0x462ea6
mov dl, byte [esi + 0x4a1]
mov byte [0x645930], dl
mov al, byte [esi + 0x4a2]
mov byte [0x645931], al
mov cl, byte [esi + 0x4a3]
mov byte [0x645932], cl
mov edx, dword [esi + 0x268]
mov eax, dword [esi + 0x26c]
or edx, eax
je 0x462ed9
mov al, byte [esi + 0x4a1]
mov byte [0x645930], al
mov cl, byte [esi + 0x4a2]
mov byte [0x645931], cl
mov dl, byte [esi + 0x4a3]
mov byte [0x645932], dl
mov eax, dword [ebp - 0x1c]
mov ecx, dword [0x6d67a8]
and eax, 0xffff
cmp eax, ecx
jne 0x46300c
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x46300c
mov ecx, dword [ebp - 0x10]
movsx eax, byte [ecx]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x462f3a
mov edx, dword [0xa2345c]
mov ecx, dword [esi + eax*4 + 0x2c4]
push edx
mov edx, dword [esi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x2c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0x645a40]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x462f77
mov edx, dword [0xa2345c]
mov ecx, dword [esi + eax*4 + 0x2c4]
push edx
mov edx, dword [esi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x2c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0x645a44]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x462fb4
mov edx, dword [0xa2345c]
mov ecx, dword [esi + eax*4 + 0x2c4]
push edx
mov edx, dword [esi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x2c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0x645a48]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x462ff1
mov edx, dword [0xa2345c]
mov ecx, dword [esi + eax*4 + 0x2c4]
push edx
mov edx, dword [esi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x2c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0x645a4c]
add esp, 0x14
mov edx, dword [ebp - 0x10]
movsx eax, byte [edx + 1]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x463207
jmp 0x4631df
mov eax, dword [ebp - 0x10]
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46306f
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x463041
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x10]
mov ecx, dword [0xa2345c]
push ecx
mov ecx, dword [ebp - 0x2c]
movsx eax, byte [edx]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a40]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x4630d5
cmp dword [ebp - 0x14], 1
je 0x4630a7
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x10]
mov ecx, dword [0xa2345c]
push ecx
mov ecx, dword [ebp - 0x2c]
movsx eax, byte [edx]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a44]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46313b
cmp dword [ebp - 0x14], 2
je 0x46310d
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x10]
mov ecx, dword [0xa2345c]
push ecx
mov ecx, dword [ebp - 0x2c]
movsx eax, byte [edx]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a48]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x4631a1
cmp dword [ebp - 0x14], 3
je 0x463173
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x10]
mov ecx, dword [0xa2345c]
push ecx
mov ecx, dword [ebp - 0x2c]
movsx eax, byte [edx]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a4c]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x463207
cmp dword [ebp - 0x14], 4
je 0x4631d9
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x10]
movsx eax, byte [edx]
mov ecx, dword [0xa2345c]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x2c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a50]
add esp, 0x14
mov eax, dword [ebp - 0x14]
mov dword [0xa2345c], 0
mov dword [eax*4 + 0x645a40], 0x469030
mov esi, dword [esi + 0x818]
test esi, esi
je 0x463230
mov ecx, esi
call fcn.0041d7f0
mov byte [0x645930], 4
mov byte [0x645931], 4
mov byte [0x645932], 4
jmp 0x463718
test byte [0xd37ae4], 1
mov eax, dword [0xd36aac]
jne 0x463280
mov cl, byte [0xd37ae4]
mov dword [0xa23408], eax
or cl, 1
mov dword [0xa2340c], eax
mov byte [0xd37ae4], cl
mov dword [0xa23410], eax
mov dword [0xa23414], eax
mov dword [0xa23418], eax
mov cx, word [esi]
mov edi, dword [esi + 0x340]
mov edx, dword [0xa23354]
mov ebx, dword [esi + 0x358]
mov word [ebp - 0x14], cx
mov ecx, dword [0xa23358]
sub edi, edx
mov edx, dword [esi + 0x390]
sub ebx, ecx
mov ecx, dword [esi + 0x490]
mov eax, 0x2aaaaaab
mov dword [ebp - 0x18], edx
imul ecx
sar edx, 2
mov eax, edx
lea ecx, [ecx + ecx*4 + 0x6456c8]
shr eax, 0x1f
add edx, eax
mov eax, dword [esi + 0x2ec]
test eax, eax
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x10], ecx
je 0x46335f
mov edx, dword [ebp - 0x14]
mov eax, dword [0x6d67a8]
and edx, 0xffff
cmp edx, eax
jne 0x463322
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x463322
mov eax, dword [esi + 0x300]
mov ecx, dword [esi + 0x2f8]
mov edx, dword [ebp - 0x18]
push eax
mov eax, dword [ecx + edx*4]
push eax
push ebx
push edi
call dword [0xd36aac]
add esp, 0x10
jmp 0x463718
mov ecx, dword [ebp - 0x14]
mov edx, dword [esi + 0x2f8]
mov eax, dword [ebp - 0x18]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
mov edx, dword [esi + 0x300]
mov eax, dword [esi + 0x2f8]
mov ecx, dword [ebp - 0x18]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xd36aac]
add esp, 0x20
jmp 0x463718
mov eax, dword [esi + 0x2c0]
test eax, eax
je 0x463374
mov ecx, dword [ebp - 0x18]
mov eax, dword [eax + ecx*4]
mov dword [0xa23404], eax
mov ecx, dword [0xd36ac8]
mov eax, dword [0x6d67a8]
mov dword [edx*4 + 0xa23408], ecx
mov edx, dword [ebp - 0x14]
and edx, 0xffff
cmp edx, eax
jne 0x4634d2
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x4634d2
mov eax, dword [esi + 0x60]
cmp eax, 0x101
jbe 0x4633c7
cmp eax, 0x10a
jae 0x4633c7
cmp dword [ebp - 0x18], 0x13f
jg 0x463718
mov eax, dword [ebp - 0x10]
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x463400
mov ecx, dword [0xa23404]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x18]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xa23408]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46343d
mov ecx, dword [0xa23404]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x18]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xa2340c]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46347a
mov ecx, dword [0xa23404]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x18]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xa23410]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x4634b7
mov ecx, dword [0xa23404]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x18]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xa23414]
add esp, 0x14
mov eax, dword [ebp - 0x10]
movsx eax, byte [eax + 1]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x4636eb
jmp 0x4636c3
mov eax, dword [esi + 0x60]
cmp eax, 0x101
jbe 0x4634f0
cmp eax, 0x10a
jae 0x4634f0
cmp dword [ebp - 0x18], 0x13f
jg 0x463718
mov eax, dword [ebp - 0x10]
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x463553
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x463525
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x10]
mov ecx, dword [0xa23404]
push ecx
mov ecx, dword [ebp - 0x18]
movsx eax, byte [edx]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xa23408]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x4635b9
cmp dword [ebp - 0x1c], 1
je 0x46358b
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x10]
mov ecx, dword [0xa23404]
push ecx
mov ecx, dword [ebp - 0x18]
movsx eax, byte [edx]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xa2340c]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46361f
cmp dword [ebp - 0x1c], 2
je 0x4635f1
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x10]
mov ecx, dword [0xa23404]
push ecx
mov ecx, dword [ebp - 0x18]
movsx eax, byte [edx]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xa23410]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x463685
cmp dword [ebp - 0x1c], 3
je 0x463657
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x10]
mov ecx, dword [0xa23404]
push ecx
mov ecx, dword [ebp - 0x18]
movsx eax, byte [edx]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xa23414]
add esp, 0x14
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x4636eb
cmp dword [ebp - 0x1c], 4
je 0x4636bd
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x10]
movsx eax, byte [edx]
mov ecx, dword [0xa23404]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x18]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xa23418]
add esp, 0x14
mov eax, dword [ebp - 0x1c]
mov ecx, dword [0xd36aac]
mov dword [0xa23404], 0
mov dword [eax*4 + 0xa23408], ecx
jmp 0x463718
cmp eax, 3
jne 0x463718
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x463718
call fcn.0059ba80
mov edx, dword [ebp - 0x48]
push edx
call fcn.00612e45
mov eax, dword [ebp - 0x38]
add esp, 4
mov ecx, dword [eax]
mov eax, dword [0x8a311c]
cmp ecx, eax
mov dword [ebp - 0x38], ecx
jne 0x462100
mov ecx, dword [eax]
push eax
push ecx
lea ecx, [ebp - 0x3c]
push ecx
mov ecx, 0x8a3118
call fcn.00478000
mov ecx, dword [0x6d6a00]
and ecx, 0x40000000
mov eax, ecx
xor ecx, ecx
or eax, ecx
je 0x463764
call fcn.00461740
mov esi, dword [0x6d620c]
mov ebx, 0x19
mov eax, dword [esi]
cmp eax, esi
mov dword [ebp - 0x30], eax
je 0x46383b
mov eax, dword [eax + 0x10]
test eax, eax
je 0x468387
mov ecx, dword [eax]
cmp ecx, 0x6000
jb 0x463822
cmp ecx, 0x7fff
ja 0x463822
cmp dword [eax + 0x250], ebx
jne 0x463822
mov esi, dword [eax + 0x358]
mov edx, dword [0xa23358]
mov edi, dword [eax + 0x340]
mov ecx, dword [0xa23354]
sub esi, edx
sub edi, ecx
add esi, 0x1b2
add edi, 0x160
cmp esi, 0x27e
jg 0x463822
mov eax, dword [0xa4f15c]
test eax, eax
jne 0x46380a
push eax
push eax
push 0xa4f160
push 0xa257d8
push eax
push 0xa4f164
push str..Bitmaps_shop_wanjia.wsa
call fcn.005a5e90
add esp, 0x1c
mov dword [0xa4f15c], eax
test eax, eax
je 0x463822
mov edx, dword [0xa4f160]
mov eax, dword [eax]
push edx
push eax
add edi, 0xffffffef
push esi
push edi
call dword [0xd36aac]
add esp, 0x10
lea ecx, [ebp - 0x30]
call fcn.0044ea10
mov esi, dword [0x6d620c]
mov eax, dword [ebp - 0x30]
cmp eax, esi
jne 0x46377c
mov eax, dword [0x7a3040]
test eax, eax
je 0x466b12
mov ecx, dword [0x7a303c]
mov dword [0xa26318], eax
mov eax, dword [ecx]
cmp eax, ecx
mov dword [ebp - 0x30], eax
je 0x466b08
jmp 0x463868
mov esi, dword [0x6d620c]
mov ecx, dword [ebp - 0x30]
mov ebx, dword [ecx + 8]
mov dword [ebp - 0x38], ebx
mov eax, dword [ebx]
cmp eax, 1
jne 0x46389e
mov eax, dword [ebx + 0x18]
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 0x10]
push edx
movsx ecx, word [eax + 0x12]
add ecx, dword [ebx + 0x14]
movsx edx, word [eax + 0x10]
add edx, esi
push ecx
push edx
call fcn.00460220
add esp, 0xc
jmp 0x466ae6
cmp eax, 2
jne 0x46689e
mov eax, dword [ebx + 4]
lea ecx, [ebp - 0x24]
lea edx, [ebp - 0xbc]
push ecx
push edx
mov ecx, 0x6d6208
mov dword [ebp - 0x24], eax
call fcn.0045b490
cmp dword [eax], esi
je 0x466ae6
mov eax, dword [ebx + 4]
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x68]
push eax
push ecx
mov ecx, 0x6d6208
mov dword [ebp - 0x64], 0
call fcn.00474ab0
mov eax, dword [eax]
mov esi, dword [eax + 0x10]
mov dword [ebp - 0x10], esi
mov eax, dword [esi]
cmp eax, 1
jb 0x465a03
cmp eax, 0x3fff
ja 0x465a03
mov ebx, dword [ebx + 0x18]
test dword [ebx], 0x20000000
mov ecx, dword [0xa23350]
je 0x464ef6
cmp eax, ecx
jne 0x46407b
call fcn.005062e0
mov esi, dword [ebp - 0x10]
test eax, eax
jne 0x46407b
mov eax, dword [esi + 0x5c]
mov edi, esi
test eax, eax
je 0x463de1
test byte [0xd37ae1], 1
mov eax, dword [0xd36ac0]
jne 0x463977
mov cl, byte [0xd37ae1]
mov dword [0xa23448], eax
or cl, 1
mov dword [0xa2344c], eax
mov byte [0xd37ae1], cl
mov dword [0xa23450], eax
mov dword [0xa23454], eax
mov dword [0xa23458], eax
mov dx, word [esi]
mov ecx, dword [0xa23358]
mov word [ebp - 0x1c], dx
mov eax, dword [esi + 0x358]
mov ebx, dword [esi + 0x340]
mov edx, dword [0xa23354]
sub eax, ecx
sub ebx, edx
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x390]
mov dword [ebp - 0x20], eax
mov ecx, dword [esi + 0x490]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
lea ecx, [ecx + ecx*4 + 0x6456c8]
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x24], edx
mov eax, dword [esi + 0x2ec]
test eax, eax
je 0x463a5f
mov edx, dword [ebp - 0x1c]
mov eax, dword [0x6d67a8]
and edx, 0xffff
cmp edx, eax
jne 0x463a1f
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x463a1f
mov eax, dword [edi + 0x300]
mov ecx, dword [edi + 0x2f8]
mov edx, dword [ebp - 0x20]
push eax
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x18]
push eax
push ecx
push ebx
call dword [0xd36ac0]
add esp, 0x10
jmp 0x465983
mov edx, dword [ebp - 0x1c]
mov eax, dword [edi + 0x2f8]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x18]
push edx
mov edx, dword [eax + ecx*4]
push edx
push esi
push ebx
call dword [0xd36aa4]
mov eax, dword [edi + 0x300]
mov ecx, dword [edi + 0x2f8]
mov edx, dword [ebp - 0x20]
push eax
mov eax, dword [ecx + edx*4]
push eax
push esi
push ebx
call dword [0xd36ac0]
add esp, 0x20
jmp 0x465983
mov eax, dword [esi + 0x2c0]
test eax, eax
je 0x463a74
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + ecx*4]
mov dword [0xa23444], eax
mov ecx, dword [0xd36ac8]
mov eax, dword [0x6d67a8]
mov dword [edx*4 + 0xa23448], ecx
mov edx, dword [ebp - 0x1c]
and edx, 0xffff
cmp edx, eax
jne 0x463bb1
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x463bae
mov esi, dword [ebp - 0x14]
movsx eax, byte [esi]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x463ae5
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23448]
add esp, 0x14
movsx eax, byte [esi + 1]
inc esi
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x463b20
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa2344c]
add esp, 0x14
movsx eax, byte [esi + 1]
inc esi
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x463b5b
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23450]
add esp, 0x14
movsx eax, byte [esi + 1]
inc esi
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x463b96
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23454]
add esp, 0x14
movsx eax, byte [esi + 1]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x463dd6
jmp 0x463dab
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
movsx eax, byte [ecx]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x463c1d
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x463be9
mov edx, dword [ebp - 0x1c]
mov eax, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov ecx, dword [ebp - 0x14]
mov edx, dword [0xa23444]
push edx
movsx eax, byte [ecx]
mov ecx, dword [edi + eax*4 + 0x2c4]
mov edx, dword [edi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xa23448]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x463c8c
cmp dword [ebp - 0x24], 1
je 0x463c58
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov eax, dword [ebp - 0x14]
mov ecx, dword [0xa23444]
push ecx
mov ecx, dword [ebp - 0x20]
movsx eax, byte [eax]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa2344c]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x463cfb
cmp dword [ebp - 0x24], 2
je 0x463cc7
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov eax, dword [ebp - 0x14]
mov ecx, dword [0xa23444]
push ecx
mov ecx, dword [ebp - 0x20]
movsx eax, byte [eax]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23450]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x463d6a
cmp dword [ebp - 0x24], 3
je 0x463d36
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov eax, dword [ebp - 0x14]
mov ecx, dword [0xa23444]
push ecx
mov ecx, dword [ebp - 0x20]
movsx eax, byte [eax]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23454]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x463dd9
cmp dword [ebp - 0x24], 4
je 0x463da5
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov eax, dword [ebp - 0x14]
movsx eax, byte [eax]
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23458]
add esp, 0x14
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x24]
jmp 0x4653b6
mov eax, dword [esi + 0x358]
mov ecx, dword [0xa23358]
mov ebx, dword [esi + 0x340]
mov edx, dword [0xa23354]
sub eax, ecx
sub ebx, edx
mov dword [ebp - 0x24], eax
mov eax, dword [esi + 0x390]
mov dword [ebp - 0x20], eax
mov ecx, dword [esi + 0x490]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
lea ecx, [ecx + ecx*4 + 0x6456c8]
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x1c], ecx
mov eax, dword [esi + 0x2c0]
mov dword [ebp - 0x18], edx
test eax, eax
je 0x463e42
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + ecx*4]
mov dword [0xa23480], eax
mov ecx, dword [0xd36ac8]
lea eax, [esi + 0x818]
mov dword [edx*4 + 0x645a7c], ecx
mov dword [ebp - 0x14], eax
mov eax, dword [eax]
test eax, eax
je 0x463eac
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x463e6a
mov al, byte [eax + 0xc]
jmp 0x463e6c
xor al, al
mov cl, byte [0x645930]
mov esi, dword [ebp - 0x14]
add cl, al
mov byte [0x645930], cl
mov ecx, dword [esi]
call fcn.00469aa0
mov dl, byte [0x645931]
add dl, al
mov byte [0x645931], dl
mov ecx, dword [esi]
call fcn.00469ab0
mov cl, byte [0x645932]
mov esi, dword [ebp - 0x10]
add cl, al
mov byte [0x645932], cl
jmp 0x463edf
mov edx, dword [esi + 0x268]
mov eax, dword [esi + 0x26c]
or edx, eax
je 0x463edf
mov al, byte [esi + 0x4a1]
mov byte [0x645930], al
mov cl, byte [esi + 0x4a2]
mov byte [0x645931], cl
mov dl, byte [esi + 0x4a3]
mov byte [0x645932], dl
mov eax, dword [edi + 0x2ec]
test eax, eax
je 0x463f2b
movzx ax, byte [0x645932]
movzx cx, byte [0x645931]
movzx dx, byte [0x645930]
push eax
mov eax, dword [edi + 0x300]
push ecx
mov ecx, dword [edi + 0x2f8]
push edx
mov edx, dword [ebp - 0x20]
push eax
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x24]
push eax
push ecx
push ebx
call dword [0xd36ac4]
add esp, 0x1c
jmp 0x465983
mov edx, dword [ebp - 0x1c]
movsx eax, byte [edx]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x463f6a
mov ecx, dword [0xa23480]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x24]
push edx
push eax
push ebx
call dword [0x645a7c]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x463fad
mov ecx, dword [0xa23480]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x24]
push edx
push eax
push ebx
call dword [0x645a80]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x463ff0
mov ecx, dword [0xa23480]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x24]
push edx
push eax
push ebx
call dword [0x645a84]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x464033
mov ecx, dword [0xa23480]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x24]
push edx
push eax
push ebx
call dword [0x645a88]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov ecx, dword [ebp - 0x1c]
movsx eax, byte [ecx + 1]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x464073
mov edx, dword [0xa23480]
mov ecx, dword [edi + eax*4 + 0x2c4]
push edx
mov edx, dword [edi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x24]
push ecx
push edx
push ebx
call dword [0x645a8c]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x18]
jmp 0x4647d5
mov eax, dword [esi + 0x258]
xor ecx, ecx
and eax, 0x4000
or eax, ecx
je 0x46452a
cmp dword [0x6d67a8], 0x8000
jne 0x465986
mov al, byte [0xd37ae1]
mov edi, esi
test al, 1
mov eax, dword [0xd36ac0]
jne 0x4640d8
mov cl, byte [0xd37ae1]
mov dword [0xa23448], eax
or cl, 1
mov dword [0xa2344c], eax
mov byte [0xd37ae1], cl
mov dword [0xa23450], eax
mov dword [0xa23454], eax
mov dword [0xa23458], eax
mov dx, word [esi]
mov ecx, dword [0xa23358]
mov word [ebp - 0x1c], dx
mov eax, dword [esi + 0x358]
mov ebx, dword [esi + 0x340]
mov edx, dword [0xa23354]
sub eax, ecx
sub ebx, edx
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x390]
mov dword [ebp - 0x20], eax
mov ecx, dword [esi + 0x490]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
lea ecx, [ecx + ecx*4 + 0x6456c8]
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x24], edx
mov eax, dword [esi + 0x2ec]
test eax, eax
je 0x4641b2
cmp word [ebp - 0x1c], 0x8000
jne 0x464172
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x464172
mov edx, dword [edi + 0x300]
mov eax, dword [edi + 0x2f8]
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xd36ac0]
add esp, 0x10
jmp 0x465983
mov ecx, dword [ebp - 0x1c]
mov edx, dword [edi + 0x2f8]
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 0x18]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push esi
push ebx
call dword [0xd36aa4]
mov edx, dword [edi + 0x300]
mov eax, dword [edi + 0x2f8]
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
push edx
push esi
push ebx
call dword [0xd36ac0]
add esp, 0x20
jmp 0x465983
mov eax, dword [esi + 0x2c0]
test eax, eax
je 0x4641c7
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + ecx*4]
mov dword [0xa23444], eax
mov ecx, dword [0xd36ac8]
cmp word [ebp - 0x1c], 0x8000
mov dword [edx*4 + 0xa23448], ecx
jne 0x4642fa
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x4642f7
mov esi, dword [ebp - 0x14]
movsx eax, byte [esi]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46422e
mov edx, dword [0xa23444]
mov ecx, dword [edi + eax*4 + 0x2c4]
push edx
mov edx, dword [edi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xa23448]
add esp, 0x14
movsx eax, byte [esi + 1]
inc esi
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x464269
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa2344c]
add esp, 0x14
movsx eax, byte [esi + 1]
inc esi
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x4642a4
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23450]
add esp, 0x14
movsx eax, byte [esi + 1]
inc esi
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x4642df
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23454]
add esp, 0x14
movsx eax, byte [esi + 1]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46451f
jmp 0x4644f4
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
movsx eax, byte [ecx]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x464366
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x464332
mov edx, dword [ebp - 0x1c]
mov eax, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov ecx, dword [ebp - 0x14]
mov edx, dword [0xa23444]
push edx
movsx eax, byte [ecx]
mov ecx, dword [edi + eax*4 + 0x2c4]
mov edx, dword [edi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xa23448]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x4643d5
cmp dword [ebp - 0x24], 1
je 0x4643a1
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov eax, dword [ebp - 0x14]
mov ecx, dword [0xa23444]
push ecx
mov ecx, dword [ebp - 0x20]
movsx eax, byte [eax]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa2344c]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x464444
cmp dword [ebp - 0x24], 2
je 0x464410
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov eax, dword [ebp - 0x14]
mov ecx, dword [0xa23444]
push ecx
mov ecx, dword [ebp - 0x20]
movsx eax, byte [eax]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23450]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x4644b3
cmp dword [ebp - 0x24], 3
je 0x46447f
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov eax, dword [ebp - 0x14]
mov ecx, dword [0xa23444]
push ecx
mov ecx, dword [ebp - 0x20]
movsx eax, byte [eax]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23454]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x464522
cmp dword [ebp - 0x24], 4
je 0x4644ee
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov eax, dword [ebp - 0x14]
movsx eax, byte [eax]
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23458]
add esp, 0x14
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x24]
jmp 0x4653b6
mov eax, dword [esi + 0x268]
mov ecx, dword [esi + 0x26c]
or eax, ecx
je 0x464815
mov eax, dword [esi + 0x358]
mov ecx, dword [0xa23358]
mov ebx, dword [esi + 0x340]
mov edx, dword [0xa23354]
sub eax, ecx
sub ebx, edx
mov dword [ebp - 0x24], eax
mov ecx, dword [esi + 0x390]
mov dword [ebp - 0x20], ecx
mov ecx, dword [esi + 0x490]
mov eax, 0x2aaaaaab
mov edi, esi
imul ecx
sar edx, 2
mov eax, edx
lea ecx, [ecx + ecx*4 + 0x6456c8]
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x1c], ecx
mov eax, dword [esi + 0x2c0]
mov dword [ebp - 0x18], edx
test eax, eax
je 0x4645a1
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + ecx*4]
mov dword [0xa23480], eax
mov ecx, dword [0xd36ac8]
lea eax, [esi + 0x818]
mov dword [edx*4 + 0x645a7c], ecx
mov dword [ebp - 0x14], eax
mov eax, dword [eax]
test eax, eax
je 0x46460b
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4645c9
mov al, byte [eax + 0xc]
jmp 0x4645cb
xor al, al
mov cl, byte [0x645930]
mov esi, dword [ebp - 0x14]
add cl, al
mov byte [0x645930], cl
mov ecx, dword [esi]
call fcn.00469aa0
mov dl, byte [0x645931]
add dl, al
mov byte [0x645931], dl
mov ecx, dword [esi]
call fcn.00469ab0
mov cl, byte [0x645932]
mov esi, dword [ebp - 0x10]
add cl, al
mov byte [0x645932], cl
jmp 0x46463e
mov edx, dword [esi + 0x268]
mov eax, dword [esi + 0x26c]
or edx, eax
je 0x46463e
mov al, byte [esi + 0x4a1]
mov byte [0x645930], al
mov cl, byte [esi + 0x4a2]
mov byte [0x645931], cl
mov dl, byte [esi + 0x4a3]
mov byte [0x645932], dl
mov eax, dword [edi + 0x2ec]
test eax, eax
je 0x46468a
movzx ax, byte [0x645932]
movzx cx, byte [0x645931]
movzx dx, byte [0x645930]
push eax
mov eax, dword [edi + 0x300]
push ecx
mov ecx, dword [edi + 0x2f8]
push edx
mov edx, dword [ebp - 0x20]
push eax
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x24]
push eax
push ecx
push ebx
call dword [0xd36ac4]
add esp, 0x1c
jmp 0x465983
mov edx, dword [ebp - 0x1c]
movsx eax, byte [edx]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x4646c9
mov ecx, dword [0xa23480]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x24]
push edx
push eax
push ebx
call dword [0x645a7c]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46470c
mov ecx, dword [0xa23480]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x24]
push edx
push eax
push ebx
call dword [0x645a80]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46474f
mov ecx, dword [0xa23480]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x24]
push edx
push eax
push ebx
call dword [0x645a84]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x464792
mov ecx, dword [0xa23480]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x24]
push edx
push eax
push ebx
call dword [0x645a88]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov ecx, dword [ebp - 0x1c]
movsx eax, byte [ecx + 1]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x4647d2
mov edx, dword [0xa23480]
mov ecx, dword [edi + eax*4 + 0x2c4]
push edx
mov edx, dword [edi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x24]
push ecx
push edx
push ebx
call dword [0x645a8c]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov dword [eax*4 + 0x645a7c], 0x468ab0
mov dword [0xa23480], 0
mov ecx, dword [ecx]
test ecx, ecx
je 0x4647fb
call fcn.0041d7f0
mov esi, dword [ebp - 0x10]
mov byte [0x645930], 4
mov byte [0x645931], 4
mov byte [0x645932], 4
jmp 0x465986
mov eax, dword [esi + 0x5c]
mov edi, esi
test eax, eax
je 0x464cc2
test byte [0xd37ae1], 1
mov eax, dword [0xd36ac0]
jne 0x464858
mov cl, byte [0xd37ae1]
mov dword [0xa23448], eax
or cl, 1
mov dword [0xa2344c], eax
mov byte [0xd37ae1], cl
mov dword [0xa23450], eax
mov dword [0xa23454], eax
mov dword [0xa23458], eax
mov dx, word [esi]
mov ecx, dword [0xa23358]
mov word [ebp - 0x1c], dx
mov eax, dword [esi + 0x358]
mov ebx, dword [esi + 0x340]
mov edx, dword [0xa23354]
sub eax, ecx
sub ebx, edx
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x390]
mov dword [ebp - 0x20], eax
mov ecx, dword [esi + 0x490]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
lea ecx, [ecx + ecx*4 + 0x6456c8]
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x24], edx
mov eax, dword [esi + 0x2ec]
test eax, eax
je 0x464940
mov edx, dword [ebp - 0x1c]
mov eax, dword [0x6d67a8]
and edx, 0xffff
cmp edx, eax
jne 0x464900
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x464900
mov eax, dword [edi + 0x300]
mov ecx, dword [edi + 0x2f8]
mov edx, dword [ebp - 0x20]
push eax
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x18]
push eax
push ecx
push ebx
call dword [0xd36ac0]
add esp, 0x10
jmp 0x465983
mov edx, dword [ebp - 0x1c]
mov eax, dword [edi + 0x2f8]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x18]
push edx
mov edx, dword [eax + ecx*4]
push edx
push esi
push ebx
call dword [0xd36aa4]
mov eax, dword [edi + 0x300]
mov ecx, dword [edi + 0x2f8]
mov edx, dword [ebp - 0x20]
push eax
mov eax, dword [ecx + edx*4]
push eax
push esi
push ebx
call dword [0xd36ac0]
add esp, 0x20
jmp 0x465983
mov eax, dword [esi + 0x2c0]
test eax, eax
je 0x464955
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + ecx*4]
mov dword [0xa23444], eax
mov ecx, dword [0xd36ac8]
mov eax, dword [0x6d67a8]
mov dword [edx*4 + 0xa23448], ecx
mov edx, dword [ebp - 0x1c]
and edx, 0xffff
cmp edx, eax
jne 0x464a92
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x464a8f
mov esi, dword [ebp - 0x14]
movsx eax, byte [esi]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x4649c6
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23448]
add esp, 0x14
movsx eax, byte [esi + 1]
inc esi
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x464a01
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa2344c]
add esp, 0x14
movsx eax, byte [esi + 1]
inc esi
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x464a3c
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23450]
add esp, 0x14
movsx eax, byte [esi + 1]
inc esi
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x464a77
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23454]
add esp, 0x14
movsx eax, byte [esi + 1]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x464cb7
jmp 0x464c8c
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
movsx eax, byte [ecx]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x464afe
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x464aca
mov edx, dword [ebp - 0x1c]
mov eax, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov ecx, dword [ebp - 0x14]
mov edx, dword [0xa23444]
push edx
movsx eax, byte [ecx]
mov ecx, dword [edi + eax*4 + 0x2c4]
mov edx, dword [edi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xa23448]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x464b6d
cmp dword [ebp - 0x24], 1
je 0x464b39
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov eax, dword [ebp - 0x14]
mov ecx, dword [0xa23444]
push ecx
mov ecx, dword [ebp - 0x20]
movsx eax, byte [eax]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa2344c]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x464bdc
cmp dword [ebp - 0x24], 2
je 0x464ba8
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov eax, dword [ebp - 0x14]
mov ecx, dword [0xa23444]
push ecx
mov ecx, dword [ebp - 0x20]
movsx eax, byte [eax]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23450]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x464c4b
cmp dword [ebp - 0x24], 3
je 0x464c17
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov eax, dword [ebp - 0x14]
mov ecx, dword [0xa23444]
push ecx
mov ecx, dword [ebp - 0x20]
movsx eax, byte [eax]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23454]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x464cba
cmp dword [ebp - 0x24], 4
je 0x464c86
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov eax, dword [ebp - 0x14]
movsx eax, byte [eax]
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23458]
add esp, 0x14
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x24]
jmp 0x4653b6
mov al, byte [0xd37ae0]
test al, 1
jne 0x464cf0
or al, 1
mov byte [0xd37ae0], al
mov eax, dword [0xd36ab4]
mov dword [0xa23468], eax
mov dword [0xa2346c], eax
mov dword [0xa23470], eax
mov dword [0xa23474], eax
mov dword [0xa23478], eax
mov eax, dword [esi + 0x358]
mov ecx, dword [0xa23358]
mov ebx, dword [esi + 0x340]
mov edx, dword [0xa23354]
sub eax, ecx
sub ebx, edx
mov dword [ebp - 0x24], eax
mov eax, dword [esi + 0x390]
mov dword [ebp - 0x14], eax
mov ecx, dword [esi + 0x490]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
lea ecx, [ecx + ecx*4 + 0x6456c8]
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], edx
mov eax, dword [esi + 0x2ec]
test eax, eax
je 0x464d6d
mov ecx, dword [esi + 0x300]
mov edx, dword [esi + 0x2f8]
mov eax, dword [ebp - 0x14]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x24]
push ecx
push edx
push ebx
call dword [0xd36ab4]
add esp, 0x10
jmp 0x465983
mov eax, dword [esi + 0x2c0]
test eax, eax
je 0x464d82
mov edx, dword [ebp - 0x14]
mov eax, dword [eax + edx*4]
mov dword [0xa23464], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [0xd36ac8]
mov dword [eax*4 + 0xa23468], edx
movsx eax, byte [ecx]
mov edx, dword [esi + eax*4 + 0x27c]
test edx, edx
je 0x464dd1
mov ecx, dword [0xa23464]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x14]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x24]
push edx
push eax
push ebx
call dword [0xa23468]
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
add esp, 0x14
inc ecx
mov dword [ebp - 0x1c], ecx
movsx eax, byte [ecx]
mov edx, dword [edi + eax*4 + 0x27c]
test edx, edx
je 0x464e14
mov ecx, dword [0xa23464]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x14]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x24]
push edx
push eax
push ebx
call dword [0xa2346c]
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
add esp, 0x14
inc ecx
mov dword [ebp - 0x1c], ecx
movsx eax, byte [ecx]
mov edx, dword [edi + eax*4 + 0x27c]
test edx, edx
je 0x464e57
mov ecx, dword [0xa23464]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x14]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x24]
push edx
push eax
push ebx
call dword [0xa23470]
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
add esp, 0x14
inc ecx
mov dword [ebp - 0x1c], ecx
movsx eax, byte [ecx]
mov edx, dword [edi + eax*4 + 0x27c]
test edx, edx
je 0x464e9a
mov ecx, dword [0xa23464]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x14]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x24]
push edx
push eax
push ebx
call dword [0xa23474]
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
add esp, 0x14
movsx eax, byte [ecx + 1]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x464ed7
mov ecx, dword [0xa23464]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x14]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x24]
push edx
push eax
push ebx
call dword [0xa23478]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov edx, dword [ebp - 0x20]
mov ecx, dword [0xd36ab4]
mov dword [0xa23464], 0
mov dword [edx*4 + 0xa23468], ecx
jmp 0x465986
cmp eax, ecx
jne 0x4658f5
call fcn.005062e0
mov esi, dword [ebp - 0x10]
test eax, eax
jne 0x4658f5
mov eax, dword [esi + 0x5c]
test eax, eax
je 0x4653d2
mov al, byte [0xd37ae1]
mov edi, esi
test al, 1
mov eax, dword [0xd36ac0]
jne 0x464f51
mov cl, byte [0xd37ae1]
mov dword [0xa23448], eax
or cl, 1
mov dword [0xa2344c], eax
mov byte [0xd37ae1], cl
mov dword [0xa23450], eax
mov dword [0xa23454], eax
mov dword [0xa23458], eax
mov ax, word [esi]
mov ecx, dword [0xa23358]
mov edx, dword [0xa23354]
mov word [ebp - 0x1c], ax
mov eax, dword [esi + 0x358]
mov ebx, dword [esi + 0x340]
sub eax, ecx
mov ecx, dword [esi + 0x390]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], ecx
mov ecx, dword [esi + 0x490]
mov eax, 0x2aaaaaab
sub ebx, edx
imul ecx
sar edx, 2
mov eax, edx
lea ecx, [ecx + ecx*4 + 0x6456c8]
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x24], edx
mov eax, dword [esi + 0x2ec]
test eax, eax
je 0x465039
mov edx, dword [ebp - 0x1c]
mov eax, dword [0x6d67a8]
and edx, 0xffff
cmp edx, eax
jne 0x464ff9
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x464ff9
mov eax, dword [edi + 0x300]
mov ecx, dword [edi + 0x2f8]
mov edx, dword [ebp - 0x20]
push eax
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x18]
push eax
push ecx
push ebx
call dword [0xd36ac0]
add esp, 0x10
jmp 0x465983
mov edx, dword [ebp - 0x1c]
mov eax, dword [edi + 0x2f8]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x18]
push edx
mov edx, dword [eax + ecx*4]
push edx
push esi
push ebx
call dword [0xd36aa4]
mov eax, dword [edi + 0x300]
mov ecx, dword [edi + 0x2f8]
mov edx, dword [ebp - 0x20]
push eax
mov eax, dword [ecx + edx*4]
push eax
push esi
push ebx
call dword [0xd36ac0]
add esp, 0x20
jmp 0x465983
mov eax, dword [esi + 0x2c0]
test eax, eax
je 0x46504e
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + ecx*4]
mov dword [0xa23444], eax
mov ecx, dword [0xd36ac8]
mov eax, dword [0x6d67a8]
mov dword [edx*4 + 0xa23448], ecx
mov edx, dword [ebp - 0x1c]
and edx, 0xffff
cmp edx, eax
jne 0x46518b
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x465188
mov esi, dword [ebp - 0x14]
movsx eax, byte [esi]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x4650bf
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23448]
add esp, 0x14
movsx eax, byte [esi + 1]
inc esi
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x4650fa
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa2344c]
add esp, 0x14
movsx eax, byte [esi + 1]
inc esi
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x465135
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23450]
add esp, 0x14
movsx eax, byte [esi + 1]
inc esi
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x465170
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23454]
add esp, 0x14
movsx eax, byte [esi + 1]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x4653b0
jmp 0x465385
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
movsx eax, byte [ecx]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x4651f7
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x4651c3
mov edx, dword [ebp - 0x1c]
mov eax, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov ecx, dword [ebp - 0x14]
mov edx, dword [0xa23444]
push edx
movsx eax, byte [ecx]
mov ecx, dword [edi + eax*4 + 0x2c4]
mov edx, dword [edi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xa23448]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x465266
cmp dword [ebp - 0x24], 1
je 0x465232
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov eax, dword [ebp - 0x14]
mov ecx, dword [0xa23444]
push ecx
mov ecx, dword [ebp - 0x20]
movsx eax, byte [eax]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa2344c]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x4652d5
cmp dword [ebp - 0x24], 2
je 0x4652a1
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov eax, dword [ebp - 0x14]
mov ecx, dword [0xa23444]
push ecx
mov ecx, dword [ebp - 0x20]
movsx eax, byte [eax]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23450]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x465344
cmp dword [ebp - 0x24], 3
je 0x465310
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov eax, dword [ebp - 0x14]
mov ecx, dword [0xa23444]
push ecx
mov ecx, dword [ebp - 0x20]
movsx eax, byte [eax]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23454]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x4653b3
cmp dword [ebp - 0x24], 4
je 0x46537f
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
push ecx
push edx
push ebx
call dword [0xd36aa4]
add esp, 0x10
mov eax, dword [ebp - 0x14]
movsx eax, byte [eax]
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push ebx
call dword [0xa23458]
add esp, 0x14
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x24]
mov edx, dword [0xd36ac0]
mov dword [0xa23444], 0
mov dword [ecx*4 + 0xa23448], edx
jmp 0x465986
mov ax, word [esi]
mov ecx, dword [0xa23358]
mov edx, dword [0xa23354]
mov word [ebp - 0x1c], ax
mov ebx, dword [esi + 0x358]
mov edi, dword [esi + 0x340]
sub ebx, ecx
mov ecx, dword [esi + 0x390]
mov dword [ebp - 0x20], ecx
mov ecx, dword [esi + 0x490]
mov eax, 0x2aaaaaab
sub edi, edx
imul ecx
sar edx, 2
mov eax, edx
lea ecx, [ecx + ecx*4 + 0x6456c8]
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x24], edx
mov eax, dword [esi + 0x2c0]
test eax, eax
je 0x465437
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + ecx*4]
mov dword [0xa23460], eax
mov ecx, dword [0xd36ac8]
lea eax, [esi + 0x818]
mov dword [edx*4 + 0x645a54], ecx
mov dword [ebp - 0x14], eax
mov ecx, dword [eax]
test ecx, ecx
je 0x46548e
call fcn.00469a90
mov cl, byte [0x645930]
mov edx, dword [ebp - 0x14]
add cl, al
mov byte [0x645930], cl
mov ecx, dword [edx]
call fcn.00469aa0
mov dl, byte [0x645931]
add dl, al
mov eax, dword [ebp - 0x14]
mov byte [0x645931], dl
mov ecx, dword [eax]
call fcn.00469ab0
add byte [0x645932], al
mov eax, dword [esi + 0x2ec]
test eax, eax
je 0x465553
mov ecx, dword [ebp - 0x1c]
mov eax, dword [0x6d67a8]
and ecx, 0xffff
cmp ecx, eax
jne 0x4654fb
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x4654fb
movzx dx, byte [0x645932]
movzx ax, byte [0x645931]
movzx cx, byte [0x645930]
push edx
mov edx, dword [esi + 0x300]
push eax
mov eax, dword [esi + 0x2f8]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xd36ab8]
add esp, 0x1c
jmp 0x465983
mov eax, dword [ebp - 0x1c]
mov ecx, dword [esi + 0x2f8]
mov edx, dword [ebp - 0x20]
push eax
mov eax, dword [ecx + edx*4]
push eax
push ebx
push edi
call dword [0xd36aa4]
movzx cx, byte [0x645932]
movzx dx, byte [0x645931]
movzx ax, byte [0x645930]
push ecx
mov ecx, dword [esi + 0x300]
push edx
mov edx, dword [esi + 0x2f8]
push eax
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36ab8]
add esp, 0x2c
jmp 0x465983
mov edx, dword [ebp - 0x1c]
mov eax, dword [0x6d67a8]
and edx, 0xffff
cmp edx, eax
jne 0x4656a0
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x4656a0
push esi
call fcn.0051bd40
add esp, 4
test al, al
jne 0x465595
cmp dword [ebp - 0x20], 0x187
jg 0x465983
mov eax, dword [ebp - 0x18]
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x4655ce
mov ecx, dword [0xa23460]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a54]
add esp, 0x14
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46560b
mov ecx, dword [0xa23460]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a58]
add esp, 0x14
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x465648
mov ecx, dword [0xa23460]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a5c]
add esp, 0x14
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x465685
mov ecx, dword [0xa23460]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a60]
add esp, 0x14
mov eax, dword [ebp - 0x18]
movsx eax, byte [eax + 1]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x4658b5
jmp 0x46588d
push esi
call fcn.0051bd40
add esp, 4
test al, al
jne 0x4656ba
cmp dword [ebp - 0x20], 0x187
jg 0x465983
mov eax, dword [ebp - 0x18]
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46571d
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x4656ef
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x18]
mov ecx, dword [0xa23460]
push ecx
mov ecx, dword [ebp - 0x20]
movsx eax, byte [edx]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a54]
add esp, 0x14
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x465783
cmp dword [ebp - 0x24], 1
je 0x465755
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x18]
mov ecx, dword [0xa23460]
push ecx
mov ecx, dword [ebp - 0x20]
movsx eax, byte [edx]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a58]
add esp, 0x14
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x4657e9
cmp dword [ebp - 0x24], 2
je 0x4657bb
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x18]
mov ecx, dword [0xa23460]
push ecx
mov ecx, dword [ebp - 0x20]
movsx eax, byte [edx]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a5c]
add esp, 0x14
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46584f
cmp dword [ebp - 0x24], 3
je 0x465821
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x18]
mov ecx, dword [0xa23460]
push ecx
mov ecx, dword [ebp - 0x20]
movsx eax, byte [edx]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a60]
add esp, 0x14
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x4658b5
cmp dword [ebp - 0x24], 4
je 0x465887
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x18]
movsx eax, byte [edx]
mov ecx, dword [0xa23460]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a64]
add esp, 0x14
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x14]
mov dword [0xa23460], 0
mov dword [eax*4 + 0x645a54], 0x469030
mov ecx, dword [ecx]
test ecx, ecx
je 0x4658db
call fcn.0041d7f0
mov byte [0x645930], 4
mov byte [0x645931], 4
mov byte [0x645932], 4
jmp 0x465983
mov ecx, dword [esi + 0x258]
mov eax, dword [esi + 0x25c]
and ecx, 0x4000
xor edx, edx
or ecx, edx
je 0x465921
cmp dword [0x6d67a8], 0x8000
jne 0x465986
push esi
call fcn.00468610
jmp 0x465980
mov edx, dword [esi + 0x268]
mov ecx, dword [esi + 0x26c]
or edx, ecx
je 0x465939
push esi
call fcn.00469530
jmp 0x465980
mov edx, eax
xor ecx, ecx
and edx, 0x4000
or ecx, edx
jne 0x465960
mov edx, eax
xor ecx, ecx
and edx, 0x1000
or ecx, edx
jne 0x465960
and eax, 0x8000
xor ecx, ecx
or ecx, eax
je 0x46596c
push esi
call fcn.00469530
mov esi, dword [ebp - 0x10]
add esp, 4
mov eax, dword [esi + 0x5c]
push esi
test eax, eax
je 0x46597b
call fcn.00468610
jmp 0x465980
call fcn.0045e010
add esp, 4
mov esi, dword [ebp - 0x10]
mov eax, dword [0xa262c8]
test eax, eax
je 0x4659d1
mov ecx, dword [ebp - 0x38]
mov edi, dword [esi + 8]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov edx, eax
sub edx, ecx
add edx, 0x1f
sar edx, 1
cmp edi, edx
jne 0x4659d1
lea eax, [ecx + eax - 0x1f]
mov ecx, dword [esi + 0xc]
cmp ecx, eax
jne 0x4659d1
mov ecx, dword [0xa4f028]
mov eax, dword [ebp - 0x38]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x14]
push edx
mov edx, dword [eax + 0x10]
push ecx
push edx
call dword [0xd36aa8]
add esp, 0xc
lea eax, [ebp - 0x10]
mov ecx, 0x7e3068
push eax
call fcn.004745f0
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 0xb8]
test eax, eax
je 0x466ae6
lea edx, [ebp - 0x10]
mov ecx, 0x9831e0
push edx
call fcn.004745f0
jmp 0x466ae6
cmp eax, 0x4000
jb 0x466097
cmp eax, 0x7fff
ja 0x466097
mov dword [ebp - 0x48], 1
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x24], eax
mov ecx, dword [esi + 0x250]
xor edi, edi
cmp ecx, 8
jne 0x465a3a
mov dword [ebp - 0x48], 0x32
test dword [eax], 0x20000000
jne 0x465c22
lea ecx, [esi + 0x430]
call fcn.00474290
cmp eax, 1
jle 0x465c10
lea esi, [eax - 1]
test esi, esi
jle 0x465a7b
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x48]
push eax
push 2
push 0xc
push esi
push ecx
call fcn.0045e4f0
add esp, 0x14
dec esi
test esi, esi
jg 0x465a61
mov edx, dword [ebp - 0x10]
push 0
lea ecx, [edx + 0x430]
call fcn.004742a0
mov ecx, eax
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 0x358]
mov esi, dword [ecx + 4]
cmp edx, esi
jg 0x465bd7
mov ecx, dword [ebp - 0x24]
test dword [ecx], 0x20000000
je 0x465b3a
mov edx, dword [eax]
mov ecx, dword [0xa23350]
cmp edx, ecx
jne 0x465ad3
call fcn.005062e0
test eax, eax
mov eax, dword [ebp - 0x10]
jne 0x465ad3
push eax
call fcn.00468d60
jmp 0x465bcc
mov ecx, dword [eax + 0x258]
xor edx, edx
and ecx, 0x4000
or ecx, edx
je 0x465b00
mov ecx, dword [eax]
mov edx, dword [0x6d67a8]
cmp ecx, edx
jne 0x465b83
push eax
call fcn.00468610
jmp 0x465bcc
mov edx, dword [eax + 0x268]
mov ecx, dword [eax + 0x26c]
or edx, ecx
je 0x465b1b
push eax
call fcn.00468d60
jmp 0x465bcc
mov cl, byte [eax + 0x4a0]
push eax
test cl, cl
je 0x465b30
call fcn.00468af0
jmp 0x465bcc
call fcn.00468400
jmp 0x465bcc
mov ecx, dword [eax]
mov edx, dword [0xa23350]
cmp ecx, edx
jne 0x465b5d
call fcn.005062e0
test eax, eax
jne 0x465b5a
mov edx, dword [ebp - 0x10]
push edx
call fcn.00469530
jmp 0x465bcc
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x258]
xor edx, edx
and ecx, 0x4000
or ecx, edx
je 0x465b9d
mov ecx, dword [eax]
mov edx, dword [0x6d67a8]
cmp ecx, edx
jne 0x465b83
push eax
call fcn.00468610
jmp 0x465bcc
mov ecx, dword [0x6d6a00]
xor edx, edx
and ecx, 0x8000
or ecx, edx
je 0x465bd2
push eax
call fcn.00468610
jmp 0x465bcc
mov edx, dword [eax + 0x268]
mov ecx, dword [eax + 0x26c]
or edx, ecx
je 0x465bb5
push eax
call fcn.00469530
jmp 0x465bcc
mov cl, byte [eax + 0x4a0]
push eax
test cl, cl
je 0x465bc7
call fcn.00469070
jmp 0x465bcc
call fcn.0045e010
mov eax, dword [ebp - 0x10]
add esp, 4
mov edi, 1
lea ecx, [eax + 0x430]
call fcn.00474290
cmp eax, 6
jbe 0x465c08
mov eax, dword [ebp - 0x10]
lea ecx, [eax + 0x430]
call fcn.0045a570
mov ecx, dword [ebp - 0x10]
add ecx, 0x430
call fcn.00474290
cmp eax, 6
ja 0x465be7
test edi, edi
jne 0x465d69
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x10]
test dword [eax], 0x20000000
je 0x465cac
mov edx, dword [esi]
mov eax, dword [0xa23350]
cmp edx, eax
jne 0x465c47
call fcn.005062e0
test eax, eax
jne 0x465c44
mov eax, dword [ebp - 0x10]
push eax
call fcn.00468d60
jmp 0x465d66
mov esi, dword [ebp - 0x10]
mov eax, dword [esi + 0x258]
xor ecx, ecx
and eax, 0x4000
or eax, ecx
je 0x465c72
mov ecx, dword [esi]
mov eax, dword [0x6d67a8]
cmp ecx, eax
jne 0x465cf8
push esi
call fcn.00468610
jmp 0x465d66
mov edx, dword [esi + 0x268]
mov eax, dword [esi + 0x26c]
or edx, eax
je 0x465c8d
push esi
call fcn.00468d60
jmp 0x465d66
mov al, byte [esi + 0x4a0]
push esi
test al, al
je 0x465ca2
call fcn.00468af0
jmp 0x465d66
call fcn.00468400
jmp 0x465d66
mov eax, dword [esi]
mov ecx, dword [0xa23350]
cmp eax, ecx
jne 0x465ccd
call fcn.005062e0
test eax, eax
jne 0x465cca
mov ecx, dword [ebp - 0x10]
push ecx
jmp 0x465d61
mov esi, dword [ebp - 0x10]
mov ecx, dword [esi + 0x258]
mov eax, dword [esi + 0x25c]
and ecx, 0x4000
xor edx, edx
or ecx, edx
je 0x465d10
mov edx, dword [esi]
mov eax, dword [0x6d67a8]
cmp edx, eax
jne 0x465cf8
push esi
call fcn.00468610
jmp 0x465d66
mov eax, dword [0x6d6a00]
xor ecx, ecx
and eax, 0x8000
or eax, ecx
je 0x465d6c
push esi
call fcn.00468610
jmp 0x465d66
mov edx, eax
xor ecx, ecx
and edx, 0x1000
or ecx, edx
jne 0x465d60
mov edx, eax
xor ecx, ecx
and edx, 0x4000
or ecx, edx
jne 0x465d60
and eax, 0x8000
xor ecx, ecx
or ecx, eax
jne 0x465d60
mov eax, dword [esi + 0x268]
mov ecx, dword [esi + 0x26c]
or eax, ecx
jne 0x465d60
mov al, byte [esi + 0x4a0]
push esi
test al, al
je 0x465d59
call fcn.00469070
jmp 0x465d66
call fcn.0045e010
jmp 0x465d66
push esi
call fcn.00469530
add esp, 4
mov esi, dword [ebp - 0x10]
mov eax, dword [0xa23350]
mov ecx, dword [esi]
cmp ecx, eax
jne 0x465f17
test esi, esi
je 0x465f17
mov ecx, dword [0xa26284]
test ecx, ecx
je 0x465d9f
cmp eax, 0x6000
jl 0x465d9f
cmp eax, 0x7fff
jle 0x465f17
cmp eax, 1
jl 0x465daf
cmp eax, 0x3fff
jle 0x465f17
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x465f17
mov eax, dword [esi + 0x258]
xor ecx, ecx
and eax, 0x4000
or eax, ecx
je 0x465ddd
mov eax, dword [0x6d6a00]
and eax, 0x8000
or eax, ecx
je 0x465f17
mov ecx, 0xa24660
call fcn.00474150
test al, al
jne 0x465e3b
lea ecx, [ebp - 0x10]
lea edx, [ebp - 0xc0]
push ecx
push edx
mov ecx, 0xa24660
call fcn.00474510
mov eax, dword [eax]
lea ecx, [ebp - 0xc8]
push ecx
mov ecx, 0xa24660
mov dword [ebp - 0x3c], eax
call fcn.00474140
push eax
lea ecx, [ebp - 0x3c]
call fcn.004865d0
test al, al
je 0x465e3b
lea ecx, [ebp - 0x3c]
call fcn.005410a0
mov eax, dword [eax + 4]
test eax, eax
je 0x465e3b
push 1
mov ecx, eax
call fcn.00457ef0
mov edx, dword [ebp - 0x10]
or ecx, 0xffffffff
add edx, 0x68
xor eax, eax
mov edi, edx
push 0x7a3048
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
call fcn.005a9050
push 0x18
call fcn.00613321
add esp, 0x10
mov dword [ebp - 0x24], eax
test eax, eax
mov dword [ebp - 4], 0
je 0x465e7c
mov ecx, eax
call fcn.00479a10
mov esi, eax
jmp 0x465e7e
xor esi, esi
test esi, esi
mov dword [ebp - 4], 0xffffffff
je 0x465f14
mov eax, dword [0x7a3048]
push 0
cdq
sub eax, edx
mov ecx, esi
sar eax, 1
push eax
mov eax, dword [ebp - 0x10]
push eax
call fcn.00479a30
mov eax, dword [0xa23350]
cmp eax, 0x4000
jl 0x465eec
cmp eax, 0x7fff
jg 0x465eec
cmp eax, 0x6000
push 1
jl 0x465edb
mov ecx, esi
call fcn.00469ac0
mov eax, dword [0x7a3048]
mov ecx, dword [ebp - 0x10]
cdq
sub eax, edx
push 0
sar eax, 1
push eax
push ecx
jmp 0x465efd
mov eax, dword [0x7a3048]
cdq
sub eax, edx
mov edx, dword [ebp - 0x10]
sar eax, 1
push eax
push edx
jmp 0x465efd
mov eax, dword [0x7a3048]
push 0
cdq
sub eax, edx
sar eax, 1
push eax
mov eax, dword [ebp - 0x10]
push eax
mov ecx, esi
call fcn.00479a30
lea ecx, [ebp - 0x10]
push ecx
mov ecx, 0xa24660
call fcn.004744b0
mov dword [eax], esi
mov esi, dword [ebp - 0x10]
lea ecx, [esi + 0x414]
call fcn.00474260
test eax, eax
je 0x465f32
mov edx, dword [ebp - 0x10]
push edx
call fcn.0040f050
add esp, 4
mov eax, dword [0xa262c8]
test eax, eax
je 0x465f7a
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
mov eax, dword [ebp - 0x10]
mov esi, ecx
sub esi, edx
mov edi, dword [eax + 8]
add esi, 0x1f
sar esi, 1
cmp edi, esi
jne 0x465f7d
lea ecx, [edx + ecx - 0x1f]
mov edx, dword [eax + 0xc]
cmp edx, ecx
jne 0x465f7d
mov edx, dword [0xa4f028]
mov ecx, dword [ebx + 0x14]
mov eax, dword [edx + 4]
mov edx, dword [ebx + 0x10]
push eax
push ecx
push edx
call dword [0xd36aa8]
add esp, 0xc
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
mov edx, dword [0x6d67a8]
cmp ecx, edx
je 0x465fba
call fcn.005062e0
test eax, eax
mov eax, dword [ebp - 0x10]
jne 0x465fba
mov ecx, dword [eax + 0x258]
xor edx, edx
and ecx, 0x4000
or ecx, edx
jne 0x465fba
mov edx, dword [0xce8b10]
push edx
push eax
call fcn.0050a400
mov eax, dword [ebp - 0x10]
add esp, 8
mov ecx, dword [0xa26284]
test ecx, ecx
je 0x465fe8
mov ecx, dword [eax]
cmp ecx, 0x6000
jb 0x465fe8
cmp ecx, 0x7fff
ja 0x465fe8
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x465fe8
lea eax, [ebp - 0x10]
mov ecx, 0x8a30f0
push eax
jmp 0x46601b
mov ecx, dword [eax]
cmp ecx, 1
jb 0x466023
cmp ecx, 0x3fff
ja 0x466023
lea ecx, [ebp - 0x10]
push ecx
mov ecx, 0x7e3068
call fcn.004745f0
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0xb8]
test ecx, ecx
je 0x466023
lea edx, [ebp - 0x10]
mov ecx, 0x9831e0
push edx
call fcn.004745f0
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
cmp ecx, 0x6000
jb 0x466ae6
cmp ecx, 0x7fff
ja 0x466ae6
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x466ae6
mov ecx, dword [eax + 0x258]
xor edx, edx
and ecx, 0x4000
or ecx, edx
je 0x46606e
mov ecx, dword [0x6d6a00]
and ecx, 0x8000
or ecx, edx
je 0x466ae6
push eax
call fcn.00473f40
add esp, 4
test eax, eax
je 0x466089
mov eax, dword [ebp - 0x10]
push eax
call fcn.00473cc0
jmp 0x466ae3
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.00473c30
jmp 0x466ae3
cmp eax, 0xa000
jb 0x466ae6
cmp eax, 0xdfff
ja 0x466ae6
lea edx, [ebp - 0xd0]
mov ecx, 0x6d6208
push edx
call fcn.00474140
push eax
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0xc4]
push eax
push ecx
mov ecx, 0x6d6208
call fcn.004743a0
mov ecx, eax
call fcn.004865d0
test al, al
je 0x466ae6
mov edx, dword [ebp - 0x10]
mov ecx, 0x6d6208
push edx
call fcn.00474360
mov eax, dword [eax]
xor esi, esi
mov dword [0xced980], eax
mov ecx, dword [eax + 4]
cmp ecx, 0xea60
mov dword [ebp - 0x2c], ecx
jne 0x46634d
mov eax, dword [eax + 0x18]
cmp eax, 1
jb 0x46611b
cmp eax, 0x64
jae 0x466120
jmp 0x466164
cmp eax, 0x64
jb 0x46612e
cmp eax, 0x1f4
jae 0x466135
mov esi, 1
jmp 0x466164
cmp eax, 0x1f4
jb 0x466143
cmp eax, 0x9c4
jae 0x46614a
mov esi, 2
jmp 0x466164
cmp eax, 0x9c4
jb 0x466158
cmp eax, 0x2710
jae 0x46615f
mov esi, 3
jmp 0x466164
cmp eax, 0x2710
jb 0x466164
mov esi, 4
mov eax, dword [ebp - 0x10]
mov edx, dword [esi*4 + 0xa4baec]
lea edi, [esi*4 + 0xa4baec]
mov cx, word [eax]
mov eax, dword [edx]
mov dword [ebp - 0x24], edi
mov edx, dword [ebx + 0x10]
push ecx
mov ecx, dword [ebx + 0x14]
push eax
push ecx
push edx
call dword [0xd36aa4]
mov eax, dword [ebp - 0x10]
add esp, 0x10
mov ecx, dword [eax]
mov eax, dword [0xa23350]
cmp ecx, eax
jne 0x466217
mov edx, dword [ebx + 0x10]
mov ecx, dword [0xced980]
mov dword [0xa03308], edx
mov eax, dword [ebx + 0x14]
mov dword [0xa0330c], eax
mov dword [0xa03310], 0xffffff
mov edx, dword [ecx + 0x18]
push edx
push 0x645a20
push 0xa03328
call fcn.006133d6
add esp, 0xc
mov ecx, 0xa03308
call fcn.004683a0
push 0xa03308
mov ecx, 0x9831f0
call fcn.004747d0
mov ecx, dword [edi]
mov eax, dword [esi*4 + 0xa439cc]
push 4
push 4
mov edx, dword [ecx]
mov ecx, dword [ebx + 0x10]
push 4
push eax
mov eax, dword [ebx + 0x14]
push edx
push eax
push ecx
call dword [0xd36ab8]
add esp, 0x1c
jmp 0x466850
mov eax, dword [0xa2633c]
test eax, eax
je 0x466333
mov edx, dword [ebx + 0x10]
mov ecx, dword [0xced980]
mov dword [0xa03308], edx
mov eax, dword [ebx + 0x14]
mov dword [0xa0330c], eax
mov dword [0xa03310], 0xffffff
mov edx, dword [ecx + 0x18]
push edx
push 0x645a20
push 0xa03328
call fcn.006133d6
add esp, 0xc
mov ecx, 0xa03308
call fcn.004683a0
push 0xa03308
mov ecx, 0x9831f0
call fcn.004747d0
mov eax, dword [0xced980]
push 0xa
push 0x9631cc
mov ecx, dword [eax + 0x18]
push ecx
call fcn.0061d6c5
mov edi, 0x9631cc
or ecx, 0xffffffff
xor eax, eax
push 0x8a3128
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x9631cc
call fcn.005a9050
mov eax, dword [ebx + 0x14]
mov edx, dword [0x8a312c]
mov ecx, dword [ebx + 0x10]
add esp, 0x18
add edx, eax
push edx
mov edx, dword [0x8a3128]
add edx, ecx
push edx
push eax
push ecx
push 0x7e3050
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [0xcf95d4]
mov ecx, dword [0xcf95d0]
push eax
push ecx
push 0x7e3050
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x466321
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
mov eax, dword [esi*4 + 0xa439cc]
mov dword [0xa23350], edx
mov edx, dword [ecx]
adc dword [ebx + 0x46a144b], ecx
push 4
push 4
push eax
mov eax, dword [edx]
mov edx, dword [ebx + 0x10]
push eax
push ecx
push edx
call dword [0xd36ab8]
add esp, 0x1c
jmp 0x466850
mov ecx, dword [ebp - 0x24]
mov eax, dword [esi*4 + 0xa439cc]
push eax
mov edx, dword [ecx]
jmp 0x46683c
mov ecx, dword [edi]
mov eax, dword [esi*4 + 0xa439cc]
push eax
mov eax, dword [ebx + 0x14]
mov edx, dword [ecx]
mov ecx, dword [ebx + 0x10]
push edx
push eax
push ecx
jmp 0x466847
push ecx
mov ecx, 0xced988
call fcn.0053bf30
test eax, eax
je 0x466850
lea edx, [ebp - 0x2c]
mov ecx, 0xced988
push edx
call fcn.004743f0
xor ecx, ecx
mov cx, word [eax + 0x4e]
mov eax, dword [ecx*4 + 0xa43b20]
test eax, eax
je 0x466850
mov edx, dword [ebp - 0x10]
lea ecx, [ebp - 0x2c]
mov ax, word [edx]
push eax
push ecx
mov ecx, 0xced988
call fcn.004743f0
xor edx, edx
mov dx, word [eax + 0x4e]
mov eax, dword [edx*4 + 0xa43b20]
mov edx, dword [ebx + 0x14]
mov ecx, dword [eax]
mov eax, dword [ebx + 0x10]
push ecx
push edx
push eax
call dword [0xd36aa4]
mov ecx, dword [ebp - 0x10]
mov eax, dword [0xa23350]
add esp, 0x10
mov edx, dword [ecx]
cmp edx, eax
jne 0x4664ec
mov eax, dword [ebx + 0x10]
mov edx, dword [0xced980]
mov dword [0xa03308], eax
mov ecx, dword [ebx + 0x14]
push edx
mov dword [0xa0330c], ecx
call fcn.00473a00
add esp, 4
mov dword [0xa03310], eax
lea eax, [ebp - 0x2c]
mov ecx, 0xced988
push eax
call fcn.004743f0
mov ecx, dword [eax]
mov dword [0xa03328], ecx
or eax, 0xa03328
mov edx, dword [eax + 4]
mov dword [0xa0332c], edx
mov ecx, dword [eax + 8]
mov dword [0xa03330], ecx
mov dl, byte [eax + 0xc]
mov eax, dword [0xced980]
mov byte [0xa03334], dl
mov byte [0xa03334], 0
mov ax, word [eax + 0x26]
test ax, ax
jbe 0x46647b
and eax, 0xffff
push eax
push 0x645a18
push 0x9c3280
call fcn.006133d6
mov edi, 0x9c3280
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0xa03328
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0xced980]
mov ax, word [eax + 0x24]
test ax, ax
jbe 0x4664ce
and eax, 0xffff
push eax
push 0x645a14
push 0x9c3280
call fcn.006133d6
mov edi, 0x9c3280
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0xa03328
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0xa03308
call fcn.004683a0
push 0xa03308
mov ecx, 0x9831f0
call fcn.004747d0
jmp 0x4666a7
mov eax, dword [0xa2633c]
test eax, eax
je 0x466805
mov eax, dword [ebx + 0x10]
mov edx, dword [0xced980]
mov dword [0xa03308], eax
mov ecx, dword [ebx + 0x14]
push edx
mov dword [0xa0330c], ecx
call fcn.00473a00
add esp, 4
mov dword [0xa03310], eax
lea eax, [ebp - 0x2c]
mov ecx, 0xced988
push eax
call fcn.004743f0
mov ecx, dword [eax]
mov dword [0xa03328], ecx
mov edx, dword [eax + 4]
mov dword [0xa0332c], edx
mov ecx, dword [eax + 8]
mov dword [0xa03330], ecx
mov dl, byte [eax + 0xc]
mov eax, dword [0xced980]
mov byte [0xa03334], dl
mov byte [0xa03334], 0
mov ax, word [eax + 0x26]
test ax, ax
jbe 0x4665a9
and eax, 0xffff
push eax
push 0x645a18
push 0x9c3280
call fcn.006133d6
mov edi, 0x9c3280
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0xa03328
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0xced980]
mov ax, word [eax + 0x24]
test ax, ax
jbe 0x4665fc
and eax, 0xffff
push eax
push 0x645a14
push 0x9c3280
call fcn.006133d6
mov edi, 0x9c3280
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0xa03328
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0xa03308
call fcn.004683a0
push 0xa03308
mov ecx, 0x9831f0
call fcn.004747d0
mov eax, dword [0xa4f274]
test eax, eax
je 0x4666fd
lea eax, [ebp - 0x2c]
push 0x8a3128
push eax
mov ecx, 0xced988
call fcn.004743f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [ebp - 0x2c]
push ecx
mov ecx, 0xced988
call fcn.004743f0
push eax
call fcn.005a9050
mov eax, dword [ebx + 0x14]
mov edx, dword [0x8a312c]
mov ecx, dword [ebx + 0x10]
add esp, 0xc
add edx, eax
push edx
mov edx, dword [0x8a3128]
add edx, ecx
push edx
push eax
push ecx
push 0x7e3050
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [0xcf95d4]
mov ecx, dword [0xcf95d0]
push eax
push ecx
push 0x7e3050
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x466805
mov edx, dword [ebx + 4]
mov dword [0xa23350], edx
push 4
push 4
lea eax, [ebp - 0x2c]
push 4
push eax
mov ecx, 0xced988
call fcn.004743f0
xor ecx, ecx
mov cx, word [eax + 0x4e]
lea eax, [ebp - 0x2c]
mov edx, dword [ecx*4 + 0xa2e594]
mov ecx, 0xced988
push edx
push eax
call fcn.004743f0
xor ecx, ecx
mov cx, word [eax + 0x4e]
mov edx, dword [ecx*4 + 0xa43b20]
mov ecx, dword [ebx + 0x14]
mov eax, dword [edx]
mov edx, dword [ebx + 0x10]
push eax
push ecx
push edx
call dword [0xd36ab8]
add esp, 0x1c
jmp 0x466850
lea eax, [ebp - 0x2c]
mov ecx, 0xced988
push eax
call fcn.004743f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov edx, ecx
mov esi, edi
mov edi, 0x8630dc
push 0x8630dc
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00586da0
add esp, 8
lea eax, [ebp - 0x2c]
mov ecx, 0xced988
push 0x8a3128
push eax
call fcn.004743f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x8630dc
call fcn.005a9050
mov eax, dword [ebx + 0x14]
mov edx, dword [0x8a312c]
mov ecx, dword [ebx + 0x10]
add esp, 0xc
add edx, eax
push edx
mov edx, dword [0x8a3128]
add edx, ecx
push edx
push eax
push ecx
push 0x7e3050
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [0xcf95d4]
mov ecx, dword [0xcf95d0]
push eax
push ecx
push 0x7e3050
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x466805
mov edx, dword [ebx + 4]
push 4
push 4
lea eax, [ebp - 0x2c]
push 4
push eax
mov ecx, 0xced988
mov dword [0xa23350], edx
call fcn.004743f0
xor ecx, ecx
mov cx, word [eax + 0x4e]
lea eax, [ebp - 0x2c]
mov edx, dword [ecx*4 + 0xa2e594]
mov ecx, 0xced988
push edx
push eax
call fcn.004743f0
xor ecx, ecx
mov cx, word [eax + 0x4e]
mov edx, dword [ecx*4 + 0xa43b20]
mov ecx, dword [ebx + 0x14]
mov eax, dword [edx]
mov edx, dword [ebx + 0x10]
push eax
push ecx
push edx
call dword [0xd36ab8]
add esp, 0x1c
jmp 0x466850
lea eax, [ebp - 0x2c]
mov ecx, 0xced988
push eax
call fcn.004743f0
xor ecx, ecx
mov cx, word [eax + 0x4e]
lea eax, [ebp - 0x2c]
mov edx, dword [ecx*4 + 0xa2e594]
mov ecx, 0xced988
push edx
push eax
call fcn.004743f0
xor ecx, ecx
mov cx, word [eax + 0x4e]
mov edx, dword [ecx*4 + 0xa43b20]
mov eax, dword [edx]
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x10]
push eax
push ecx
push edx
call dword [0xd36aac]
add esp, 0x10
mov eax, dword [0xa262c8]
test eax, eax
je 0x466ae6
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x34]
cmp dword [eax + 8], ecx
jne 0x466ae6
mov edx, dword [ebp - 0x28]
mov ecx, dword [eax + 0xc]
cmp ecx, edx
jne 0x466ae6
mov eax, dword [0xa4f028]
mov edx, dword [0x723034]
mov ecx, dword [eax + 0x2c]
mov eax, dword [0x723030]
push ecx
push edx
push eax
call dword [0xd36aa8]
add esp, 0xc
jmp 0x466ae6
cmp eax, 3
jne 0x4668b8
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x466ae6
call fcn.0059ba80
jmp 0x466ae6
cmp eax, 4
jne 0x4668d2
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x466ae6
call fcn.0041d220
jmp 0x466ae6
cmp eax, 5
jne 0x466a18
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0xcc]
mov dword [ebp - 0x24], ecx
push edx
mov ecx, 0x6d6208
call fcn.00474140
push eax
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x74]
push eax
push ecx
mov ecx, 0x6d6208
call fcn.004743a0
mov ecx, eax
call fcn.004865d0
test al, al
je 0x466ae6
mov edx, dword [ebx + 4]
lea eax, [ebp - 0x24]
push eax
mov ecx, 0x6d6208
mov dword [ebp - 0x24], edx
call fcn.00474360
mov eax, dword [eax]
test eax, eax
mov dword [0xced140], eax
je 0x466ae6
mov edx, dword [eax + 0x20]
mov ecx, dword [0x6d6790]
add edx, 0x42
cmp ecx, edx
jbe 0x46695b
mov dword [eax + 0x20], ecx
mov eax, dword [0xced140]
mov ecx, dword [eax + 4]
inc ecx
mov dword [eax + 4], ecx
mov eax, dword [0xced140]
mov edx, dword [eax + 4]
xor ecx, ecx
mov cx, word [0xa2e590]
cmp edx, ecx
jb 0x466977
mov dword [eax + 4], 0
mov eax, dword [0xced140]
mov dx, word [eax]
mov eax, dword [eax + 4]
mov ecx, dword [0xa43a68]
push edx
mov edx, dword [ecx + eax*4]
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
sub eax, 0x96
push edx
sub ecx, 0x32
push eax
push ecx
call dword [0xd36aa4]
mov edx, dword [0xa2e498]
mov eax, dword [0xced140]
push edx
mov edx, dword [0xa43a68]
mov ecx, dword [eax + 4]
mov eax, dword [edx + ecx*4]
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x10]
sub ecx, 0x96
push eax
sub edx, 0x32
push ecx
push edx
call dword [0xd36ad0]
mov eax, dword [0xced140]
add esp, 0x20
cmp dword [eax + 0x24], 1
jne 0x466ae6
mov cx, word [ebx + 0x10]
mov dx, word [ebx + 0x14]
sub cx, 0x32
sub dx, 0x96
and ecx, 0xffff
and edx, 0xffff
shl ecx, 0x10
or ecx, edx
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], ecx
push eax
mov ecx, 0x9c3270
call fcn.004745f0
jmp 0x466ae6
cmp eax, 6
jne 0x466ae6
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x80]
mov dword [ebp - 0x24], ecx
push edx
mov ecx, 0x6d6208
call fcn.00474140
push eax
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x78]
push eax
push ecx
mov ecx, 0x6d6208
call fcn.004743a0
mov ecx, eax
call fcn.004865d0
test al, al
je 0x466ae6
mov edx, dword [ebx + 4]
lea eax, [ebp - 0x24]
push eax
mov ecx, 0x6d6208
mov dword [ebp - 0x24], edx
call fcn.00474360
mov edi, dword [eax]
push edi
call fcn.0045e010
add esp, 4
lea ecx, [edi + 0x460]
call fcn.00474340
test eax, eax
jne 0x466ae6
lea ecx, [ebp - 0x4c]
lea esi, [edi + 4]
push ecx
mov ecx, 0x6d6208
call fcn.00474140
push eax
lea edx, [ebp - 0x40]
push esi
push edx
mov ecx, 0x6d6208
call fcn.004743a0
mov ecx, eax
call fcn.004865d0
test al, al
je 0x466adb
push esi
mov ecx, 0x6d6208
call fcn.00474360
mov eax, dword [eax]
mov dword [eax + 0x1c], 1
mov eax, dword [eax]
cmp eax, dword [0x6d67a8]
jne 0x466adb
push 0
mov ecx, 0xd12398
call fcn.00469ac0
mov ecx, dword [edi]
push ecx
call fcn.00455f00
add esp, 4
mov edx, dword [ebp - 0x38]
push edx
call fcn.00612e45
mov eax, dword [ebp - 0x30]
mov ecx, dword [0x7a303c]
add esp, 4
mov eax, dword [eax]
cmp eax, ecx
mov dword [ebp - 0x30], eax
jne 0x463862
mov ecx, 0x7a3038
call fcn.00474a70
mov ecx, 0x68efd0
call fcn.00474150
test al, al
jne 0x466be5
lea ecx, [ebp - 0x40]
push ecx
mov ecx, 0x68efd0
call fcn.0043d9c0
mov edx, dword [eax]
lea eax, [ebp - 0x34]
push eax
mov ecx, 0x68efd0
mov dword [ebp - 0x24], edx
call fcn.00474140
push eax
lea ecx, [ebp - 0x24]
call fcn.004865d0
test al, al
je 0x466be5
lea ecx, [ebp - 0x24]
call fcn.005410a0
mov esi, dword [eax]
test esi, esi
je 0x466bb8
lea ecx, [esi + 0x27c]
test ecx, ecx
je 0x466bb8
lea ecx, [ebp - 0x24]
call fcn.005410a0
mov edx, dword [esi + 0x340]
mov edi, dword [0xa23354]
mov ecx, dword [esi + 0x390]
mov ebx, dword [0xa23358]
sub edx, edi
mov edi, dword [esi + 0x2d8]
mov eax, dword [eax + 4]
add edx, 0x180
mov ecx, dword [edi + ecx*4]
mov edi, dword [esi + 0x358]
add ecx, edi
sub ecx, ebx
sub ecx, 0x20
push ecx
push edx
mov ecx, eax
call fcn.0041c260
lea edx, [ebp - 0x40]
push 0
push edx
lea ecx, [ebp - 0x24]
call fcn.0045a550
lea eax, [ebp - 0x34]
mov ecx, 0x68efd0
push eax
call fcn.00474140
push eax
lea ecx, [ebp - 0x24]
call fcn.004865d0
test al, al
jne 0x466b56
mov ecx, 0x68f010
call fcn.00474150
test al, al
jne 0x466d5d
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x3c], 0
push ecx
mov ecx, 0x68f010
call fcn.0043d9c0
mov edx, dword [eax]
lea eax, [ebp - 0x30]
push eax
mov ecx, 0x68f010
mov dword [ebp - 0x24], edx
call fcn.00474140
push eax
lea ecx, [ebp - 0x24]
call fcn.004865d0
test al, al
je 0x466dbc
lea ecx, [ebp - 0x24]
call fcn.005410a0
mov ebx, dword [eax]
test ebx, ebx
je 0x466cc7
lea ecx, [ebx + 0x27c]
test ecx, ecx
je 0x466cc7
cmp ebx, dword [0x6d71a0]
jne 0x466c5d
mov dword [ebp - 0x3c], 1
jmp 0x466cc7
lea ecx, [ebp - 0x24]
call fcn.005410a0
mov edx, dword [eax + 4]
mov esi, dword [0xa23354]
mov dword [ebp - 0x34], edx
mov eax, dword [ebx + 0x390]
mov edi, dword [ebx + 0x340]
mov ecx, dword [ebx + 0x2d8]
sub edi, esi
add ebx, 0x68
mov esi, dword [ecx + eax*4]
mov ecx, dword [ebx + 0x2f0]
mov eax, dword [0xa23358]
add esi, ecx
push 0x12
sub esi, eax
push ebx
push 0xa2469c
add edi, 0x180
sub esi, 0x20
call fcn.00613b90
add esp, 0xc
test eax, eax
jne 0x466cbb
push 3
jmp 0x466cbd
push 0
mov ecx, dword [ebp - 0x34]
push esi
push edi
call fcn.0041c550
lea edx, [ebp - 0x40]
push 0
push edx
lea ecx, [ebp - 0x24]
call fcn.00474160
lea eax, [ebp - 0x30]
mov ecx, 0x68f010
push eax
call fcn.00474140
push eax
lea ecx, [ebp - 0x24]
call fcn.004865d0
test al, al
jne 0x466c30
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x466dbc
mov eax, dword [0x6d71a0]
mov ebx, dword [0xa23354]
push 0x12
mov ecx, dword [eax + 0x390]
mov edx, dword [eax + 0x2d8]
mov edi, dword [eax + 0x340]
add eax, 0x68
mov esi, dword [edx + ecx*4]
mov edx, dword [eax + 0x2f0]
mov ecx, dword [0xa23358]
add esi, edx
sub edi, ebx
sub esi, ecx
push eax
push 0xa2469c
add edi, 0x180
sub esi, 0x20
call fcn.00613b90
add esp, 0xc
test eax, eax
jne 0x466d57
push 4
push esi
push edi
jmp 0x466db1
push 2
push esi
push edi
jmp 0x466db1
mov ecx, dword [0x6d71a0]
test ecx, ecx
je 0x466dbc
mov eax, dword [0x6d6a00]
xor edx, edx
and eax, 0x400
or eax, edx
jne 0x466dbc
mov eax, dword [ecx + 0x390]
mov edx, dword [ecx + 0x2d8]
mov esi, dword [ecx + 0x358]
mov ecx, dword [ecx + 0x340]
mov eax, dword [edx + eax*4]
mov edx, dword [0xa23358]
add eax, esi
mov esi, dword [0xa23354]
sub eax, edx
sub ecx, esi
sub eax, 0x20
push 1
add ecx, 0x180
push eax
push ecx
mov ecx, dword [0x68f060]
call fcn.0041c550
mov ecx, 0x68efe0
call fcn.00474150
test al, al
jne 0x466f53
mov eax, dword [0xce8b10]
test eax, eax
jne 0x466f53
lea edx, [ebp - 0x40]
mov ecx, 0x68efe0
push edx
call fcn.0043d9c0
mov eax, dword [eax]
lea ecx, [ebp - 0x3c]
push ecx
mov ecx, 0x68efe0
mov dword [ebp - 0x28], eax
call fcn.00474140
push eax
lea ecx, [ebp - 0x28]
call fcn.004865d0
test al, al
je 0x466f53
lea ecx, [ebp - 0x28]
call fcn.005410a0
mov esi, dword [eax]
xor ecx, ecx
mov dword [0x8a3148], esi
mov eax, dword [esi + 0x258]
and eax, 0x4000
or eax, ecx
je 0x466e38
lea edx, [ebp - 0x40]
push ecx
push edx
jmp 0x466f2c
test esi, esi
je 0x466f26
lea eax, [esi + 0x27c]
test eax, eax
je 0x466f26
mov ecx, dword [esi]
mov eax, dword [0xa23350]
cmp ecx, eax
je 0x466f1e
cmp dword [esi + 0x250], 0xc
je 0x466f1e
push esi
call fcn.00473f60
add esp, 4
test eax, eax
je 0x466eed
push esi
call fcn.00473d30
add esp, 4
test eax, eax
jne 0x466eed
lea ecx, [ebp - 0x28]
call fcn.005410a0
mov edx, dword [eax + 4]
push esi
mov dword [ebp - 0x34], edx
mov eax, dword [esi + 0x390]
mov ecx, dword [esi + 0x2d8]
mov ebx, dword [esi + 0x340]
mov edx, dword [0xa23354]
mov edi, dword [ecx + eax*4]
mov eax, dword [esi + 0x358]
sub ebx, edx
mov edx, dword [0xa23358]
add edi, eax
add ebx, 0x185
sub edi, edx
sub edi, 0x24
call fcn.00473ea0
add esp, 4
test eax, eax
je 0x466ed9
push 1
jmp 0x466edb
push 0
mov ecx, dword [ebp - 0x34]
push edi
push ebx
call fcn.0041c790
lea edx, [ebp - 0x4c]
push 0
push edx
jmp 0x466f2c
lea ecx, [ebp - 0x28]
call fcn.005410a0
mov eax, dword [eax + 4]
test eax, eax
je 0x466f05
push 1
mov ecx, eax
call fcn.00457ef0
mov eax, dword [ebp - 0x28]
lea ecx, [ebp - 0x78]
push eax
push ecx
mov ecx, 0x68efe0
call fcn.004741a0
mov edx, dword [eax]
mov dword [ebp - 0x28], edx
jmp 0x466f34
lea eax, [ebp - 0x80]
push 0
push eax
jmp 0x466f2c
lea ecx, [ebp - 0x74]
push 0
push ecx
lea ecx, [ebp - 0x28]
call fcn.004741c0
lea edx, [ebp - 0x3c]
mov ecx, 0x68efe0
push edx
call fcn.00474140
push eax
lea ecx, [ebp - 0x28]
call fcn.004865d0
test al, al
jne 0x466e0d
mov ecx, 0x68eff0
call fcn.00474150
test al, al
jne 0x4670e4
mov eax, dword [0xce8b10]
test eax, eax
jne 0x4670e4
lea eax, [ebp - 0x40]
mov ecx, 0x68eff0
push eax
call fcn.0043d9c0
mov ecx, dword [eax]
lea edx, [ebp - 0x3c]
mov dword [ebp - 0x28], ecx
push edx
mov ecx, 0x68eff0
call fcn.00474140
push eax
lea ecx, [ebp - 0x28]
call fcn.004865d0
test al, al
je 0x4670e4
lea ecx, [ebp - 0x28]
call fcn.005410a0
mov edi, dword [eax]
xor ecx, ecx
mov eax, dword [edi + 0x258]
and eax, 0x4000
or eax, ecx
je 0x466fc9
lea eax, [ebp - 0x40]
push ecx
push eax
jmp 0x4670bd
test edi, edi
je 0x4670b7
lea ecx, [edi + 0x27c]
test ecx, ecx
je 0x4670b7
mov edx, dword [edi]
mov eax, dword [0xa23350]
cmp edx, eax
je 0x4670af
cmp dword [edi + 0x250], 0xc
je 0x4670af
push edi
call fcn.00473f80
add esp, 4
test eax, eax
je 0x46707e
push edi
call fcn.00473d30
add esp, 4
test eax, eax
jne 0x46707e
lea ecx, [ebp - 0x28]
call fcn.005410a0
mov eax, dword [eax + 4]
mov edx, dword [0xa23354]
mov dword [ebp - 0x34], eax
mov eax, dword [edi + 0x390]
mov ecx, dword [edi + 0x2d8]
mov ebx, dword [edi + 0x340]
sub ebx, edx
mov edx, dword [0xa23358]
mov esi, dword [ecx + eax*4]
mov eax, dword [edi + 0x358]
add esi, eax
push edi
sub esi, edx
add ebx, 0x185
sub esi, 0x24
call fcn.00473ea0
add esp, 4
test eax, eax
je 0x46706a
push 1
jmp 0x46706c
push 0
mov ecx, dword [ebp - 0x34]
push esi
push ebx
call fcn.0041c8e0
lea edx, [ebp - 0x4c]
push 0
push edx
jmp 0x4670bd
lea ecx, [ebp - 0x28]
call fcn.005410a0
mov eax, dword [eax + 4]
test eax, eax
je 0x467096
push 1
mov ecx, eax
call fcn.00457ef0
mov eax, dword [ebp - 0x28]
lea ecx, [ebp - 0x78]
push eax
push ecx
mov ecx, 0x68eff0
call fcn.004741e0
mov edx, dword [eax]
mov dword [ebp - 0x28], edx
jmp 0x4670c5
lea eax, [ebp - 0x80]
push 0
push eax
jmp 0x4670bd
lea ecx, [ebp - 0x74]
push 0
push ecx
lea ecx, [ebp - 0x28]
call fcn.00474200
lea edx, [ebp - 0x3c]
mov ecx, 0x68eff0
push edx
call fcn.00474140
push eax
lea ecx, [ebp - 0x28]
call fcn.004865d0
test al, al
jne 0x466fa4
mov ecx, 0x68f050
call fcn.00474150
test al, al
jne 0x467262
mov eax, dword [0xce8b10]
test eax, eax
jne 0x467262
lea eax, [ebp - 0x40]
mov ecx, 0x68f050
push eax
call fcn.0043d9c0
mov ecx, dword [eax]
lea edx, [ebp - 0x34]
mov dword [ebp - 0x28], ecx
push edx
mov ecx, 0x68f050
call fcn.00474140
push eax
lea ecx, [ebp - 0x28]
call fcn.004865d0
test al, al
je 0x467262
mov edi, 0xc
lea ecx, [ebp - 0x28]
call fcn.005410a0
mov esi, dword [eax]
xor ecx, ecx
mov eax, dword [esi + 0x258]
and eax, 0x4000
or eax, ecx
je 0x46715f
lea eax, [ebp - 0x40]
push ecx
push eax
jmp 0x46723b
test esi, esi
je 0x467235
lea ecx, [esi + 0x27c]
test ecx, ecx
je 0x467235
mov edx, dword [esi]
mov eax, dword [0xa23350]
cmp edx, eax
je 0x46722d
cmp dword [esi + 0x250], edi
je 0x46722d
push esi
call fcn.00473f40
add esp, 4
test eax, eax
je 0x4671fc
push esi
call fcn.00473d30
add esp, 4
test eax, eax
jne 0x4671fc
lea ecx, [ebp - 0x28]
call fcn.005410a0
mov edx, dword [esi + 0x340]
mov ebx, dword [0xa23354]
mov ecx, dword [esi + 0x390]
sub edx, ebx
mov ebx, dword [esi + 0x2d8]
mov eax, dword [eax + 4]
add edx, 0x185
mov ecx, dword [ebx + ecx*4]
mov ebx, dword [esi + 0x358]
add ecx, ebx
mov ebx, dword [0xa23358]
sub ecx, ebx
sub ecx, 0x24
push ecx
push edx
mov ecx, eax
call fcn.0041ca60
lea edx, [ebp - 0x4c]
push 0
push edx
jmp 0x46723b
lea ecx, [ebp - 0x28]
call fcn.005410a0
mov eax, dword [eax + 4]
test eax, eax
je 0x467214
push 1
mov ecx, eax
call fcn.00457ef0
mov eax, dword [ebp - 0x28]
lea ecx, [ebp - 0x78]
push eax
push ecx
mov ecx, 0x68f050
call fcn.00474220
mov edx, dword [eax]
mov dword [ebp - 0x28], edx
jmp 0x467243
lea eax, [ebp - 0x80]
push 0
push eax
jmp 0x46723b
lea ecx, [ebp - 0x74]
push 0
push ecx
lea ecx, [ebp - 0x28]
call fcn.00474240
lea edx, [ebp - 0x34]
mov ecx, 0x68f050
push edx
call fcn.00474140
push eax
lea ecx, [ebp - 0x28]
call fcn.004865d0
test al, al
jne 0x46713a
mov eax, dword [0xa26284]
test eax, eax
je 0x4674fb
mov ecx, 0x8a30f0
call fcn.004745c0
test al, al
jne 0x4674fb
mov ecx, 0x8a30f0
call fcn.00474a00
mov esi, eax
mov ecx, 0x8a30f0
mov dword [ebp - 0x34], esi
call fcn.0044a9a0
cmp esi, eax
je 0x4674fb
mov eax, dword [esi]
xor ecx, ecx
mov dword [ebp - 0x24], eax
mov eax, dword [eax + 0x258]
and eax, 0x4000
or eax, ecx
jne 0x4674e0
mov esi, dword [ebp - 0x24]
lea eax, [ebp - 0x68]
push eax
or ecx, 0xffffffff
lea ebx, [esi + 0x68]
xor eax, eax
mov edi, ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebx
call fcn.005a9050
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x24]
mov esi, dword [esi + 0x340]
add esp, 0xc
mov edi, dword [ecx + 0x358]
cdq
sub eax, edx
mov edx, dword [0xa23358]
sar eax, 1
sub esi, eax
mov eax, dword [0xa23354]
sub edi, edx
sub esi, eax
add edi, 0x1c7
add esi, 0x190
cmp edi, 0x27e
jg 0x4674e0
lea edx, [ebp - 0x1c]
mov eax, ecx
push edx
push eax
call fcn.0047a1f0
mov ecx, dword [ebp - 0x1c]
push ebx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
push 0xffffffffffffffff
lea edx, [edi - 1]
push 0
push edx
push esi
call fcn.005a8380
mov eax, dword [ebp - 0x1c]
push ebx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
push 0xffffffffffffffff
lea ecx, [edi + 1]
push 0
push ecx
push esi
call fcn.005a8380
mov edx, dword [ebp - 0x1c]
add esp, 0x50
lea eax, [esi - 1]
push ebx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
push 0xffffffffffffffff
push 0
push edi
push eax
call fcn.005a8380
mov ecx, dword [ebp - 0x1c]
push ebx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
push 0xffffffffffffffff
push 0
lea edx, [esi + 1]
push edi
push edx
call fcn.005a8380
add esp, 0x48
push ebx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffff
push 0xffffffffffffffff
push 0
push edi
push esi
call fcn.005a8380
add esp, 0x24
call fcn.00473dd0
test eax, eax
je 0x4673dc
mov ebx, dword [ebp - 0x24]
push ebx
call fcn.00473e00
add esp, 4
test eax, eax
jne 0x467451
push ebx
call fcn.00473e20
jmp 0x4673fc
mov ebx, dword [ebp - 0x24]
cmp word [0xa58db6], 0
push ebx
je 0x467445
call fcn.00473e40
add esp, 4
test eax, eax
jne 0x467451
push ebx
call fcn.00473ea0
add esp, 4
test eax, eax
je 0x4674e0
mov eax, dword [0xa4f144]
test eax, eax
jne 0x4674c8
push eax
push eax
push 0xa4f148
push 0xa257d8
push eax
push 0xa4f14c
push str..Bitmapsenemy.wsa
call fcn.005a5e90
add esp, 0x1c
mov dword [0xa4f144], eax
test eax, eax
je 0x4674e0
jmp 0x4674c8
call fcn.00473e00
add esp, 4
test eax, eax
je 0x46748a
mov eax, dword [0xa4f150]
test eax, eax
jne 0x467482
push eax
push eax
push 0xa4f154
push 0xa257d8
push eax
push 0xa4f158
push str..Bitmaps_ally.wsa
call fcn.005a5e90
add esp, 0x1c
mov dword [0xa4f150], eax
test eax, eax
je 0x4674e0
mov ecx, dword [0xa4f154]
jmp 0x4674ce
push ebx
call fcn.00473e20
add esp, 4
test eax, eax
je 0x4674e0
mov eax, dword [0xa4f144]
test eax, eax
jne 0x4674c8
push eax
push eax
push 0xa4f148
push 0xa257d8
push eax
push 0xa4f14c
push str..Bitmapsenemy.wsa
call fcn.005a5e90
add esp, 0x1c
mov dword [0xa4f144], eax
test eax, eax
je 0x4674e0
mov ecx, dword [0xa4f148]
mov edx, dword [eax]
push ecx
push edx
add esi, 0xffffffef
push edi
push esi
call dword [0xd36aac]
add esp, 0x10
mov esi, dword [ebp - 0x34]
mov ecx, 0x8a30f0
add esi, 4
mov dword [ebp - 0x34], esi
call fcn.0044a9a0
cmp esi, eax
jne 0x4672a2
mov ecx, 0x7e3068
call fcn.004745c0
test al, al
jne 0x467645
mov ecx, 0x7e3068
call fcn.00474a00
mov esi, eax
mov ecx, 0x7e3068
mov dword [ebp - 0x30], esi
call fcn.0044a9a0
cmp esi, eax
je 0x467645
mov eax, dword [ebp - 0x30]
lea ecx, [ebp - 0x68]
push ecx
or ecx, 0xffffffff
mov esi, dword [eax]
xor eax, eax
mov dword [ebp - 0x34], esi
lea ebx, [esi + 0x68]
mov edi, ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebx
call fcn.005a9050
mov eax, dword [ebp - 0x68]
mov esi, dword [esi + 0x340]
cdq
sub eax, edx
mov edx, dword [ebp - 0x34]
sar eax, 1
mov edi, dword [edx + 0x358]
mov edx, dword [0xa23358]
sub esi, eax
mov eax, dword [0xa23354]
sub edi, edx
sub esi, eax
add edi, 0x1c7
add esp, 0xc
add esi, 0x190
cmp edi, 0x27e
jg 0x46762a
push ebx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x19b000
push 0xffffffffffffffff
lea eax, [edi - 1]
push 0
push eax
push esi
call fcn.005a8380
push ebx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x19b000
push 0xffffffffffffffff
lea ecx, [edi + 1]
push 0
push ecx
push esi
call fcn.005a8380
add esp, 0x48
lea edx, [esi - 1]
push ebx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x19b000
push 0xffffffffffffffff
push 0
push edi
push edx
call fcn.005a8380
push ebx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x19b000
push 0xffffffffffffffff
push 0
lea eax, [esi + 1]
push edi
push eax
call fcn.005a8380
add esp, 0x48
push ebx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffff
push 0xffffffffffffffff
push 0
push edi
push esi
call fcn.005a8380
add esp, 0x24
mov esi, dword [ebp - 0x30]
mov ecx, 0x7e3068
add esi, 4
mov dword [ebp - 0x30], esi
call fcn.0044a9a0
cmp esi, eax
jne 0x46752e
mov ecx, 0x9831e0
call fcn.004745c0
test al, al
jne 0x467b57
mov ecx, 0x9831e0
call fcn.00474a00
mov esi, eax
mov ecx, 0x9831e0
mov dword [ebp - 0x38], esi
call fcn.0044a9a0
cmp esi, eax
je 0x467b57
mov ecx, dword [ebp - 0x38]
mov ebx, dword [ecx]
call fcn.005a44e0
mov ecx, dword [0xa233ec]
mov dword [ebp - 0x30], eax
cmp eax, ecx
jbe 0x4676f7
call fcn.006133b4
and eax, 0x800000ff
jns 0x4676a2
dec eax
or eax, 0xffffff00
inc eax
xor edx, edx
mov dh, al
mov dword [ebp - 0x34], edx
call fcn.006133b4
and eax, 0x800000ff
jns 0x4676bc
dec eax
or eax, 0xffffff00
inc eax
mov edx, dword [ebp - 0x34]
mov dl, al
shl edx, 8
mov dword [ebp - 0x34], edx
call fcn.006133b4
and eax, 0x800000ff
jns 0x4676da
dec eax
or eax, 0xffffff00
inc eax
mov edx, dword [ebp - 0x34]
and eax, 0xff
or edx, eax
mov eax, dword [ebp - 0x30]
add eax, 0x108
mov dword [0x645950], edx
mov dword [0xa233ec], eax
mov eax, dword [ebx + 0xb8]
dec eax
je 0x4679d6
dec eax
je 0x4678cd
dec eax
lea edx, [ebp - 0xb8]
je 0x46773b
mov edi, 0x6459e0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x467a18
mov edi, 0x6459d0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [0xa4f274]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x467777
lea ecx, [ebp - 0xb8]
push 0
push ecx
call fcn.00586e90
add esp, 8
mov eax, dword [0xa2335c]
mov dword [ebp - 0x24], 0xff
test eax, eax
jne 0x4677af
push eax
push 0xa23368
push 0xa23374
push 0xa257d8
push eax
push 0xa23380
push str..BitmapsHouse3_0.wsa
call fcn.005a5e90
add esp, 0x1c
mov dword [0xa2335c], eax
mov ecx, dword [0xa23360]
test ecx, ecx
jne 0x4677e9
push ecx
push 0xa2336c
push 0xa23378
push 0xa257d8
push ecx
push 0xa23382
push str..BitmapsHouse3_1.wsa
call fcn.005a5e90
mov ecx, eax
mov eax, dword [0xa2335c]
add esp, 0x1c
mov dword [0xa23360], ecx
mov esi, dword [ebp - 0x30]
mov edx, dword [0xa233f0]
cmp esi, edx
jbe 0x46784a
mov edx, dword [0xa23388]
mov edi, dword [0xa23380]
inc edx
and edi, 0xffff
cmp edx, edi
mov dword [0xa23388], edx
jb 0x46781d
mov dword [0xa23388], 0
mov edx, dword [0xa2338c]
xor edi, edi
mov di, word [0xa23382]
inc edx
cmp edx, edi
mov dword [0xa2338c], edx
jb 0x467841
mov dword [0xa2338c], 0
add esi, 0x21
mov dword [0xa233f0], esi
mov edi, dword [ebx + 0x340]
mov edx, dword [0xa23354]
mov esi, dword [ebx + 0x358]
sub edi, edx
mov edx, dword [0xa23358]
add edi, 0x11e
sub esi, edx
add esi, 0xea
test eax, eax
je 0x467a1f
test ecx, ecx
je 0x467a1f
cmp esi, 0x27e
jg 0x467a1f
mov edx, dword [0xa23374]
mov ecx, dword [0xa23388]
push edx
mov edx, dword [eax + ecx*4]
push edx
push esi
push edi
call dword [0xd36ad0]
mov eax, dword [0xa23378]
mov ecx, dword [0xa23360]
mov edx, dword [0xa2338c]
push eax
mov eax, dword [ecx + edx*4]
push eax
push esi
push edi
call dword [0xd36ad0]
add esp, 0x20
jmp 0x467a1f
mov edi, 0x645998
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0xb8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [0xa4f274]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x46790f
lea ecx, [ebp - 0xb8]
push 0
push ecx
call fcn.00586e90
add esp, 8
mov eax, dword [0xa23364]
mov dword [ebp - 0x24], 0xff0000
test eax, eax
jne 0x467947
push eax
push 0xa23370
push 0xa2337c
push 0xa257d8
push eax
push 0xa23384
push str..BitmapsHouse2.wsa
call fcn.005a5e90
add esp, 0x1c
mov dword [0xa23364], eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [0xa233f0]
cmp ecx, edx
jbe 0x467984
mov edx, dword [0xa23390]
mov esi, dword [0xa23384]
inc edx
and esi, 0xffff
cmp edx, esi
mov dword [0xa23390], edx
jb 0x46797b
mov dword [0xa23390], 0
add ecx, 0x21
mov dword [0xa233f0], ecx
mov edx, dword [ebx + 0x340]
mov ecx, dword [0xa23354]
mov esi, dword [0xa23358]
sub edx, ecx
mov ecx, dword [ebx + 0x358]
add edx, 0x143
sub ecx, esi
add ecx, 0xea
test eax, eax
je 0x467a1f
cmp ecx, 0x27e
jg 0x467a1f
mov esi, dword [0xa2337c]
push esi
mov esi, dword [0xa23390]
mov eax, dword [eax + esi*4]
push eax
push ecx
push edx
call dword [0xd36ad0]
add esp, 0x10
jmp 0x467a1f
mov edi, 0x645978
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0xb8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [0xa4f274]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x467a18
lea ecx, [ebp - 0xb8]
push 0
push ecx
call fcn.00586e90
add esp, 8
mov dword [ebp - 0x24], 0xffffff
lea edi, [ebp - 0xb8]
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x68]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push edx
lea eax, [ebp - 0xb8]
push ecx
push eax
call fcn.005a9050
mov eax, dword [ebp - 0x68]
mov esi, dword [ebx + 0x340]
mov edi, dword [ebx + 0x358]
add esp, 0xc
cdq
sub eax, edx
mov edx, dword [0xa23358]
sar eax, 1
sub esi, eax
mov eax, dword [0xa23354]
sub edi, edx
sub esi, eax
add edi, 0x189
add esi, 0x190
cmp edi, 0x27e
jg 0x467b3c
mov edx, dword [0x645950]
lea ecx, [ebp - 0xb8]
push ecx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
push 0xffffffffffffffff
lea eax, [edi - 1]
push 0
push eax
push esi
call fcn.005a8380
mov edx, dword [0x645950]
lea ecx, [ebp - 0xb8]
push ecx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
push 0xffffffffffffffff
lea eax, [edi + 1]
push 0
push eax
push esi
call fcn.005a8380
mov edx, dword [0x645950]
add esp, 0x48
lea ecx, [ebp - 0xb8]
lea eax, [esi - 1]
push ecx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
push 0xffffffffffffffff
push 0
push edi
push eax
call fcn.005a8380
mov edx, dword [0x645950]
lea ecx, [ebp - 0xb8]
push ecx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
push 0xffffffffffffffff
push 0
lea eax, [esi + 1]
push edi
push eax
call fcn.005a8380
mov edx, dword [ebp - 0x24]
add esp, 0x48
lea ecx, [ebp - 0xb8]
push ecx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
push 0xffffffffffffffff
push 0
push edi
push esi
call fcn.005a8380
add esp, 0x24
mov esi, dword [ebp - 0x38]
mov ecx, 0x9831e0
add esi, 4
mov dword [ebp - 0x38], esi
call fcn.0044a9a0
cmp esi, eax
jne 0x467678
mov ecx, 0x9c3270
call fcn.004745c0
test al, al
jne 0x467cce
mov ecx, 0x9c3270
call fcn.00474a00
mov esi, eax
mov ecx, 0x9c3270
mov dword [ebp - 0x30], esi
call fcn.0044a9a0
cmp esi, eax
je 0x467cce
jmp 0x467b8f
mov esi, dword [ebp - 0x30]
mov eax, dword [0x64596c]
mov ebx, dword [esi]
mov ecx, dword [0x645970]
mov dl, byte [0x645974]
mov dword [ebp - 0x5c], eax
mov eax, dword [0xa4f274]
test eax, eax
mov dword [ebp - 0x58], ecx
mov byte [ebp - 0x54], dl
mov byte [ebp - 0x53], 0
je 0x467bc6
lea eax, [ebp - 0x5c]
push 0
push eax
call fcn.00586e90
add esp, 8
lea ecx, [ebp - 0x68]
lea edi, [ebp - 0x5c]
push ecx
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x5c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
call fcn.005a9050
mov eax, dword [ebp - 0x68]
mov esi, ebx
cdq
sub eax, edx
and ebx, 0xffff
shr esi, 0x10
sar eax, 1
add ebx, 0x1e
sub esi, eax
mov edi, ebx
add esp, 0xc
add esi, 0x60
cmp edi, 0x27e
jg 0x467cb3
lea eax, [ebp - 0x5c]
lea ecx, [edi - 1]
push eax
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xff0000
push 0xffffffffffffffff
push 0
push ecx
push esi
call fcn.005a8380
lea edx, [ebp - 0x5c]
lea eax, [edi + 1]
push edx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xff0000
push 0xffffffffffffffff
push 0
push eax
push esi
call fcn.005a8380
add esp, 0x48
lea ecx, [ebp - 0x5c]
lea edx, [esi - 1]
push ecx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xff0000
push 0xffffffffffffffff
push 0
push edi
push edx
call fcn.005a8380
lea eax, [ebp - 0x5c]
lea ecx, [esi + 1]
push eax
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xff0000
push 0xffffffffffffffff
push 0
push edi
push ecx
call fcn.005a8380
add esp, 0x48
lea edx, [ebp - 0x5c]
push edx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffff
push 0xffffffffffffffff
push 0
push edi
push esi
call fcn.005a8380
add esp, 0x24
mov esi, dword [ebp - 0x30]
mov ecx, 0x9c3270
add esi, 4
mov dword [ebp - 0x30], esi
call fcn.0044a9a0
cmp esi, eax
jne 0x467b8c
mov ecx, 0x9831f0
call fcn.004747a0
test al, al
jne 0x467e7d
mov ecx, 0x9831f0
call fcn.00474a00
mov ecx, 0x9831f0
mov ebx, eax
call fcn.0044a9a0
cmp ebx, eax
je 0x467e7d
mov dword [0x9c3268], ebx
mov eax, dword [ebx + 4]
cmp eax, 0x27e
jg 0x467e68
mov eax, dword [0xa4f274]
test eax, eax
je 0x467dac
mov cl, byte [0x675a15]
xor eax, eax
sar eax, cl
mov cl, byte [0x675a19]
xor edx, edx
push 0x80
shl eax, cl
mov cl, byte [0x675a14]
sar edx, cl
mov cl, byte [0x675a18]
and eax, 0xffff
shl edx, cl
mov cl, byte [0x675a16]
and edx, 0xffff
or eax, edx
xor edx, edx
sar edx, cl
mov ecx, dword [ebx + 0x18]
and edx, 0xffff
or eax, edx
mov edx, dword [ebx + 0x14]
push eax
mov eax, dword [ebx + 0x1c]
push eax
mov eax, dword [ebx + 0x10]
push ecx
push edx
push eax
call dword [0xd36b5c]
mov eax, dword [0x9c3268]
mov edx, dword [eax + 8]
lea ecx, [eax + 0x20]
push ecx
mov ecx, dword [eax + 4]
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
mov edx, dword [eax]
push 0xffffffffffffffff
push 0
push ecx
push edx
call fcn.005a8380
add esp, 0x3c
jmp 0x467e68
lea edi, [ebx + 0x20]
or ecx, 0xffffffff
xor eax, eax
push 0
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x983200
mov eax, ecx
mov esi, edi
mov edi, 0x983200
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00586da0
mov cl, byte [0x675a15]
xor edx, edx
sar edx, cl
mov cl, byte [0x675a19]
xor eax, eax
push 0x80
shl edx, cl
mov cl, byte [0x675a14]
sar eax, cl
mov cl, byte [0x675a18]
and edx, 0xffff
shl eax, cl
mov cl, byte [0x675a16]
and eax, 0xffff
or edx, eax
xor eax, eax
sar eax, cl
and eax, 0xffff
or edx, eax
mov eax, dword [0x9c3268]
push edx
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
push ecx
mov ecx, dword [eax + 0x14]
push edx
mov edx, dword [eax + 0x10]
push ecx
push edx
call dword [0xd36b5c]
mov eax, dword [0x9c3268]
push 0x983200
push 0x6416d0
push 0xffffffffffffffff
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov eax, dword [eax]
push 0xffffffffffffffff
push ecx
push 0xffffffffffffffff
push 0
push edx
push eax
call fcn.005a8380
add esp, 0x44
mov ecx, 0x9831f0
add ebx, 0x3c
call fcn.0044a9a0
cmp ebx, eax
jne 0x467cfe
mov ecx, 0xa24660
call fcn.00474150
test al, al
mov ebx, 0x10d4
jne 0x467f33
cmp dword [0x6d67ac], ebx
je 0x467f33
lea ecx, [ebp - 0x40]
push ecx
mov ecx, 0xa24660
call fcn.0043d9c0
mov edx, dword [eax]
lea eax, [ebp - 0x34]
push eax
mov ecx, 0xa24660
mov dword [ebp - 0x24], edx
call fcn.00474140
push eax
lea ecx, [ebp - 0x24]
call fcn.004865d0
test al, al
je 0x467f33
lea ecx, [ebp - 0x24]
call fcn.005410a0
mov esi, dword [eax + 4]
mov ecx, esi
call fcn.00479a50
test eax, eax
je 0x467f0a
test esi, esi
je 0x467ef1
push 1
mov ecx, esi
call fcn.00457ef0
mov ecx, dword [ebp - 0x24]
lea edx, [ebp - 0x40]
push ecx
push edx
mov ecx, 0xa24660
call fcn.004744f0
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
jmp 0x467f18
lea ecx, [ebp - 0x4c]
push 0
push ecx
lea ecx, [ebp - 0x24]
call fcn.00474560
lea edx, [ebp - 0x34]
mov ecx, 0xa24660
push edx
call fcn.00474140
push eax
lea ecx, [ebp - 0x24]
call fcn.004865d0
test al, al
jne 0x467ece
mov edi, 0x6d6810
or ecx, 0xffffffff
xor eax, eax
push 0x8e3178
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d6810
call fcn.005a9050
mov eax, dword [0x8e3178]
mov esi, dword [0x6d6ae8]
mov edi, dword [0x6d6b00]
add esp, 0xc
cdq
sub eax, edx
mov edx, dword [0xa23358]
sar eax, 1
sub esi, eax
mov eax, dword [0xa23354]
sub edi, edx
sub esi, eax
add edi, 0x1c7
add esi, 0x190
cmp edi, 0x27e
jg 0x468078
cmp dword [0x6d67ac], ebx
je 0x468078
push 0x8a30ec
push 0x6d67a8
call fcn.0047a1f0
mov eax, dword [0x8a30ec]
push 0x6d6810
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
push 0xffffffffffffffff
lea ecx, [edi - 1]
push 0
push ecx
push esi
call fcn.005a8380
mov edx, dword [0x8a30ec]
push 0x6d6810
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
push 0xffffffffffffffff
lea eax, [edi + 1]
push 0
push eax
push esi
call fcn.005a8380
mov ecx, dword [0x8a30ec]
add esp, 0x50
lea edx, [esi - 1]
push 0x6d6810
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
push 0xffffffffffffffff
push 0
push edi
push edx
call fcn.005a8380
mov eax, dword [0x8a30ec]
push 0x6d6810
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
push 0xffffffffffffffff
push 0
lea ecx, [esi + 1]
push edi
push ecx
call fcn.005a8380
add esp, 0x48
push 0x6d6810
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffff
push 0xffffffffffffffff
push 0
push edi
push esi
call fcn.005a8380
mov eax, dword [0x6d716c]
add esp, 0x24
test eax, eax
jle 0x468078
push 0x6d67a8
mov ecx, 0xd04bc8
call fcn.005783e0
mov ecx, 0xa24650
call fcn.00474150
test al, al
jne 0x468180
lea edx, [ebp - 0x40]
mov ecx, 0xa24650
push edx
call fcn.0043d9c0
mov eax, dword [eax]
lea ecx, [ebp - 0x34]
push ecx
mov ecx, 0xa24650
mov dword [ebp - 0x1c], eax
call fcn.00474140
push eax
lea ecx, [ebp - 0x1c]
call fcn.004865d0
test al, al
je 0x468180
lea ecx, [ebp - 0x1c]
call fcn.005410a0
mov esi, dword [eax]
test esi, esi
je 0x468153
lea edx, [esi + 0x27c]
test edx, edx
je 0x468153
lea ecx, [ebp - 0x1c]
call fcn.005410a0
mov edi, dword [eax + 4]
mov eax, dword [esi + 0x390]
mov ecx, dword [esi + 0x2d8]
mov ebx, dword [0xa23358]
mov edx, dword [ecx + eax*4]
mov eax, dword [esi + 0x358]
add edx, eax
mov eax, dword [esi + 0x340]
sub edx, ebx
mov ebx, dword [0xa23354]
sub eax, ebx
sub edx, 0x1a
add eax, 0x182
push edx
push eax
mov ecx, edi
call fcn.004797a0
test eax, eax
je 0x46814b
test edi, edi
je 0x468132
push 1
mov ecx, edi
call fcn.00469ad0
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x40]
push ecx
push edx
mov ecx, 0xa24650
call fcn.00474470
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
jmp 0x468161
lea ecx, [ebp - 0x4c]
push 0
push ecx
jmp 0x468159
lea edx, [ebp - 0x78]
push 0
push edx
lea ecx, [ebp - 0x1c]
call fcn.00474490
lea eax, [ebp - 0x34]
mov ecx, 0xa24650
push eax
call fcn.00474140
push eax
lea ecx, [ebp - 0x1c]
call fcn.004865d0
test al, al
jne 0x4680bc
mov ecx, 0xa24670
call fcn.00474150
test al, al
jne 0x4682a7
lea ecx, [ebp - 0x40]
push ecx
mov ecx, 0xa24670
call fcn.0043d9c0
mov edx, dword [eax]
lea eax, [ebp - 0x34]
push eax
mov ecx, 0xa24670
mov dword [ebp - 0x1c], edx
call fcn.00474140
push eax
lea ecx, [ebp - 0x1c]
call fcn.004865d0
test al, al
je 0x4682a7
lea ecx, [ebp - 0x1c]
call fcn.005410a0
mov esi, dword [eax]
test esi, esi
je 0x46827a
lea ecx, [esi + 0x27c]
test ecx, ecx
je 0x46827a
lea ecx, [ebp - 0x1c]
call fcn.005410a0
mov edi, dword [eax + 4]
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x390]
cmp eax, 0x101
jbe 0x468212
cmp eax, 0x10a
jae 0x468212
cmp ecx, 0x187
jg 0x468387
test edi, edi
je 0x468272
mov edx, dword [esi + 0x2d8]
mov ebx, dword [esi + 0x358]
mov eax, dword [edx + ecx*4]
mov ecx, dword [esi + 0x340]
mov edx, dword [0xa23358]
add eax, ebx
mov ebx, dword [0xa23354]
sub eax, edx
sub ecx, ebx
push eax
add ecx, 0x190
push ecx
mov ecx, edi
call fcn.0047a030
test eax, eax
je 0x468272
push 1
mov ecx, edi
call fcn.00457ef0
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 0x40]
push edx
push eax
mov ecx, 0xa24670
call fcn.00474580
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
jmp 0x468288
lea edx, [ebp - 0x4c]
push 0
push edx
jmp 0x468280
lea eax, [ebp - 0x78]
push 0
push eax
lea ecx, [ebp - 0x1c]
call fcn.004745a0
lea ecx, [ebp - 0x34]
push ecx
mov ecx, 0xa24670
call fcn.00474140
push eax
lea ecx, [ebp - 0x1c]
call fcn.004865d0
test al, al
jne 0x4681c4
mov ecx, 0x68f000
call fcn.00474150
test al, al
jne 0x46831c
lea edx, [ebp - 0x40]
mov ecx, 0x68f000
push edx
call fcn.0043d9c0
mov eax, dword [eax]
lea ecx, [ebp - 0x20]
push ecx
mov ecx, 0x68f000
mov dword [ebp - 0x14], eax
call fcn.00474140
push eax
lea ecx, [ebp - 0x14]
call fcn.004865d0
test al, al
je 0x46831c
lea ecx, [ebp - 0x14]
call fcn.005410a0
mov ecx, dword [eax + 4]
call fcn.0041d320
lea edx, [ebp - 0x40]
push 0
push edx
lea ecx, [ebp - 0x14]
call fcn.00474180
lea eax, [ebp - 0x20]
mov ecx, 0x68f000
push eax
call fcn.00474140
push eax
lea ecx, [ebp - 0x14]
call fcn.004865d0
test al, al
jne 0x4682e3
cmp dword [0x6d69f8], 0x19
jne 0x468356
mov ecx, dword [0x6d6790]
push ecx
mov ecx, 0xcecc68
call fcn.00521100
test eax, eax
je 0x468356
call fcn.004eb990
mov edx, dword [0x6d6790]
mov ecx, 0xcecc68
add edx, 0x4e20
push edx
call fcn.00470eb0
mov eax, dword [0xa4f008]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x80]
mov dword [0x675a64], 0
mov dword [0x645934], 0
rdtsc
lea ebx, [0xa25908]
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret