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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x626bab
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb8
push ebx
push esi
push edi
rdtsc
lea ebx, [0xa254e0]
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 0x469d65
mov eax, dword [0x647e90]
add ecx, 0xfffffffe
or esi, 0xffffffff
mov dword [ebp - 0x1c], ecx
lea edx, [eax + eax + 2]
mov edi, 1
mov dword [ebp - 0x2c], edx
lea ecx, [ebx*4 + 0x679ca0]
lea edx, [ebx*4 + 0x679c98]
sub eax, ebx
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x18], eax
cmp esi, edi
mov dword [ebp - 0x14], esi
jge 0x469bf8
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
lea ecx, [esi + ebx]
add eax, ecx
mov dword [ebp - 0x30], eax
test ecx, ecx
jl 0x469be0
cmp ecx, 0x300
jge 0x469be0
test eax, eax
jl 0x469be0
cmp eax, 0x400
jge 0x469be0
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 0x469d5f
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
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 0x469b9e
mov ebx, dword [0x647e94]
cmp esi, edi
mov dword [ebp - 0x14], esi
jge 0x469c5b
mov ecx, dword [ebp - 0x20]
lea edx, [esi + ebx]
test edx, edx
jl 0x469c4c
cmp edx, 0x300
jge 0x469c4c
mov eax, dword [ebp - 0x18]
add eax, ebx
add eax, edi
test eax, eax
jl 0x469c4c
cmp eax, 0x400
jge 0x469c4c
mov edi, dword [ecx]
mov ebx, dword [ebp - 0x2c]
add edi, ebx
mov ebx, dword [0x675a90]
xor eax, eax
mov ax, word [edi + ebx]
test eax, eax
mov dword [0xa23350], eax
jne 0x469d5f
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 0x469c05
cmp edi, esi
mov dword [ebp - 0x14], edi
jle 0x469cc3
mov ecx, dword [ebp - 0x18]
lea eax, [ebx + edi]
mov dword [ebp - 0x34], eax
lea edx, [eax + ecx]
mov ecx, dword [ebp - 0x2c]
test eax, eax
jl 0x469cae
cmp eax, 0x300
jge 0x469cae
test edx, edx
jl 0x469cae
cmp edx, 0x400
jge 0x469cae
mov eax, dword [0x675a90]
lea edi, [ecx + eax]
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
xor eax, eax
mov ax, word [edi + ebx]
test eax, eax
mov dword [0xa23350], eax
jne 0x469d5f
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 0x469c71
mov ebx, dword [0x647e94]
cmp edi, esi
mov dword [ebp - 0x14], edi
jle 0x469d22
mov ecx, dword [ebp - 0x3c]
lea edx, [ebx + edi]
test edx, edx
jl 0x469d13
cmp edx, 0x300
jge 0x469d13
mov eax, dword [ebp - 0x18]
add eax, esi
add eax, ebx
test eax, eax
jl 0x469d13
cmp eax, 0x400
jge 0x469d13
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ecx]
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 0x469d65
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 0x469cd0
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x3c]
mov eax, 2
inc edi
add ecx, eax
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x2c], ecx
mov ecx, 4
add edx, ecx
dec esi
mov dword [ebp - 0x3c], edx
mov edx, dword [ebp - 0x20]
sub edx, ecx
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
cmp esi, 0xfffffff6
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ecx
jge 0x469b89
jmp 0x469d65
mov ebx, dword [0x647e94]
mov edx, dword [0x675a88]
mov eax, dword [0x675a8c]
cmp edx, eax
jge 0x469dbc
lea esi, [edx*4 + 0x679c9c]
mov ecx, dword [0x675a84]
mov edi, dword [0x675a80]
mov ebx, dword [esi]
sub ecx, edi
xor eax, eax
add esi, 4
lea edi, [ebx + edi*2]
mov ebx, dword [0x675a90]
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 0x469d7b
mov ebx, dword [0x647e94]
mov ecx, dword [0x647e90]
cmp ecx, 0x40
jge 0x469dd3
mov dword [0x675a80], 0
jmp 0x469ddc
lea edx, [ecx - 0x40]
mov dword [0x675a80], edx
cmp ebx, 0x40
jge 0x469ded
mov dword [0x675a88], 0
jmp 0x469df5
lea eax, [ebx - 0x40]
mov dword [0x675a88], eax
mov eax, dword [0xd1cbf0]
lea edx, [eax - 0x41]
cmp ecx, edx
jle 0x469e09
dec eax
mov dword [0x675a84], eax
jmp 0x469e12
add ecx, 0x40
mov dword [0x675a84], ecx
mov eax, dword [0xd1cd04]
lea ecx, [eax - 0x41]
cmp ebx, ecx
jle 0x469e26
dec eax
mov dword [0x675a8c], eax
jmp 0x469e2f
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 - 0x40], edx
lea eax, [edx + 0x60]
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x2c], 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 0x46a0b0
lea eax, [esi + esi*2]
lea esi, [esi + esi*2]
shl eax, 2
shl esi, 3
lea edx, [ebx + 0x27]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], esi
jmp 0x469ea6
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x24]
mov edi, dword [0xa4f17c]
mov dword [ebp - 0x3c], ebx
add esi, edi
mov edi, dword [0xa4f2b8]
add eax, edi
mov edi, dword [0xa4f198]
mov dword [0x6e302c], eax
mov eax, dword [ebp - 0x2c]
and eax, 1
shl eax, 5
add eax, edi
mov edi, dword [0x6456c0]
add eax, edi
cmp ebx, edx
mov dword [0x723030], eax
jge 0x46a07d
mov edx, dword [ebp - 0x2c]
test edx, edx
jl 0x46a04e
mov edx, dword [ebp - 0x3c]
test edx, edx
jl 0x46a04e
test dword [esi], 0x4000000
je 0x469f29
mov edx, dword [esi + 4]
dec edx
js 0x469f29
mov edi, dword [ebp - 0x2c]
push 1
push esi
push edi
mov edi, dword [ebp - 0x3c]
push edi
push ecx
push eax
push edx
call fcn.0045fd20
mov ecx, dword [0x723034]
mov eax, dword [0x723030]
add esp, 0x1c
mov edx, dword [0x6e302c]
mov edi, dword [edx + 8]
test edi, edi
je 0x46a04e
mov edx, dword [edx + 4]
mov edi, dword [edx]
cmp edi, edx
je 0x46a04e
mov edx, dword [edi + 8]
mov ebx, dword [edx]
cmp ebx, 0xe000
jb 0x469f86
cmp ebx, 0xffff
ja 0x469f86
mov ebx, dword [edx + 0x1c]
test ebx, ebx
je 0x469f86
mov ebx, dword [ebp - 0x2c]
mov edx, dword [edx]
push 5
push esi
push ebx
mov ebx, dword [ebp - 0x3c]
push ebx
push ecx
push eax
push edx
call fcn.0045fd20
mov ecx, dword [0x723034]
mov eax, dword [0x723030]
add esp, 0x1c
mov edx, dword [edi + 8]
mov edx, dword [edx]
cmp edx, 0x14000
jb 0x469fc9
cmp edx, 0x17fff
ja 0x469fc9
mov ebx, dword [ebp - 0x2c]
push 6
push esi
push ebx
mov ebx, dword [ebp - 0x3c]
push ebx
push ecx
push eax
push edx
call fcn.0045fd20
mov eax, dword [edi + 8]
add esp, 0x1c
mov dword [eax + 0x274], 1
mov ecx, dword [0x723034]
mov eax, dword [0x723030]
mov ebx, dword [edi + 8]
mov edx, dword [ebx]
cmp edx, 0x3fff
jb 0x46a019
cmp edx, 0x7fff
ja 0x46a019
cmp dword [ebx + 0x1c], 0
je 0x46a03a
cmp dword [ebx + 0x278], 0
mov ebx, dword [ebp - 0x2c]
push 2
push esi
push ebx
mov ebx, dword [ebp - 0x3c]
push ebx
push ecx
push eax
push edx
je 0x46a002
call fcn.0045ff10
jmp 0x46a007
call fcn.0045fd20
mov ecx, dword [edi + 8]
add esp, 0x1c
mov dword [ecx + 0x274], 1
jmp 0x46a02f
mov ebx, dword [ebp - 0x2c]
push 2
push esi
push ebx
mov ebx, dword [ebp - 0x3c]
push ebx
push ecx
push eax
push edx
call fcn.0045fd20
add esp, 0x1c
mov ecx, dword [0x723034]
mov eax, dword [0x723030]
mov edx, dword [0x6e302c]
mov edi, dword [edi]
cmp edi, dword [edx + 4]
jne 0x469f47
mov ebx, dword [ebp - 0x34]
mov edx, dword [0x6e302c]
add esi, 0x18
add edx, 0xc
add eax, 0x40
mov dword [0x6e302c], edx
mov edx, dword [ebp - 0x3c]
inc edx
mov dword [0x723030], eax
mov dword [ebp - 0x3c], edx
mov edi, dword [ebp - 0x3c]
lea edx, [ebx + 0x27]
cmp edi, edx
jl 0x469ee4
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2c]
sub esi, 0x750
sub edi, 0xea0
mov dword [ebp - 0x18], esi
mov esi, dword [ebp - 0x40]
sub ecx, 0x10
dec eax
mov dword [ebp - 0x24], edi
cmp eax, esi
mov dword [0x723034], ecx
mov dword [ebp - 0x2c], eax
jge 0x469ea0
mov ecx, 0xd125d0
call fcn.0059bdf0
mov eax, dword [0x68f04c]
test eax, eax
je 0x46a178
mov ecx, dword [0x68f024]
mov edx, dword [0x68f028]
mov eax, dword [0x68f02c]
mov esi, dword [0x68f030]
mov dword [ebp - 0x50], ecx
mov ecx, dword [0x68f034]
mov dword [ebp - 0x4c], edx
mov edx, dword [0x68f038]
mov dword [ebp - 0x6c], ecx
mov ecx, dword [0x68f03c]
mov dword [ebp - 0x68], edx
mov edx, dword [0x68f040]
cmp eax, ecx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x60], edx
je 0x46a178
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 - 0x50]
call fcn.0049a750
mov eax, dword [0x68f034]
mov ecx, dword [0x68f038]
mov edx, dword [0x68f040]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x68], ecx
mov ecx, dword [0x68f03c]
mov dword [ebp - 0x60], edx
cmp eax, ecx
jne 0x46a10f
mov ecx, dword [0x8a30f4]
test ecx, ecx
je 0x46a1b7
mov eax, dword [0x8a30f8]
mov edx, eax
sub edx, ecx
test edx, 0xfffffffc
je 0x46a1b7
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 0x46a1f6
mov eax, dword [0x7e3070]
mov edx, eax
sub edx, ecx
test edx, 0xfffffffc
je 0x46a1f6
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 0x46a243
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 0x46a243
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 0x46a282
mov eax, dword [0x9831e8]
mov edx, eax
sub edx, ecx
test edx, 0xfffffffc
je 0x46a282
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 0x46a2c1
mov eax, dword [0x9c3278]
mov edx, eax
sub edx, ecx
test edx, 0xfffffffc
je 0x46a2c1
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 0x4707a1
mov eax, dword [0x68efdc]
mov edx, dword [0xd35ec4]
test eax, eax
mov dword [0x675a64], edx
je 0x46a394
mov ecx, dword [0x6d6a00]
xor edx, edx
mov eax, ecx
and eax, 0x400
or eax, edx
jne 0x46a39a
mov edx, dword [0x68efd4]
mov eax, dword [edx]
cmp eax, edx
mov dword [ebp - 0x24], eax
je 0x46a39a
mov esi, dword [eax + 0xc]
test esi, esi
je 0x46a37f
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 + 0x9e0]
sub edx, ebx
push edi
mov edi, dword [esi + 0xe4]
mov esi, dword [esi + 0xd8]
add edx, 0x1c2
push edi
add eax, 0x190
push esi
push edx
push eax
call fcn.0041c3d0
lea ecx, [ebp - 0x24]
call fcn.00422a90
mov ecx, dword [0x68efd4]
mov eax, dword [ebp - 0x24]
cmp eax, ecx
jne 0x46a332
mov ecx, dword [0x6d6a00]
mov eax, dword [0x8a3120]
test eax, eax
je 0x46ba4d
mov eax, dword [0x8a311c]
mov ecx, dword [eax]
cmp ecx, eax
mov dword [ebp - 0x38], ecx
je 0x46ba35
mov esi, dword [ecx + 8]
mov dword [ebp - 0x40], esi
mov eax, dword [esi]
cmp eax, 2
jne 0x46ba03
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
add eax, 0x20
add ecx, 0x10
test eax, eax
jl 0x46a406
cmp eax, 0x400
jge 0x46a406
test ecx, ecx
jl 0x46a406
cmp ecx, 0x300
jge 0x46a406
mov ecx, dword [ecx*4 + 0x677c9c]
mov edx, dword [0x675a7c]
add ecx, edx
xor edx, edx
mov dl, byte [ecx + eax]
mov dword [ebp - 0x24], edx
jmp 0x46a41a
mov ecx, dword [0x675a7c]
mov edx, dword [0x677c9c]
xor eax, eax
mov al, byte [edx + ecx]
mov dword [ebp - 0x24], eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x34]
lea edx, [ebp - 0x5c]
push ecx
push edx
mov ecx, 0x6d6208
mov dword [ebp - 0x34], eax
call fcn.0045b490
mov eax, dword [eax]
mov ecx, dword [0x6d620c]
cmp eax, ecx
je 0x46ba14
mov esi, dword [esi + 0x18]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x10], ecx
test dword [esi], 0x20000000
je 0x46ab7b
mov eax, dword [ecx + 0x268]
mov edx, dword [ecx + 0x26c]
or eax, edx
je 0x46a703
mov eax, dword [ecx + 0x358]
mov edx, dword [0xa23358]
mov ebx, dword [ecx + 0x340]
mov edi, dword [0xa23354]
sub eax, edx
mov edx, dword [ecx + 0x390]
sub ebx, edi
mov edi, dword [ecx + 0x490]
mov dword [ebp - 0x24], eax
mov eax, 0x2aaaaaab
mov dword [ebp - 0x18], edx
imul edi
sar edx, 2
mov eax, edx
mov esi, ecx
shr eax, 0x1f
add edx, eax
mov eax, dword [ecx + 0x2c0]
mov dword [ebp - 0x20], edx
lea edx, [edi + edi*4 + 0x6456c8]
test eax, eax
mov dword [ebp - 0x14], edx
je 0x46a4ce
mov edx, dword [ebp - 0x18]
mov eax, dword [eax + edx*4]
mov dword [0xa23480], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [0xd36ac8]
lea edi, [ecx + 0x818]
mov dword [eax*4 + 0x645a7c], edx
mov dword [ebp - 0x1c], edi
mov eax, dword [edi]
test eax, eax
je 0x46a536
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x46a4f9
mov al, byte [eax + 0xc]
jmp 0x46a4fb
xor al, al
mov dl, byte [0x645930]
add dl, al
mov byte [0x645930], dl
mov eax, dword [edi]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x46a517
mov al, byte [eax + 0xd]
jmp 0x46a519
xor al, al
mov dl, byte [0x645931]
add dl, al
mov byte [0x645931], dl
mov ecx, dword [edi]
call fcn.00469ab0
add byte [0x645932], al
jmp 0x46a568
mov edx, dword [ecx + 0x268]
mov eax, dword [ecx + 0x26c]
or edx, eax
je 0x46a568
mov al, byte [ecx + 0x4a1]
mov byte [0x645930], al
mov dl, byte [ecx + 0x4a2]
mov byte [0x645931], dl
mov al, byte [ecx + 0x4a3]
mov byte [0x645932], al
mov eax, dword [esi + 0x2ec]
test eax, eax
je 0x46a5b4
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 - 0x18]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x24]
push ecx
push edx
push ebx
call dword [0xd36ac4]
add esp, 0x1c
jmp 0x46ba14
mov eax, dword [ebp - 0x14]
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46a5f2
mov ecx, dword [0xa23480]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
mov edi, dword [ebp - 0x24]
push ecx
mov ecx, dword [ebp - 0x18]
push edx
mov edx, dword [eax + ecx*4]
push edx
push edi
push ebx
call dword [0x645a7c]
add esp, 0x14
jmp 0x46a5f5
mov edi, dword [ebp - 0x24]
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 0x46a632
mov ecx, dword [0xa23480]
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 edi
push ebx
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 0x46a66f
mov ecx, dword [0xa23480]
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 edi
push ebx
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 0x46a6ac
mov ecx, dword [0xa23480]
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 edi
push ebx
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 0x46a6e6
mov ecx, dword [0xa23480]
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 edi
push ebx
call dword [0x645a8c]
add esp, 0x14
mov eax, dword [ebp - 0x20]
mov dword [0xa23480], 0
mov dword [eax*4 + 0x645a7c], 0x468ab0
jmp 0x46b54a
mov al, byte [ecx + 0x4a0]
mov esi, ecx
test al, al
je 0x46a953
mov eax, dword [ecx + 0x358]
mov edx, dword [0xa23358]
mov ebx, dword [ecx + 0x340]
mov edi, dword [0xa23354]
sub eax, edx
mov edx, dword [ecx + 0x390]
sub ebx, edi
mov edi, dword [ecx + 0x490]
mov dword [ebp - 0x24], eax
mov eax, 0x2aaaaaab
mov dword [ebp - 0x18], edx
imul edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ecx + 0x2c0]
mov dword [ebp - 0x20], edx
lea edx, [edi + edi*4 + 0x6456c8]
test eax, eax
mov dword [ebp - 0x14], edx
je 0x46a774
mov edx, dword [ebp - 0x18]
mov eax, dword [eax + edx*4]
mov dword [0xa2347c], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [0xd36ac8]
lea edi, [ecx + 0x818]
mov dword [eax*4 + 0x645a68], edx
mov dword [ebp - 0x1c], edi
mov eax, dword [edi]
test eax, eax
je 0x46a7e1
mov edx, dword [eax + 8]
test edx, edx
je 0x46a79f
mov al, byte [eax + 0xc]
jmp 0x46a7a1
xor al, al
mov dl, byte [ecx + 0x4a1]
add dl, al
mov byte [0x645930], dl
mov eax, dword [edi]
mov edx, dword [eax + 8]
test edx, edx
je 0x46a7bd
mov al, byte [eax + 0xd]
jmp 0x46a7bf
xor al, al
mov cl, byte [ecx + 0x4a2]
add cl, al
mov byte [0x645931], cl
mov ecx, dword [edi]
call fcn.00469ab0
add al, byte [esi + 0x4a3]
mov byte [0x645932], al
jmp 0x46a804
mov dl, byte [ecx + 0x4a1]
mov byte [0x645930], dl
mov al, byte [ecx + 0x4a2]
mov byte [0x645931], al
mov cl, byte [ecx + 0x4a3]
mov byte [0x645932], cl
mov edx, dword [ebp - 0x14]
movsx eax, byte [edx]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46a842
mov ecx, dword [0xa2347c]
mov edx, dword [esi + eax*4 + 0x2c4]
mov eax, dword [esi + eax*4 + 0x29c]
mov edi, dword [ebp - 0x24]
push ecx
mov ecx, dword [ebp - 0x18]
push edx
mov edx, dword [eax + ecx*4]
push edx
push edi
push ebx
call dword [0x645a68]
add esp, 0x14
jmp 0x46a845
mov edi, dword [ebp - 0x24]
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 0x46a882
mov ecx, dword [0xa2347c]
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 edi
push ebx
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 0x46a8bf
mov ecx, dword [0xa2347c]
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 edi
push ebx
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 0x46a8fc
mov ecx, dword [0xa2347c]
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 edi
push ebx
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 0x46a936
mov ecx, dword [0xa2347c]
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 edi
push ebx
call dword [0x645a78]
add esp, 0x14
mov eax, dword [ebp - 0x20]
mov dword [0xa2347c], 0
mov dword [eax*4 + 0x645a68], 0x468ab0
jmp 0x46b54a
test byte [0xd37ad1], 1
mov eax, dword [0xd36af0]
jne 0x46a989
mov dl, byte [0xd37ad1]
mov dword [0xa234a0], eax
or dl, 1
mov dword [0xa234a4], eax
mov byte [0xd37ad1], dl
mov dword [0xa234a8], eax
mov dword [0xa234ac], eax
mov dword [0xa234b0], eax
mov edi, dword [ecx + 0x340]
mov ebx, dword [0xa23354]
mov edx, dword [0xa23358]
sub edi, ebx
mov ebx, dword [ecx + 0x358]
mov eax, 0x2aaaaaab
sub ebx, edx
mov edx, dword [ecx + 0x390]
mov dword [ebp - 0x18], edx
mov edx, dword [ecx + 0x490]
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ecx + 0x490]
mov dword [ebp - 0x20], edx
lea edx, [eax + eax*4 + 0x6456c8]
mov eax, dword [ebp - 0x24]
mov dword [0x67bcac], eax
mov eax, dword [ecx + 0x2ec]
test eax, eax
mov dword [ebp - 0x14], edx
je 0x46aa0e
mov edx, dword [ecx + 0x300]
mov eax, dword [ecx + 0x2f8]
mov ecx, dword [ebp - 0x18]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xd36af0]
add esp, 0x10
jmp 0x46ba14
mov eax, dword [ecx + 0x2c0]
test eax, eax
je 0x46aa23
mov edx, dword [ebp - 0x18]
mov eax, dword [eax + edx*4]
mov dword [0xa2349c], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [0xd36af8]
mov dword [eax*4 + 0xa234a0], edx
mov edx, dword [ebp - 0x14]
movsx eax, byte [edx]
mov edx, dword [ecx + eax*4 + 0x27c]
test edx, edx
je 0x46aa6c
mov edx, dword [0xa2349c]
push edx
mov edx, dword [ecx + eax*4 + 0x2c4]
mov eax, dword [ecx + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x18]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xa234a0]
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 0x46aaa9
mov ecx, dword [0xa2349c]
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 [0xa234a4]
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 0x46aae6
mov ecx, dword [0xa2349c]
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 [0xa234a8]
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 0x46ab23
mov ecx, dword [0xa2349c]
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 [0xa234ac]
add esp, 0x14
mov eax, dword [ebp - 0x14]
movsx eax, byte [eax + 1]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46ab5d
mov ecx, dword [0xa2349c]
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 [0xa234b0]
add esp, 0x14
mov ecx, dword [ebp - 0x20]
mov eax, dword [0xd36af0]
mov dword [0xa2349c], 0
mov dword [ecx*4 + 0xa234a0], eax
jmp 0x46ba14
mov edx, dword [ecx + 0x268]
mov eax, dword [ecx + 0x26c]
or edx, eax
je 0x46b0a9
mov edi, dword [ecx + 0x340]
mov ebx, dword [0xa23354]
mov edx, dword [0xa23358]
mov ax, word [ecx]
sub edi, ebx
mov ebx, dword [ecx + 0x358]
sub ebx, edx
mov edx, dword [ecx + 0x390]
mov word [ebp - 0x14], ax
mov dword [ebp - 0x30], edx
mov edx, dword [ecx + 0x490]
mov eax, 0x2aaaaaab
imul edx
sar edx, 2
mov eax, edx
mov esi, ecx
shr eax, 0x1f
add edx, eax
mov eax, dword [ecx + 0x490]
mov dword [ebp - 0x18], edx
lea edx, [eax + eax*4 + 0x6456c8]
mov eax, dword [ecx + 0x2c0]
test eax, eax
mov dword [ebp - 0x28], edx
je 0x46abfc
mov edx, dword [ebp - 0x30]
mov eax, dword [eax + edx*4]
mov dword [0xa23460], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [0xd36ac8]
add ecx, 0x818
mov dword [eax*4 + 0x645a54], edx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ecx]
test eax, eax
je 0x46ac65
mov edx, dword [eax + 8]
test edx, edx
je 0x46ac27
mov al, byte [eax + 0xc]
jmp 0x46ac29
xor al, al
mov dl, byte [0x645930]
add dl, al
mov byte [0x645930], dl
mov eax, dword [ecx]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x46ac45
mov al, byte [eax + 0xd]
jmp 0x46ac47
xor al, al
mov dl, byte [0x645931]
mov ecx, dword [ebp - 0x1c]
add dl, al
mov byte [0x645931], dl
mov ecx, dword [ecx]
call fcn.00469ab0
add byte [0x645932], al
mov eax, dword [esi + 0x2ec]
test eax, eax
je 0x46ad2a
mov edx, dword [ebp - 0x14]
mov eax, dword [0x6d67a8]
and edx, 0xffff
cmp edx, eax
jne 0x46acd2
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x46acd2
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 - 0x30]
push eax
mov eax, dword [ecx + edx*4]
push eax
push ebx
push edi
call dword [0xd36ab8]
add esp, 0x1c
jmp 0x46ba14
mov ecx, dword [ebp - 0x14]
mov edx, dword [esi + 0x2f8]
mov eax, dword [ebp - 0x30]
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 - 0x30]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xd36ab8]
add esp, 0x2c
jmp 0x46ba14
mov eax, dword [ebp - 0x14]
mov ecx, dword [0x6d67a8]
and eax, 0xffff
cmp eax, ecx
jne 0x46ae77
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x46ae77
push esi
call fcn.0051bd40
add esp, 4
test al, al
jne 0x46ad6c
cmp dword [ebp - 0x30], 0x187
jg 0x46ba14
mov ecx, dword [ebp - 0x28]
movsx eax, byte [ecx]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46ada5
mov edx, dword [0xa23460]
mov ecx, dword [esi + eax*4 + 0x2c4]
push edx
mov edx, dword [esi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x30]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0x645a54]
add esp, 0x14
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46ade2
mov edx, dword [0xa23460]
mov ecx, dword [esi + eax*4 + 0x2c4]
push edx
mov edx, dword [esi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x30]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0x645a58]
add esp, 0x14
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46ae1f
mov edx, dword [0xa23460]
mov ecx, dword [esi + eax*4 + 0x2c4]
push edx
mov edx, dword [esi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x30]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0x645a5c]
add esp, 0x14
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46ae5c
mov edx, dword [0xa23460]
mov ecx, dword [esi + eax*4 + 0x2c4]
push edx
mov edx, dword [esi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x30]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0x645a60]
add esp, 0x14
mov edx, dword [ebp - 0x28]
movsx eax, byte [edx + 1]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b08c
jmp 0x46b064
push esi
call fcn.0051bd40
add esp, 4
test al, al
jne 0x46ae91
cmp dword [ebp - 0x30], 0x187
jg 0x46ba14
mov eax, dword [ebp - 0x28]
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46aef4
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x46aec6
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x28]
mov ecx, dword [0xa23460]
push ecx
mov ecx, dword [ebp - 0x30]
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 - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46af5a
cmp dword [ebp - 0x18], 1
je 0x46af2c
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x28]
mov ecx, dword [0xa23460]
push ecx
mov ecx, dword [ebp - 0x30]
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 - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46afc0
cmp dword [ebp - 0x18], 2
je 0x46af92
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x28]
mov ecx, dword [0xa23460]
push ecx
mov ecx, dword [ebp - 0x30]
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 - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b026
cmp dword [ebp - 0x18], 3
je 0x46aff8
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x28]
mov ecx, dword [0xa23460]
push ecx
mov ecx, dword [ebp - 0x30]
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 - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b08c
cmp dword [ebp - 0x18], 4
je 0x46b05e
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x28]
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 - 0x30]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a64]
add esp, 0x14
mov eax, dword [ebp - 0x18]
mov dword [0xa23460], 0
mov dword [eax*4 + 0x645a54], 0x469030
jmp 0x46b54a
mov al, byte [ecx + 0x4a0]
mov esi, ecx
test al, al
je 0x46b572
mov dx, word [ecx]
mov ebx, dword [0xa23354]
mov word [ebp - 0x14], dx
mov edi, dword [ecx + 0x340]
mov edx, dword [0xa23358]
mov eax, dword [ecx + 0x390]
sub edi, ebx
mov ebx, dword [ecx + 0x358]
sub ebx, edx
mov edx, dword [ecx + 0x490]
mov dword [ebp - 0x20], eax
mov eax, 0x2aaaaaab
mov dword [ebp - 0x34], edx
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x18], edx
lea edx, [eax + eax*4 + 0x6456c8]
mov eax, dword [ecx + 0x2c0]
test eax, eax
mov dword [ebp - 0x28], edx
je 0x46b124
mov edx, dword [ebp - 0x20]
mov eax, dword [eax + edx*4]
mov dword [0xa2345c], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [0xd36ac8]
mov dword [eax*4 + 0x645a40], edx
lea eax, [ecx + 0x818]
mov dword [ebp - 0x1c], eax
mov eax, dword [eax]
test eax, eax
je 0x46b1ac
mov edx, dword [eax + 8]
test edx, edx
je 0x46b14f
mov al, byte [eax + 0xc]
jmp 0x46b151
xor al, al
lea edx, [ecx + 0x4a1]
mov dword [ebp - 0x34], edx
mov dl, byte [edx]
add dl, al
mov eax, dword [ebp - 0x1c]
mov byte [0x645930], dl
mov eax, dword [eax]
mov edx, dword [eax + 8]
test edx, edx
je 0x46b175
mov al, byte [eax + 0xd]
jmp 0x46b177
xor al, al
add ecx, 0x4a2
lea edx, [esi + 0x4a3]
mov dword [ebp - 0x30], ecx
mov cl, byte [ecx]
mov dword [ebp - 0x24], edx
add cl, al
mov eax, dword [ebp - 0x1c]
mov byte [0x645931], cl
mov ecx, dword [eax]
call fcn.00469ab0
mov ecx, dword [ebp - 0x24]
add al, byte [ecx]
mov byte [0x645932], al
mov eax, dword [ebp - 0x34]
jmp 0x46b1dd
mov dl, byte [ecx + 0x4a1]
lea eax, [ecx + 0x4a1]
mov byte [0x645930], dl
lea edx, [ecx + 0x4a2]
mov dword [ebp - 0x30], edx
add ecx, 0x4a3
mov dl, byte [edx]
mov byte [0x645931], dl
mov dl, byte [ecx]
mov byte [0x645932], dl
mov edx, dword [esi + 0x268]
or edx, dword [esi + 0x26c]
je 0x46b204
mov al, byte [eax]
mov edx, dword [ebp - 0x30]
mov byte [0x645930], al
mov al, byte [edx]
mov byte [0x645931], al
mov cl, byte [ecx]
mov byte [0x645932], cl
mov edx, dword [ebp - 0x14]
mov eax, dword [0x6d67a8]
and edx, 0xffff
cmp edx, eax
jne 0x46b337
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x46b337
mov eax, dword [ebp - 0x28]
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b265
mov ecx, dword [0xa2345c]
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 [0x645a40]
add esp, 0x14
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b2a2
mov ecx, dword [0xa2345c]
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 [0x645a44]
add esp, 0x14
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b2df
mov ecx, dword [0xa2345c]
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 [0x645a48]
add esp, 0x14
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b31c
mov ecx, dword [0xa2345c]
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 [0x645a4c]
add esp, 0x14
mov eax, dword [ebp - 0x28]
movsx eax, byte [eax + 1]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b532
jmp 0x46b50a
mov eax, dword [ebp - 0x28]
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b39a
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x46b36c
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
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 - 0x28]
mov ecx, dword [0xa2345c]
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 [0x645a40]
add esp, 0x14
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b400
cmp dword [ebp - 0x18], 1
je 0x46b3d2
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
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 - 0x28]
mov ecx, dword [0xa2345c]
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 [0x645a44]
add esp, 0x14
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b466
cmp dword [ebp - 0x18], 2
je 0x46b438
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
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 - 0x28]
mov ecx, dword [0xa2345c]
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 [0x645a48]
add esp, 0x14
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b4cc
cmp dword [ebp - 0x18], 3
je 0x46b49e
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
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 - 0x28]
mov ecx, dword [0xa2345c]
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 [0x645a4c]
add esp, 0x14
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b532
cmp dword [ebp - 0x18], 4
je 0x46b504
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
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 - 0x28]
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 - 0x20]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0x645a50]
add esp, 0x14
mov eax, dword [ebp - 0x18]
mov dword [0xa2345c], 0
mov dword [eax*4 + 0x645a40], 0x469030
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x46b558
call fcn.0041d7f0
mov byte [0x645930], 4
mov byte [0x645931], 4
mov byte [0x645932], 4
jmp 0x46ba14
test byte [0xd37ad2], 1
mov eax, dword [0xd36aec]
jne 0x46b5a8
mov dl, byte [0xd37ad2]
mov dword [0xa23488], eax
or dl, 1
mov dword [0xa2348c], eax
mov byte [0xd37ad2], dl
mov dword [0xa23490], eax
mov dword [0xa23494], eax
mov dword [0xa23498], eax
mov dx, word [ecx]
mov ebx, dword [0xa23354]
mov word [ebp - 0x14], dx
mov edi, dword [ecx + 0x340]
mov edx, dword [0xa23358]
mov eax, dword [ecx + 0x390]
sub edi, ebx
mov ebx, dword [ecx + 0x358]
sub ebx, edx
mov edx, dword [ecx + 0x490]
mov dword [ebp - 0x1c], eax
mov eax, 0x2aaaaaab
mov dword [ebp - 0x34], edx
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x18], edx
lea edx, [eax + eax*4 + 0x6456c8]
mov eax, dword [ebp - 0x24]
mov dword [0x67bcac], eax
mov eax, dword [ecx + 0x2ec]
test eax, eax
mov dword [ebp - 0x28], edx
je 0x46b695
mov ecx, dword [ebp - 0x14]
mov eax, dword [0x6d67a8]
and ecx, 0xffff
cmp ecx, eax
jne 0x46b658
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x46b658
mov edx, dword [esi + 0x300]
mov eax, dword [esi + 0x2f8]
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push ebx
push edi
call dword [0xd36aec]
add esp, 0x10
jmp 0x46ba14
mov eax, dword [ebp - 0x14]
mov ecx, dword [esi + 0x2f8]
mov edx, dword [ebp - 0x1c]
push eax
mov eax, dword [ecx + edx*4]
push eax
push ebx
push edi
call dword [0xd36aa4]
mov ecx, dword [esi + 0x300]
mov edx, dword [esi + 0x2f8]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aec]
add esp, 0x20
jmp 0x46ba14
mov ecx, dword [ecx + 0x2c0]
test ecx, ecx
je 0x46b6aa
mov edx, dword [ebp - 0x1c]
mov eax, dword [ecx + edx*4]
mov dword [0xa23484], eax
mov edx, dword [ebp - 0x18]
mov ecx, dword [0xd36af8]
mov eax, dword [ebp - 0x14]
mov dword [edx*4 + 0xa23488], ecx
mov ecx, dword [0x6d67a8]
and eax, 0xffff
cmp eax, ecx
jne 0x46b7ed
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x46b7ed
mov ecx, dword [ebp - 0x28]
movsx eax, byte [ecx]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b71b
mov edx, dword [0xa23484]
mov ecx, dword [esi + eax*4 + 0x2c4]
push edx
mov edx, dword [esi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xa23488]
add esp, 0x14
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b758
mov edx, dword [0xa23484]
mov ecx, dword [esi + eax*4 + 0x2c4]
push edx
mov edx, dword [esi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xa2348c]
add esp, 0x14
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b795
mov edx, dword [0xa23484]
mov ecx, dword [esi + eax*4 + 0x2c4]
push edx
mov edx, dword [esi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xa23490]
add esp, 0x14
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b7d2
mov edx, dword [0xa23484]
mov ecx, dword [esi + eax*4 + 0x2c4]
push edx
mov edx, dword [esi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xa23494]
add esp, 0x14
mov edx, dword [ebp - 0x28]
movsx eax, byte [edx + 1]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b9e8
jmp 0x46b9c0
mov eax, dword [ebp - 0x28]
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b850
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x46b822
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x28]
mov ecx, dword [0xa23484]
push ecx
mov ecx, dword [ebp - 0x1c]
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 [0xa23488]
add esp, 0x14
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b8b6
cmp dword [ebp - 0x18], 1
je 0x46b888
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x28]
mov ecx, dword [0xa23484]
push ecx
mov ecx, dword [ebp - 0x1c]
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 [0xa2348c]
add esp, 0x14
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b91c
cmp dword [ebp - 0x18], 2
je 0x46b8ee
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x28]
mov ecx, dword [0xa23484]
push ecx
mov ecx, dword [ebp - 0x1c]
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 [0xa23490]
add esp, 0x14
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b982
cmp dword [ebp - 0x18], 3
je 0x46b954
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x28]
mov ecx, dword [0xa23484]
push ecx
mov ecx, dword [ebp - 0x1c]
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 [0xa23494]
add esp, 0x14
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
movsx eax, byte [eax]
mov ecx, dword [esi + eax*4 + 0x27c]
test ecx, ecx
je 0x46b9e8
cmp dword [ebp - 0x18], 4
je 0x46b9ba
mov edx, dword [esi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
push ecx
push ebx
push edi
call dword [0xd36aa4]
add esp, 0x10
mov edx, dword [ebp - 0x28]
movsx eax, byte [edx]
mov ecx, dword [0xa23484]
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 [0xa23498]
add esp, 0x14
mov ecx, dword [ebp - 0x18]
mov eax, dword [0xd36aec]
mov dword [0xa23484], 0
mov dword [ecx*4 + 0xa23488], eax
jmp 0x46ba14
cmp eax, 3
jne 0x46ba14
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x46ba14
call fcn.0059ba80
mov edx, dword [ebp - 0x40]
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 0x46a3b9
mov ecx, dword [eax]
push eax
push ecx
lea ecx, [ebp - 0x34]
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 0x46ba60
call fcn.00461740
mov ecx, dword [0x6d620c]
mov ebx, 0x19
mov eax, dword [ecx]
cmp eax, ecx
mov dword [ebp - 0x38], eax
je 0x46bb37
mov eax, dword [eax + 0x10]
test eax, eax
je 0x46bb1e
mov ecx, dword [eax]
cmp ecx, 0x6000
jb 0x46bb1e
cmp ecx, 0x7fff
ja 0x46bb1e
cmp dword [eax + 0x250], ebx
jne 0x46bb1e
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 0x46bb1e
mov eax, dword [0xa4f15c]
test eax, eax
jne 0x46bb06
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 0x46bb1e
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 - 0x38]
call fcn.0044ea10
mov ecx, dword [0x6d620c]
mov eax, dword [ebp - 0x38]
cmp eax, ecx
jne 0x46ba78
mov eax, dword [0x7a3040]
test eax, eax
je 0x46edbd
mov dword [0xa26318], eax
mov eax, dword [0x7a303c]
mov ecx, dword [eax]
cmp ecx, eax
mov dword [ebp - 0x34], ecx
je 0x46edb3
mov ebx, dword [ecx + 8]
mov dword [ebp - 0x28], ebx
mov eax, dword [ebx]
cmp eax, 1
jne 0x46bb94
mov eax, dword [ebx + 0x18]
mov esi, dword [ebx + 4]
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x10]
push 0
push esi
movsx esi, word [eax + 0x12]
movsx eax, word [eax + 0x10]
add esi, ecx
add eax, edx
push esi
push eax
push ecx
push edx
call fcn.00460600
add esp, 0x18
jmp 0x46ed95
cmp eax, 2
jne 0x46eb4d
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
add eax, 0x20
add ecx, 0x10
test eax, eax
jl 0x46bbd7
cmp eax, 0x400
jge 0x46bbd7
test ecx, ecx
jl 0x46bbd7
cmp ecx, 0x300
jge 0x46bbd7
mov ecx, dword [ecx*4 + 0x677c9c]
add ecx, eax
mov eax, dword [0x675a7c]
xor edx, edx
mov dl, byte [ecx + eax]
mov edi, edx
jmp 0x46bbe9
mov edx, dword [0x675a7c]
mov eax, dword [0x677c9c]
xor ecx, ecx
mov cl, byte [eax + edx]
mov edi, ecx
mov dword [ebp - 0x14], edi
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x38]
lea eax, [ebp - 0xb4]
mov dword [ebp - 0x38], ecx
push edx
push eax
mov ecx, 0x6d6208
call fcn.0045b490
mov eax, dword [eax]
mov ecx, dword [0x6d620c]
cmp eax, ecx
je 0x46ed95
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x10], ecx
mov eax, dword [ecx]
cmp eax, 1
jb 0x46db8d
cmp eax, 0x3fff
ja 0x46db8d
mov dword [ecx + 0x9e0], edi
mov eax, dword [ebx + 0x18]
mov esi, dword [ebp - 0x10]
test dword [eax], 0x20000000
je 0x46da10
mov ecx, dword [esi]
mov eax, dword [0xa23350]
cmp ecx, eax
jne 0x46cae2
call fcn.005062e0
test eax, eax
jne 0x46cadf
mov eax, dword [0x6d6a00]
mov esi, dword [ebp - 0x10]
and eax, 0x400
xor ecx, ecx
or eax, ecx
mov eax, dword [esi + 0x5c]
jne 0x46c3fc
test eax, eax
mov edi, esi
je 0x46c11e
test byte [0xd37ae1], 1
mov eax, dword [0xd36ac0]
jne 0x46bcc1
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 - 0x18], dx
mov eax, dword [esi + 0x358]
mov ebx, dword [esi + 0x340]
mov edx, dword [0xa23354]
sub eax, ecx
mov ecx, dword [esi + 0x490]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x390]
mov dword [ebp - 0x1c], eax
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 0x46bd9c
mov edx, dword [ebp - 0x18]
mov eax, dword [0x6d67a8]
and edx, 0xffff
cmp edx, eax
jne 0x46bd6b
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x46bd6b
mov eax, dword [edi + 0x300]
mov ecx, dword [edi + 0x2f8]
mov edx, dword [ebp - 0x1c]
push eax
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x20]
push eax
push ecx
push ebx
call dword [0xd36ac0]
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x28]
add esp, 0x10
jmp 0x46dadc
mov edx, dword [ebp - 0x18]
mov eax, dword [edi + 0x2f8]
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
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 - 0x1c]
push eax
jmp 0x46d64e
mov eax, dword [esi + 0x2c0]
test eax, eax
je 0x46bdb1
mov ecx, dword [ebp - 0x1c]
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 - 0x18]
and edx, 0xffff
cmp edx, eax
jne 0x46beee
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x46beeb
mov esi, dword [ebp - 0x14]
movsx eax, byte [esi]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46be22
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 0x46be5d
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 0x46be98
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 0x46bed3
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 0x46c113
jmp 0x46c0e8
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 0x46bf5a
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x46bf26
mov edx, dword [ebp - 0x18]
mov eax, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 0x46bfc9
cmp dword [ebp - 0x24], 1
je 0x46bf95
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 - 0x1c]
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 - 0x20]
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 0x46c038
cmp dword [ebp - 0x24], 2
je 0x46c004
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 - 0x1c]
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 - 0x20]
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 0x46c0a7
cmp dword [ebp - 0x24], 3
je 0x46c073
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 - 0x1c]
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 - 0x20]
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 0x46c116
cmp dword [ebp - 0x24], 4
je 0x46c0e2
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
push edx
push eax
push ebx
call dword [0xa23458]
add esp, 0x14
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x24]
jmp 0x46d9e5
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 - 0x18], ecx
mov dword [ebp - 0x38], edx
mov eax, dword [esi + 0x2c0]
test eax, eax
je 0x46c17f
mov ecx, dword [ebp - 0x14]
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 - 0x1c], eax
mov eax, dword [eax]
test eax, eax
je 0x46c1e9
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x46c1a7
mov al, byte [eax + 0xc]
jmp 0x46c1a9
xor al, al
mov cl, byte [0x645930]
mov esi, dword [ebp - 0x1c]
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 0x46c21c
mov edx, dword [esi + 0x268]
mov eax, dword [esi + 0x26c]
or edx, eax
je 0x46c21c
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 0x46c26e
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 - 0x14]
push eax
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x24]
push eax
push ecx
push ebx
call dword [0xd36ac4]
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x28]
add esp, 0x1c
jmp 0x46dadc
mov edx, dword [ebp - 0x18]
movsx eax, byte [edx]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46c2ad
mov ecx, dword [0xa23480]
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 [0x645a7c]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46c2f0
mov ecx, dword [0xa23480]
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 [0x645a80]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46c333
mov ecx, dword [0xa23480]
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 [0x645a84]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46c376
mov ecx, dword [0xa23480]
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 [0x645a88]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov ecx, dword [ebp - 0x18]
movsx eax, byte [ecx + 1]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46c3b6
mov edx, dword [0xa23480]
mov ecx, dword [edi + eax*4 + 0x2c4]
push edx
mov edx, dword [edi + eax*4 + 0x29c]
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 [0x645a8c]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x1c]
mov dword [0xa23480], 0
mov dword [eax*4 + 0x645a7c], 0x468ab0
mov ecx, dword [ecx]
test ecx, ecx
je 0x46c3df
call fcn.0041d7f0
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x28]
mov byte [0x645930], 4
mov byte [0x645931], 4
mov byte [0x645932], 4
jmp 0x46dadc
test eax, eax
mov edi, esi
je 0x46c899
test byte [0xd37ae1], 1
mov eax, dword [0xd36ac0]
jne 0x46c43c
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 - 0x18], dx
mov eax, dword [esi + 0x358]
mov ebx, dword [esi + 0x340]
mov edx, dword [0xa23354]
sub eax, ecx
mov ecx, dword [esi + 0x490]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x390]
mov dword [ebp - 0x1c], eax
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 0x46c517
mov edx, dword [ebp - 0x18]
mov eax, dword [0x6d67a8]
and edx, 0xffff
cmp edx, eax
jne 0x46c4e6
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x46c4e6
mov eax, dword [edi + 0x300]
mov ecx, dword [edi + 0x2f8]
mov edx, dword [ebp - 0x1c]
push eax
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x20]
push eax
push ecx
push ebx
call dword [0xd36ac0]
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x28]
add esp, 0x10
jmp 0x46dadc
mov edx, dword [ebp - 0x18]
mov eax, dword [edi + 0x2f8]
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
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 - 0x1c]
push eax
jmp 0x46d64e
mov eax, dword [esi + 0x2c0]
test eax, eax
je 0x46c52c
mov ecx, dword [ebp - 0x1c]
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 - 0x18]
and edx, 0xffff
cmp edx, eax
jne 0x46c669
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x46c666
mov esi, dword [ebp - 0x14]
movsx eax, byte [esi]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46c59d
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 0x46c5d8
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 0x46c613
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 0x46c64e
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 0x46c88e
jmp 0x46c863
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 0x46c6d5
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x46c6a1
mov edx, dword [ebp - 0x18]
mov eax, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 0x46c744
cmp dword [ebp - 0x24], 1
je 0x46c710
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 - 0x1c]
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 - 0x20]
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 0x46c7b3
cmp dword [ebp - 0x24], 2
je 0x46c77f
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 - 0x1c]
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 - 0x20]
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 0x46c822
cmp dword [ebp - 0x24], 3
je 0x46c7ee
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 - 0x1c]
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 - 0x20]
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 0x46c891
cmp dword [ebp - 0x24], 4
je 0x46c85d
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
push edx
push eax
push ebx
call dword [0xa23458]
add esp, 0x14
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x24]
jmp 0x46d9e5
mov al, byte [0xd37ad1]
test al, 1
jne 0x46c8c7
or al, 1
mov byte [0xd37ad1], al
mov eax, dword [0xd36af0]
mov dword [0xa234a0], eax
mov dword [0xa234a4], eax
mov dword [0xa234a8], eax
mov dword [0xa234ac], eax
mov dword [0xa234b0], 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 ecx, dword [esi + 0x490]
mov dword [ebp - 0x20], eax
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 - 0x18], ecx
mov dword [ebp - 0x38], edx
mov edx, dword [ebp - 0x14]
mov dword [0x67bcac], edx
mov eax, dword [esi + 0x2ec]
test eax, eax
je 0x46c953
mov eax, dword [esi + 0x300]
mov ecx, dword [esi + 0x2f8]
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 [0xd36af0]
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x28]
add esp, 0x10
jmp 0x46dadc
mov eax, dword [esi + 0x2c0]
test eax, eax
je 0x46c968
mov edx, dword [ebp - 0x20]
mov eax, dword [eax + edx*4]
mov dword [0xa2349c], eax
mov eax, dword [ebp - 0x38]
mov edx, dword [0xd36af8]
mov dword [eax*4 + 0xa234a0], edx
movsx eax, byte [ecx]
mov edx, dword [esi + eax*4 + 0x27c]
test edx, edx
je 0x46c9b7
mov ecx, dword [0xa2349c]
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]
mov eax, dword [ebp - 0x24]
push edx
push eax
push ebx
call dword [0xa234a0]
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
add esp, 0x14
inc ecx
mov dword [ebp - 0x18], ecx
movsx eax, byte [ecx]
mov edx, dword [edi + eax*4 + 0x27c]
test edx, edx
je 0x46c9fa
mov ecx, dword [0xa2349c]
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 [0xa234a4]
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
add esp, 0x14
inc ecx
mov dword [ebp - 0x18], ecx
movsx eax, byte [ecx]
mov edx, dword [edi + eax*4 + 0x27c]
test edx, edx
je 0x46ca3d
mov ecx, dword [0xa2349c]
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 [0xa234a8]
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
add esp, 0x14
inc ecx
mov dword [ebp - 0x18], ecx
movsx eax, byte [ecx]
mov edx, dword [edi + eax*4 + 0x27c]
test edx, edx
je 0x46ca80
mov ecx, dword [0xa2349c]
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 [0xa234ac]
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
add esp, 0x14
movsx eax, byte [ecx + 1]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46cabd
mov ecx, dword [0xa2349c]
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 [0xa234b0]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov edx, dword [ebp - 0x38]
mov ecx, dword [0xd36af0]
mov ebx, dword [ebp - 0x28]
mov dword [0xa2349c], 0
mov dword [edx*4 + 0xa234a0], ecx
jmp 0x46dadc
mov esi, dword [ebp - 0x10]
mov eax, dword [esi + 0x258]
xor ecx, ecx
and eax, 0x4000
or eax, ecx
je 0x46cfa1
cmp dword [0x6d67a8], 0x8000
jne 0x46dadc
mov al, byte [0xd37ae1]
mov edi, esi
test al, 1
mov eax, dword [0xd36ac0]
jne 0x46cb3f
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 - 0x18], ax
mov eax, dword [esi + 0x358]
mov ebx, dword [esi + 0x340]
sub eax, ecx
mov ecx, dword [esi + 0x390]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 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 0x46cc29
cmp word [ebp - 0x18], 0x8000
jne 0x46cbe3
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x46cbe3
mov edx, dword [edi + 0x300]
mov eax, dword [edi + 0x2f8]
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
push edx
push eax
push ebx
call dword [0xd36ac0]
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x28]
add esp, 0x10
jmp 0x46dadc
mov ecx, dword [ebp - 0x18]
mov edx, dword [edi + 0x2f8]
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
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 - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
push edx
push esi
push ebx
call dword [0xd36ac0]
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x28]
add esp, 0x20
jmp 0x46dadc
mov eax, dword [esi + 0x2c0]
test eax, eax
je 0x46cc3e
mov ecx, dword [ebp - 0x1c]
mov eax, dword [eax + ecx*4]
mov dword [0xa23444], eax
mov ecx, dword [0xd36ac8]
cmp word [ebp - 0x18], 0x8000
mov dword [edx*4 + 0xa23448], ecx
jne 0x46cd71
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x46cd6e
mov esi, dword [ebp - 0x14]
movsx eax, byte [esi]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46cca5
mov edx, dword [0xa23444]
mov ecx, dword [edi + eax*4 + 0x2c4]
push edx
mov edx, dword [edi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 0x46cce0
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 0x46cd1b
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 0x46cd56
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 0x46cf96
jmp 0x46cf6b
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 0x46cddd
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x46cda9
mov edx, dword [ebp - 0x18]
mov eax, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 0x46ce4c
cmp dword [ebp - 0x24], 1
je 0x46ce18
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 - 0x1c]
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 - 0x20]
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 0x46cebb
cmp dword [ebp - 0x24], 2
je 0x46ce87
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 - 0x1c]
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 - 0x20]
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 0x46cf2a
cmp dword [ebp - 0x24], 3
je 0x46cef6
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 - 0x1c]
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 - 0x20]
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 0x46cf99
cmp dword [ebp - 0x24], 4
je 0x46cf65
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
push edx
push eax
push ebx
call dword [0xa23458]
add esp, 0x14
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x24]
jmp 0x46d9e5
mov eax, dword [esi + 0x268]
mov ecx, dword [esi + 0x26c]
or eax, ecx
je 0x46d295
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 - 0x14], 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 - 0x18], ecx
mov dword [ebp - 0x38], edx
mov eax, dword [esi + 0x2c0]
test eax, eax
je 0x46d018
mov ecx, dword [ebp - 0x14]
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 - 0x1c], eax
mov eax, dword [eax]
test eax, eax
je 0x46d082
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x46d040
mov al, byte [eax + 0xc]
jmp 0x46d042
xor al, al
mov cl, byte [0x645930]
mov esi, dword [ebp - 0x1c]
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 0x46d0b5
mov edx, dword [esi + 0x268]
mov eax, dword [esi + 0x26c]
or edx, eax
je 0x46d0b5
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 0x46d107
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 - 0x14]
push eax
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x24]
push eax
push ecx
push ebx
call dword [0xd36ac4]
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x28]
add esp, 0x1c
jmp 0x46dadc
mov edx, dword [ebp - 0x18]
movsx eax, byte [edx]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46d146
mov ecx, dword [0xa23480]
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 [0x645a7c]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46d189
mov ecx, dword [0xa23480]
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 [0x645a80]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46d1cc
mov ecx, dword [0xa23480]
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 [0x645a84]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46d20f
mov ecx, dword [0xa23480]
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 [0x645a88]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov ecx, dword [ebp - 0x18]
movsx eax, byte [ecx + 1]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46d24f
mov edx, dword [0xa23480]
mov ecx, dword [edi + eax*4 + 0x2c4]
push edx
mov edx, dword [edi + eax*4 + 0x29c]
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 [0x645a8c]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x1c]
mov dword [0xa23480], 0
mov dword [eax*4 + 0x645a7c], 0x468ab0
mov ecx, dword [ecx]
test ecx, ecx
je 0x46d278
call fcn.0041d7f0
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x28]
mov byte [0x645930], 4
mov byte [0x645931], 4
mov byte [0x645932], 4
jmp 0x46dadc
mov al, byte [esi + 0x4a0]
test al, al
je 0x46d531
mov eax, dword [esi + 0x340]
mov edx, dword [0xa23354]
mov ecx, dword [0xa23358]
sub eax, edx
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x358]
sub eax, ecx
mov edi, esi
mov dword [ebp - 0x14], eax
mov edx, dword [esi + 0x390]
mov dword [ebp - 0x24], edx
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 - 0x18], ecx
mov dword [ebp - 0x38], edx
mov eax, dword [esi + 0x2c0]
test eax, eax
je 0x46d309
mov ecx, dword [ebp - 0x24]
mov eax, dword [eax + ecx*4]
mov dword [0xa2347c], eax
mov ecx, dword [0xd36ac8]
lea eax, [esi + 0x818]
mov dword [edx*4 + 0x645a68], ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [eax]
test eax, eax
je 0x46d374
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x46d331
mov al, byte [eax + 0xc]
jmp 0x46d333
xor al, al
mov dl, byte [esi + 0x4a1]
add dl, al
mov eax, dword [ebp - 0x1c]
mov byte [0x645930], dl
mov ecx, dword [eax]
call fcn.00469aa0
mov dl, byte [edi + 0x4a2]
mov ecx, dword [ebp - 0x1c]
add al, dl
mov byte [0x645931], al
mov ecx, dword [ecx]
call fcn.00469ab0
mov cl, byte [edi + 0x4a3]
mov esi, dword [ebp - 0x10]
add al, cl
mov byte [0x645932], al
jmp 0x46d397
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 [ebp - 0x18]
movsx eax, byte [edx]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46d3d9
mov ecx, dword [0xa2347c]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x24]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
push edx
push eax
push ecx
call dword [0x645a68]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46d41f
mov edx, dword [0xa2347c]
mov ecx, dword [edi + eax*4 + 0x2c4]
push edx
mov edx, dword [edi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x24]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
push ecx
push edx
push eax
call dword [0x645a6c]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46d465
mov ecx, dword [0xa2347c]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x24]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
push edx
push eax
push ecx
call dword [0x645a70]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
movsx eax, byte [eax]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46d4ab
mov edx, dword [0xa2347c]
mov ecx, dword [edi + eax*4 + 0x2c4]
push edx
mov edx, dword [edi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x24]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
push ecx
push edx
push eax
call dword [0x645a74]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov ecx, dword [ebp - 0x18]
movsx eax, byte [ecx + 1]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46d4ee
mov edx, dword [0xa2347c]
mov ecx, dword [edi + eax*4 + 0x2c4]
push edx
mov edx, dword [edi + eax*4 + 0x29c]
mov eax, dword [ebp - 0x24]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
push ecx
push edx
push eax
call dword [0x645a78]
mov esi, dword [ebp - 0x10]
add esp, 0x14
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x1c]
mov dword [0xa2347c], 0
mov dword [ecx*4 + 0x645a68], 0x468ab0
mov ecx, dword [edx]
test ecx, ecx
je 0x46d517
call fcn.0041d7f0
mov esi, dword [ebp - 0x10]
mov byte [0x645930], 4
mov byte [0x645931], 4
mov byte [0x645932], 4
jmp 0x46dadc
mov eax, dword [esi + 0x5c]
test eax, eax
je 0x46da04
mov al, byte [0xd37ae1]
mov edi, esi
test al, 1
mov eax, dword [0xd36ac0]
jne 0x46d574
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 - 0x18], ax
mov eax, dword [esi + 0x358]
mov ebx, dword [esi + 0x340]
sub eax, ecx
mov ecx, dword [esi + 0x390]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 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 0x46d668
mov edx, dword [ebp - 0x18]
mov eax, dword [0x6d67a8]
and edx, 0xffff
cmp edx, eax
jne 0x46d622
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x46d622
mov eax, dword [edi + 0x300]
mov ecx, dword [edi + 0x2f8]
mov edx, dword [ebp - 0x1c]
push eax
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x20]
push eax
push ecx
push ebx
call dword [0xd36ac0]
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x28]
add esp, 0x10
jmp 0x46dadc
mov edx, dword [ebp - 0x18]
mov eax, dword [edi + 0x2f8]
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
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 - 0x1c]
push eax
mov eax, dword [ecx + edx*4]
push eax
push esi
push ebx
call dword [0xd36ac0]
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x28]
add esp, 0x20
jmp 0x46dadc
mov eax, dword [esi + 0x2c0]
test eax, eax
je 0x46d67d
mov ecx, dword [ebp - 0x1c]
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 - 0x18]
and edx, 0xffff
cmp edx, eax
jne 0x46d7ba
mov ecx, 0x68d9e0
call fcn.00403b20
test eax, eax
jne 0x46d7b7
mov esi, dword [ebp - 0x14]
movsx eax, byte [esi]
mov ecx, dword [edi + eax*4 + 0x27c]
test ecx, ecx
je 0x46d6ee
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 0x46d729
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 0x46d764
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 0x46d79f
mov ecx, dword [0xa23444]
mov edx, dword [edi + eax*4 + 0x2c4]
mov eax, dword [edi + eax*4 + 0x29c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 0x46d9df
jmp 0x46d9b4
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 0x46d826
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x46d7f2
mov edx, dword [ebp - 0x18]
mov eax, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 0x46d895
cmp dword [ebp - 0x24], 1
je 0x46d861
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 - 0x1c]
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 - 0x20]
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 0x46d904
cmp dword [ebp - 0x24], 2
je 0x46d8d0
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 - 0x1c]
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 - 0x20]
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 0x46d973
cmp dword [ebp - 0x24], 3
je 0x46d93f
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 - 0x1c]
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 - 0x20]
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 0x46d9e2
cmp dword [ebp - 0x24], 4
je 0x46d9ae
mov edx, dword [edi + eax*4 + 0x29c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
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 - 0x1c]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
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 ebx, dword [ebp - 0x28]
mov dword [ecx*4 + 0xa23448], edx
mov dword [0xa23444], 0
jmp 0x46dadc
push edi
push esi
call fcn.004707d0
jmp 0x46dad6
mov eax, dword [esi]
mov ecx, dword [0xa23350]
cmp eax, ecx
jne 0x46da63
call fcn.005062e0
test eax, eax
jne 0x46da60
mov eax, dword [0x6d6a00]
xor ecx, ecx
and eax, 0x400
or eax, ecx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x5c]
jne 0x46da4d
test ecx, ecx
push eax
je 0x46da9e
call fcn.00468610
add esp, 4
jmp 0x46dad9
test ecx, ecx
je 0x46da5c
push eax
call fcn.00468610
add esp, 4
jmp 0x46dad9
push edi
push eax
jmp 0x46dad1
mov esi, dword [ebp - 0x10]
mov eax, dword [esi + 0x258]
xor ecx, ecx
and eax, 0x4000
or eax, ecx
je 0x46da8d
mov eax, dword [0x6d6a00]
and eax, 0x8000
or eax, ecx
je 0x46dadc
push esi
call fcn.00468610
add esp, 4
jmp 0x46dad9
mov ecx, dword [esi + 0x268]
mov eax, dword [esi + 0x26c]
or ecx, eax
je 0x46daa8
push esi
call fcn.00469530
add esp, 4
jmp 0x46dad9
mov al, byte [esi + 0x4a0]
test al, al
je 0x46dabd
push esi
call fcn.00469070
add esp, 4
jmp 0x46dad9
mov eax, dword [esi + 0x5c]
test eax, eax
je 0x46dacf
push esi
call fcn.00468610
add esp, 4
jmp 0x46dad9
push edi
push esi
call fcn.004709f0
add esp, 8
mov esi, dword [ebp - 0x10]
mov eax, dword [0xa262c8]
test eax, eax
je 0x46db21
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
mov edi, dword [esi + 8]
mov edx, eax
sub edx, ecx
add edx, 0x1f
sar edx, 1
cmp edi, edx
jne 0x46db21
lea eax, [ecx + eax - 0x1f]
mov ecx, dword [esi + 0xc]
cmp ecx, eax
jne 0x46db21
mov ecx, dword [0xa4f028]
mov eax, dword [ebx + 0x14]
mov edx, dword [ecx + 4]
mov ecx, dword [ebx + 0x10]
push edx
push eax
push ecx
call dword [0xd36aa8]
add esp, 0xc
call fcn.005062e0
test eax, eax
jne 0x46db5b
mov eax, dword [0x6d6a00]
xor ecx, ecx
and eax, 0x400
or eax, ecx
jne 0x46db5b
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x258]
and eax, 0x4000
or eax, ecx
jne 0x46db5b
mov eax, dword [0xce8b10]
push eax
push edx
call fcn.0050a400
add esp, 8
lea ecx, [ebp - 0x10]
push ecx
mov ecx, 0x7e3068
call fcn.004745f0
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0xb8]
test eax, eax
je 0x46ed95
lea eax, [ebp - 0x10]
mov ecx, 0x9831e0
push eax
call fcn.004745f0
jmp 0x46ed95
cmp eax, 0x4000
jb 0x46e338
cmp eax, 0x7fff
ja 0x46e338
mov edx, dword [ebp - 0x14]
xor edi, edi
push edx
mov dword [ebp - 0x78], 1
call fcn.00470ea0
mov ecx, dword [ebx + 0x18]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x38], ecx
cmp dword [eax + 0x250], 8
jne 0x46dbce
mov dword [ebp - 0x78], 0x32
test dword [ecx], 0x20000000
jne 0x46de28
lea ecx, [eax + 0x430]
call fcn.00474290
cmp eax, 1
jle 0x46de25
lea esi, [eax - 1]
test esi, esi
jle 0x46dc13
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
lea ecx, [ebp - 0x78]
push eax
push ecx
push 2
push 0xc
push esi
push edx
call fcn.0045ebc0
add esp, 0x18
dec esi
test esi, esi
jg 0x46dbf5
mov eax, dword [ebp - 0x10]
push 0
lea ecx, [eax + 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 0x46ddec
mov ecx, dword [ebp - 0x38]
test dword [ecx], 0x20000000
je 0x46dd1e
mov edx, dword [eax]
mov ecx, dword [0xa23350]
cmp edx, ecx
jne 0x46dc93
call fcn.005062e0
test eax, eax
jne 0x46dc90
mov eax, dword [0x6d6a00]
xor ecx, ecx
and eax, 0x400
or eax, ecx
jne 0x46dc7e
mov eax, dword [ebp - 0x10]
push eax
call fcn.00468d60
add esp, 4
jmp 0x46dde4
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
push ecx
push edx
call fcn.004707d0
jmp 0x46dde1
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x258]
xor edx, edx
and ecx, 0x4000
or ecx, edx
je 0x46dcd9
mov ecx, dword [0x6d67a8]
mov edx, dword [eax]
cmp edx, ecx
jne 0x46dcbf
push eax
call fcn.00468610
add esp, 4
jmp 0x46dde4
cmp ecx, 0x8000
jne 0x46dde7
push eax
call fcn.00468610
add esp, 4
jmp 0x46dde4
mov ecx, dword [eax + 0x268]
mov edx, dword [eax + 0x26c]
or ecx, edx
je 0x46dcf7
push eax
call fcn.00468d60
add esp, 4
jmp 0x46dde4
mov cl, byte [eax + 0x4a0]
test cl, cl
je 0x46dd0f
push eax
call fcn.00468af0
add esp, 4
jmp 0x46dde4
mov edx, dword [ebp - 0x14]
push edx
push eax
call fcn.004707d0
jmp 0x46dde1
mov ecx, dword [eax]
mov edx, dword [0xa23350]
cmp ecx, edx
jne 0x46dd61
call fcn.005062e0
test eax, eax
jne 0x46dd5e
mov eax, dword [0x6d6a00]
xor ecx, ecx
and eax, 0x400
or eax, ecx
jne 0x46dd54
mov edx, dword [ebp - 0x10]
push edx
call fcn.00469530
add esp, 4
jmp 0x46dde4
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
push eax
push ecx
jmp 0x46dddc
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x258]
xor edx, edx
and ecx, 0x4000
or ecx, edx
je 0x46dda7
mov edx, dword [eax]
mov ecx, dword [0x6d67a8]
cmp edx, ecx
jne 0x46dd8a
push eax
call fcn.00468610
add esp, 4
jmp 0x46dde4
mov ecx, dword [0x6d6a00]
xor edx, edx
and ecx, 0x8000
or ecx, edx
je 0x46dde7
push eax
call fcn.00468610
add esp, 4
jmp 0x46dde4
mov ecx, dword [eax + 0x268]
mov edx, dword [eax + 0x26c]
or ecx, edx
je 0x46ddc2
push eax
call fcn.00469530
add esp, 4
jmp 0x46dde4
mov cl, byte [eax + 0x4a0]
test cl, cl
je 0x46ddd7
push eax
call fcn.00469070
add esp, 4
jmp 0x46dde4
mov edx, dword [ebp - 0x14]
push edx
push eax
call fcn.004709f0
add esp, 8
mov eax, dword [ebp - 0x10]
mov edi, 1
lea ecx, [eax + 0x430]
call fcn.00474290
cmp eax, 6
jbe 0x46de1d
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 0x46ddfc
test edi, edi
jne 0x46dff3
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x38]
test dword [edx], 0x20000000
je 0x46df0d
mov ecx, dword [eax]
mov edx, dword [0xa23350]
cmp ecx, edx
jne 0x46de82
call fcn.005062e0
test eax, eax
jne 0x46de7f
mov eax, dword [0x6d6a00]
xor ecx, ecx
and eax, 0x400
or eax, ecx
jne 0x46de6d
mov edx, dword [ebp - 0x10]
push edx
call fcn.00468d60
add esp, 4
jmp 0x46dff3
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
push eax
push ecx
call fcn.004707d0
jmp 0x46dff0
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x258]
xor edx, edx
and ecx, 0x4000
or ecx, edx
je 0x46dec8
mov ecx, dword [0x6d67a8]
mov edx, dword [eax]
cmp edx, ecx
jne 0x46deae
push eax
call fcn.00468610
add esp, 4
jmp 0x46dff3
cmp ecx, 0x8000
jne 0x46dff6
push eax
call fcn.00468610
add esp, 4
jmp 0x46dff3
mov edx, dword [eax + 0x268]
mov ecx, dword [eax + 0x26c]
or edx, ecx
je 0x46dee6
push eax
call fcn.00468d60
add esp, 4
jmp 0x46dff3
mov cl, byte [eax + 0x4a0]
test cl, cl
je 0x46defe
push eax
call fcn.00468af0
add esp, 4
jmp 0x46dff3
mov ecx, dword [ebp - 0x14]
push ecx
push eax
call fcn.004707d0
jmp 0x46dff0
mov edx, dword [eax]
mov ecx, dword [0xa23350]
cmp edx, ecx
jne 0x46df53
call fcn.005062e0
test eax, eax
jne 0x46df50
mov eax, dword [0x6d6a00]
xor ecx, ecx
and eax, 0x400
or eax, ecx
jne 0x46df43
mov eax, dword [ebp - 0x10]
push eax
call fcn.00469530
add esp, 4
jmp 0x46dff3
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
push ecx
push edx
jmp 0x46dfeb
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x25c]
mov esi, dword [eax + 0x258]
and ecx, 0x1000
xor edx, edx
or edx, ecx
je 0x46df76
push eax
call fcn.00469530
add esp, 4
jmp 0x46dff3
and esi, 0x4000
xor ecx, ecx
or esi, ecx
je 0x46dfb6
mov ecx, dword [eax]
mov edx, dword [0x6d67a8]
cmp ecx, edx
jne 0x46df99
push eax
call fcn.00468610
add esp, 4
jmp 0x46dff3
mov ecx, dword [0x6d6a00]
xor edx, edx
and ecx, 0x8000
or ecx, edx
je 0x46dff6
push eax
call fcn.00468610
add esp, 4
jmp 0x46dff3
mov edx, dword [eax + 0x268]
mov ecx, dword [eax + 0x26c]
or edx, ecx
je 0x46dfd1
push eax
call fcn.00469530
add esp, 4
jmp 0x46dff3
mov cl, byte [eax + 0x4a0]
test cl, cl
je 0x46dfe6
push eax
call fcn.00469070
add esp, 4
jmp 0x46dff3
mov ecx, dword [ebp - 0x14]
push ecx
push eax
call fcn.004709f0
add esp, 8
mov eax, dword [ebp - 0x10]
mov ecx, dword [0xa23350]
mov edx, dword [eax]
cmp edx, ecx
jne 0x46e1a8
test eax, eax
je 0x46e1a8
mov edx, dword [0xa26284]
test edx, edx
je 0x46e02c
cmp ecx, 0x6000
jl 0x46e02c
cmp ecx, 0x7fff
jle 0x46e1a8
cmp ecx, 1
jl 0x46e03d
cmp ecx, 0x3fff
jle 0x46e1a8
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x46e1a8
mov ecx, dword [eax + 0x258]
xor edx, edx
and ecx, 0x4000
or ecx, edx
je 0x46e06e
mov ecx, dword [0x6d6a00]
and ecx, 0x8000
or ecx, edx
je 0x46e1a8
mov ecx, 0xa24660
call fcn.00474150
test al, al
jne 0x46e0cc
lea edx, [ebp - 0x10]
lea eax, [ebp - 0xbc]
push edx
push eax
mov ecx, 0xa24660
call fcn.00474510
mov ecx, dword [eax]
lea edx, [ebp - 0xc4]
mov dword [ebp - 0x5c], ecx
push edx
mov ecx, 0xa24660
call fcn.00474140
push eax
lea ecx, [ebp - 0x5c]
call fcn.004865d0
test al, al
je 0x46e0cc
lea ecx, [ebp - 0x5c]
call fcn.005410a0
mov eax, dword [eax + 4]
test eax, eax
je 0x46e0cc
push 1
mov ecx, eax
call fcn.00457ef0
mov eax, dword [ebp - 0x10]
or ecx, 0xffffffff
push 0x8e3180
lea edx, [eax + 0x68]
xor eax, eax
mov edi, edx
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 - 0x38], eax
test eax, eax
mov dword [ebp - 4], 0
je 0x46e10d
mov ecx, eax
call fcn.00479a10
mov esi, eax
jmp 0x46e10f
xor esi, esi
test esi, esi
mov dword [ebp - 4], 0xffffffff
je 0x46e1a5
mov eax, dword [0x8e3180]
mov ecx, dword [ebp - 0x10]
cdq
sub eax, edx
push 0
sar eax, 1
push eax
push ecx
mov ecx, esi
call fcn.00479a30
mov eax, dword [0xa23350]
cmp eax, 0x4000
jl 0x46e17d
cmp eax, 0x7fff
jg 0x46e17d
cmp eax, 0x6000
push 1
jl 0x46e16c
mov ecx, esi
call fcn.00469ac0
mov eax, dword [0x8e3180]
push 0
cdq
sub eax, edx
mov edx, dword [ebp - 0x10]
sar eax, 1
push eax
push edx
jmp 0x46e18e
mov eax, dword [0x8e3180]
cdq
sub eax, edx
sar eax, 1
push eax
mov eax, dword [ebp - 0x10]
push eax
jmp 0x46e18e
mov eax, dword [0x8e3180]
mov ecx, dword [ebp - 0x10]
cdq
sub eax, edx
push 0
sar eax, 1
push eax
push ecx
mov ecx, esi
call fcn.00479a30
lea edx, [ebp - 0x10]
mov ecx, 0xa24660
push edx
call fcn.004744b0
mov dword [eax], esi
mov eax, dword [ebp - 0x10]
lea ecx, [eax + 0x414]
call fcn.00474260
test eax, eax
je 0x46e1c3
mov eax, dword [ebp - 0x10]
push eax
call fcn.0040f050
add esp, 4
mov eax, dword [0xa262c8]
test eax, eax
je 0x46e20b
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 0x46e20e
lea ecx, [edx + ecx - 0x1f]
mov edx, dword [eax + 0xc]
cmp edx, ecx
jne 0x46e20e
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 0x46e25b
call fcn.005062e0
test eax, eax
jne 0x46e258
mov eax, dword [0x6d6a00]
xor ecx, ecx
and eax, 0x400
or eax, ecx
mov eax, dword [ebp - 0x10]
jne 0x46e25b
mov ecx, dword [eax + 0x258]
xor edx, edx
and ecx, 0x4000
or ecx, edx
jne 0x46e25b
mov edx, dword [0xce8b10]
push edx
push eax
call fcn.0050a400
add esp, 8
mov eax, dword [ebp - 0x10]
mov ecx, dword [0xa26284]
test ecx, ecx
je 0x46e289
mov ecx, dword [eax]
cmp ecx, 0x6000
jb 0x46e289
cmp ecx, 0x7fff
ja 0x46e289
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x46e289
lea eax, [ebp - 0x10]
mov ecx, 0x8a30f0
push eax
jmp 0x46e2bc
mov ecx, dword [eax]
cmp ecx, 1
jb 0x46e2c4
cmp ecx, 0x3fff
ja 0x46e2c4
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 0x46e2c4
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 0x46ed95
cmp ecx, 0x7fff
ja 0x46ed95
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x46ed95
mov ecx, dword [eax + 0x258]
xor edx, edx
and ecx, 0x4000
or ecx, edx
je 0x46e30f
mov ecx, dword [0x6d6a00]
and ecx, 0x8000
or ecx, edx
je 0x46ed95
push eax
call fcn.00473f40
add esp, 4
test eax, eax
je 0x46e32a
mov eax, dword [ebp - 0x10]
push eax
call fcn.00473cc0
jmp 0x46ed92
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.00473c30
jmp 0x46ed92
cmp eax, 0xa000
jb 0x46ed95
cmp eax, 0xdfff
ja 0x46ed95
lea edx, [ebp - 0xb8]
push ecx
push edx
mov ecx, 0x6d6208
call fcn.004743a0
mov eax, dword [eax]
lea ecx, [ebp - 0xc0]
push ecx
mov ecx, 0x6d6208
mov dword [ebp - 0x40], eax
call fcn.00474140
push eax
lea ecx, [ebp - 0x40]
call fcn.004865d0
test al, al
je 0x46ed95
lea ecx, [ebp - 0x40]
call fcn.005410a0
mov eax, dword [eax + 4]
xor esi, esi
mov dword [0xced980], eax
mov ecx, dword [eax + 4]
cmp ecx, 0xea60
mov dword [ebp - 0x30], ecx
jne 0x46e5ee
mov eax, dword [eax + 0x18]
cmp eax, 1
jb 0x46e3ba
cmp eax, 0x64
jae 0x46e3bf
jmp 0x46e403
cmp eax, 0x64
jb 0x46e3cd
cmp eax, 0x1f4
jae 0x46e3d4
mov esi, 1
jmp 0x46e403
cmp eax, 0x1f4
jb 0x46e3e2
cmp eax, 0x9c4
jae 0x46e3e9
mov esi, 2
jmp 0x46e403
cmp eax, 0x9c4
jb 0x46e3f7
cmp eax, 0x2710
jae 0x46e3fe
mov esi, 3
jmp 0x46e403
cmp eax, 0x2710
jb 0x46e403
mov esi, 4
mov edx, dword [ebp - 0x10]
mov ecx, dword [esi*4 + 0xa4baec]
lea edi, [esi*4 + 0xa4baec]
mov ax, word [edx]
mov edx, dword [ecx]
mov dword [ebp - 0x38], edi
mov ecx, dword [ebx + 0x10]
push eax
mov eax, dword [ebx + 0x14]
push edx
push eax
push ecx
call dword [0xd36aa4]
mov edx, dword [ebp - 0x10]
mov ecx, dword [0xa23350]
add esp, 0x10
mov eax, dword [edx]
cmp eax, ecx
jne 0x46e4b7
mov ecx, dword [ebx + 0x10]
mov eax, dword [0xced980]
mov dword [0x983218], ecx
mov edx, dword [ebx + 0x14]
mov dword [0x98321c], edx
mov dword [0x983220], 0xffffff
mov ecx, dword [eax + 0x18]
push ecx
push 0x645a20
push 0x983238
call fcn.006133d6
add esp, 0xc
mov ecx, 0x983218
call fcn.004683a0
push 0x983218
mov ecx, 0x9831f0
call fcn.004747d0
mov eax, dword [edi]
mov edx, dword [esi*4 + 0xa439cc]
push 4
push 4
mov ecx, dword [eax]
mov eax, dword [ebx + 0x10]
push 4
push edx
mov edx, dword [ebx + 0x14]
push ecx
push edx
push eax
call dword [0xd36ab8]
add esp, 0x1c
jmp 0x46eafd
mov eax, dword [0xa2633c]
test eax, eax
je 0x46e5d4
mov ecx, dword [ebx + 0x10]
mov eax, dword [0xced980]
mov dword [0x983218], ecx
mov edx, dword [ebx + 0x14]
mov dword [0x98321c], edx
mov dword [0x983220], 0xffffff
mov ecx, dword [eax + 0x18]
push ecx
push 0x645a20
push 0x983238
call fcn.006133d6
add esp, 0xc
mov ecx, 0x983218
call fcn.004683a0
push 0x983218
mov ecx, 0x9831f0
call fcn.004747d0
mov edx, dword [0xced980]
push 0xa
push 0x8e3158
mov eax, dword [edx + 0x18]
push eax
call fcn.0061d6c5
mov edi, 0x8e3158
or ecx, 0xffffffff
xor eax, eax
push 0x983258
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x8e3158
call fcn.005a9050
mov eax, dword [ebx + 0x14]
mov edx, dword [0x98325c]
mov ecx, dword [ebx + 0x10]
add esp, 0x18
add edx, eax
push edx
mov edx, dword [0x983258]
add edx, ecx
push edx
push eax
push ecx
push 0x7e3080
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [0xcf95d4]
mov ecx, dword [0xcf95d0]
push eax
push ecx
push 0x7e3080
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x46e5c2
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x38]
mov eax, dword [esi*4 + 0xa439cc]
mov dword [0xa23350], edx
mov edx, dword [ecx]
mov ecx, dword [ebx + 0x14]
push 4
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 0x46eafd
mov ecx, dword [ebp - 0x38]
mov eax, dword [esi*4 + 0xa439cc]
push eax
mov edx, dword [ecx]
jmp 0x46eae9
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 0x46eaf4
push ecx
mov ecx, 0xced988
call fcn.0053bf30
test eax, eax
je 0x46eafd
lea edx, [ebp - 0x30]
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 0x46eafd
mov edx, dword [ebp - 0x10]
lea ecx, [ebp - 0x30]
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 0x46e793
mov eax, dword [ebx + 0x10]
mov edx, dword [0xced980]
mov dword [0x983218], eax
mov ecx, dword [ebx + 0x14]
push edx
mov dword [0x98321c], ecx
call fcn.00473a00
add esp, 4
mov dword [0x983220], eax
lea eax, [ebp - 0x30]
mov ecx, 0xced988
push eax
call fcn.004743f0
mov ecx, dword [eax]
mov dword [0x983238], ecx
mov edx, dword [eax + 4]
mov dword [0x98323c], edx
mov ecx, dword [eax + 8]
mov dword [0x983240], ecx
mov dl, byte [eax + 0xc]
mov eax, dword [0xced980]
mov byte [0x983244], dl
mov byte [0x983244], 0
mov ax, word [eax + 0x26]
test ax, ax
jbe 0x46e71c
and eax, 0xffff
push eax
push 0x645a18
push 0x8e3158
call fcn.006133d6
mov edi, 0x8e3158
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, 0x983238
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 0x46e775
cmp ax, 0x63
je 0x46e775
and eax, 0xffff
push eax
push 0x645a14
push 0x8e3158
call fcn.006133d6
mov edi, 0x8e3158
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, 0x983238
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, 0x983218
call fcn.004683a0
push 0x983218
mov ecx, 0x9831f0
call fcn.004747d0
jmp 0x46e954
mov eax, dword [0xa2633c]
test eax, eax
je 0x46eab2
mov eax, dword [ebx + 0x10]
mov edx, dword [0xced980]
mov dword [0x983218], eax
mov ecx, dword [ebx + 0x14]
push edx
mov dword [0x98321c], ecx
call fcn.00473a00
add esp, 4
mov dword [0x983220], eax
lea eax, [ebp - 0x30]
mov ecx, 0xced988
push eax
call fcn.004743f0
mov ecx, dword [eax]
mov dword [0x983238], ecx
mov edx, dword [eax + 4]
mov dword [0x98323c], edx
mov ecx, dword [eax + 8]
mov dword [0x983240], ecx
mov dl, byte [eax + 0xc]
mov eax, dword [0xced980]
mov byte [0x983244], dl
mov byte [0x983244], 0
mov ax, word [eax + 0x26]
test ax, ax
jbe 0x46e850
and eax, 0xffff
push eax
push 0x645a18
push 0x8e3158
call fcn.006133d6
mov edi, 0x8e3158
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, 0x983238
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 0x46e8a9
cmp ax, 0x63
je 0x46e8a9
and eax, 0xffff
push eax
push 0x645a14
push 0x8e3158
call fcn.006133d6
mov edi, 0x8e3158
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, 0x983238
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, 0x983218
call fcn.004683a0
push 0x983218
mov ecx, 0x9831f0
call fcn.004747d0
mov eax, dword [0xa4f274]
test eax, eax
je 0x46e9aa
lea eax, [ebp - 0x30]
push 0x983258
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 - 0x30]
push ecx
mov ecx, 0xced988
call fcn.004743f0
push eax
call fcn.005a9050
mov eax, dword [ebx + 0x14]
mov edx, dword [0x98325c]
mov ecx, dword [ebx + 0x10]
add esp, 0xc
add edx, eax
push edx
mov edx, dword [0x983258]
add edx, ecx
push edx
push eax
push ecx
push 0x7e3080
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [0xcf95d4]
mov ecx, dword [0xcf95d0]
push eax
push ecx
push 0x7e3080
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x46eab2
mov edx, dword [ebx + 4]
mov dword [0xa23350], edx
push 4
push 4
lea eax, [ebp - 0x30]
push 4
push eax
mov ecx, 0xced988
call fcn.004743f0
xor ecx, ecx
mov cx, word [eax + 0x4e]
lea eax, [ebp - 0x30]
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 0x46eafd
lea eax, [ebp - 0x30]
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, 0x8a3134
push 0x8a3134
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 - 0x30]
mov ecx, 0xced988
push 0x983258
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 0x8a3134
call fcn.005a9050
mov eax, dword [ebx + 0x14]
mov edx, dword [0x98325c]
mov ecx, dword [ebx + 0x10]
add esp, 0xc
add edx, eax
push edx
mov edx, dword [0x983258]
add edx, ecx
push edx
push eax
push ecx
push 0x7e3080
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [0xcf95d4]
mov ecx, dword [0xcf95d0]
push eax
push ecx
push 0x7e3080
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x46eab2
mov edx, dword [ebx + 4]
push 4
push 4
lea eax, [ebp - 0x30]
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 - 0x30]
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 0x46eafd
lea eax, [ebp - 0x30]
mov ecx, 0xced988
push eax
call fcn.004743f0
xor ecx, ecx
mov cx, word [eax + 0x4e]
lea eax, [ebp - 0x30]
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 0x46ed95
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [eax + 8]
cmp ecx, edx
jne 0x46ed95
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x2c]
cmp edx, eax
jne 0x46ed95
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 0x46ed95
cmp eax, 3
jne 0x46eb67
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x46ed95
call fcn.0059ba80
jmp 0x46ed95
cmp eax, 4
jne 0x46eb81
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x46ed95
call fcn.0041d220
jmp 0x46ed95
cmp eax, 5
jne 0x46ecc7
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0xb0]
mov dword [ebp - 0x38], ecx
push edx
mov ecx, 0x6d6208
call fcn.00474140
push eax
lea eax, [ebp - 0x38]
lea ecx, [ebp - 0x74]
push eax
push ecx
mov ecx, 0x6d6208
call fcn.004743a0
mov ecx, eax
call fcn.004865d0
test al, al
je 0x46ed95
mov edx, dword [ebx + 4]
lea eax, [ebp - 0x38]
push eax
mov ecx, 0x6d6208
mov dword [ebp - 0x38], edx
call fcn.00474360
mov eax, dword [eax]
test eax, eax
mov dword [0xced140], eax
je 0x46ed95
mov edx, dword [eax + 0x20]
mov ecx, dword [0x6d6790]
add edx, 0x42
cmp ecx, edx
jbe 0x46ec0a
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 0x46ec26
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 0x46ed95
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 - 0x38]
mov dword [ebp - 0x38], ecx
push eax
mov ecx, 0x9c3270
call fcn.004745f0
jmp 0x46ed95
cmp eax, 6
jne 0x46ed95
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x70]
mov dword [ebp - 0x38], ecx
push edx
mov ecx, 0x6d6208
call fcn.00474140
push eax
lea eax, [ebp - 0x38]
lea ecx, [ebp - 0x58]
push eax
push ecx
mov ecx, 0x6d6208
call fcn.004743a0
mov ecx, eax
call fcn.004865d0
test al, al
je 0x46ed95
mov edx, dword [ebx + 4]
lea eax, [ebp - 0x38]
push eax
mov ecx, 0x6d6208
mov dword [ebp - 0x38], 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 0x46ed95
lea ecx, [ebp - 0x54]
lea esi, [edi + 4]
push ecx
mov ecx, 0x6d6208
call fcn.00474140
push eax
lea edx, [ebp - 0x44]
push esi
push edx
mov ecx, 0x6d6208
call fcn.004743a0
mov ecx, eax
call fcn.004865d0
test al, al
je 0x46ed8a
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 0x46ed8a
push 0
mov ecx, 0xd12398
call fcn.00469ac0
mov ecx, dword [edi]
push ecx
call fcn.00455f00
add esp, 4
push ebx
call fcn.00612e45
mov edx, dword [ebp - 0x34]
mov eax, dword [0x7a303c]
add esp, 4
mov ecx, dword [edx]
cmp ecx, eax
mov dword [ebp - 0x34], ecx
jne 0x46bb5b
mov ecx, 0x7a3038
call fcn.00474a70
mov ecx, 0x68efd0
call fcn.00474150
test al, al
jne 0x46ee9c
lea eax, [ebp - 0x44]
mov ecx, 0x68efd0
push eax
call fcn.0043d9c0
mov ecx, dword [eax]
lea edx, [ebp - 0x40]
mov dword [ebp - 0x24], ecx
push edx
mov ecx, 0x68efd0
call fcn.00474140
push eax
lea ecx, [ebp - 0x24]
call fcn.004865d0
test al, al
je 0x46ee9c
lea ecx, [ebp - 0x24]
call fcn.005410a0
mov ebx, dword [eax]
test ebx, ebx
je 0x46ee6f
lea eax, [ebx + 0x27c]
test eax, eax
je 0x46ee6f
lea ecx, [ebp - 0x24]
call fcn.005410a0
mov ecx, dword [eax + 4]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebx + 0x390]
mov edx, dword [ebx + 0x2d8]
mov edi, dword [ebx + 0x340]
mov ecx, dword [0xa23354]
mov esi, dword [edx + eax*4]
mov edx, dword [ebx + 0x358]
sub edi, ecx
mov ecx, dword [0xa23358]
add esi, edx
add edi, 0x180
sub esi, ecx
mov ecx, ebx
sub esi, 0x20
call fcn.00470e90
mov ecx, dword [ebp - 0x34]
push eax
push esi
push edi
call fcn.0041c380
lea eax, [ebp - 0x44]
push 0
push eax
lea ecx, [ebp - 0x24]
call fcn.0045a550
lea ecx, [ebp - 0x40]
push ecx
mov ecx, 0x68efd0
call fcn.00474140
push eax
lea ecx, [ebp - 0x24]
call fcn.004865d0
test al, al
jne 0x46ee01
mov ecx, 0x68f010
call fcn.00474150
test al, al
jne 0x46f038
lea edx, [ebp - 0x44]
mov ecx, 0x68f010
push edx
mov dword [ebp - 0x40], 0
call fcn.0043d9c0
mov eax, dword [eax]
lea ecx, [ebp - 0x5c]
push ecx
mov ecx, 0x68f010
mov dword [ebp - 0x24], eax
call fcn.00474140
push eax
lea ecx, [ebp - 0x24]
call fcn.004865d0
test al, al
je 0x46f08d
lea ecx, [ebp - 0x24]
call fcn.005410a0
mov edi, dword [eax]
test edi, edi
je 0x46ef91
lea edx, [edi + 0x27c]
test edx, edx
je 0x46ef91
cmp edi, dword [0x6d71a0]
jne 0x46ef18
mov dword [ebp - 0x40], 1
jmp 0x46ef91
lea ecx, [ebp - 0x24]
call fcn.005410a0
mov eax, dword [eax + 4]
mov ecx, dword [0xa23354]
mov dword [ebp - 0x34], eax
mov ebx, dword [edi + 0x340]
mov eax, dword [edi + 0x390]
mov edx, dword [edi + 0x358]
sub ebx, ecx
mov ecx, dword [edi + 0x2d8]
push 0x12
add ebx, 0x180
mov esi, dword [ecx + eax*4]
mov ecx, dword [0xa23358]
add esi, edx
lea edx, [edi + 0x68]
sub esi, ecx
push edx
push 0xa2469c
sub esi, 0x20
call fcn.00613b90
add esp, 0xc
mov ecx, edi
test eax, eax
jne 0x46ef7f
call fcn.00470e90
push eax
push 3
jmp 0x46ef87
call fcn.00470e90
push eax
push 0
mov ecx, dword [ebp - 0x34]
push esi
push ebx
call fcn.0041c650
lea eax, [ebp - 0x44]
push 0
push eax
lea ecx, [ebp - 0x24]
call fcn.00474160
lea ecx, [ebp - 0x5c]
push ecx
mov ecx, 0x68f010
call fcn.00474140
push eax
lea ecx, [ebp - 0x24]
call fcn.004865d0
test al, al
jne 0x46eee7
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x46f08d
mov eax, dword [0x6d71a0]
mov esi, dword [0xa23354]
mov ebx, dword [0xa23358]
push 0x12
mov edi, dword [eax + 0x340]
mov edx, dword [eax + 0x390]
mov ecx, dword [eax + 0x2d8]
sub edi, esi
add edi, 0x180
mov esi, dword [ecx + edx*4]
mov ecx, dword [eax + 0x358]
mov edx, dword [ebp - 0x10]
add esi, ecx
add edx, 0x68
sub esi, ebx
push edx
push 0xa2469c
sub esi, 0x20
call fcn.00613b90
mov ecx, dword [0x6d71a0]
add esp, 0xc
test eax, eax
jne 0x46f02e
call fcn.00470e90
push eax
push 4
jmp 0x46f080
call fcn.00470e90
push eax
push 2
jmp 0x46f080
mov ecx, dword [0x6d71a0]
test ecx, ecx
je 0x46f08d
mov edi, dword [ecx + 0x340]
mov edx, dword [0xa23354]
mov eax, dword [ecx + 0x390]
mov ebx, dword [ecx + 0x358]
sub edi, edx
mov edx, dword [ecx + 0x2d8]
add edi, 0x180
mov esi, dword [edx + eax*4]
mov edx, dword [0xa23358]
add esi, ebx
sub esi, edx
sub esi, 0x20
call fcn.00470e90
push eax
push 1
mov ecx, dword [0x68f060]
push esi
push edi
call fcn.0041c650
mov ecx, 0x68efe0
call fcn.00474150
test al, al
jne 0x46f230
mov eax, dword [0xce8b10]
test eax, eax
jne 0x46f230
lea eax, [ebp - 0x44]
mov ecx, 0x68efe0
push eax
call fcn.0043d9c0
mov ecx, dword [eax]
lea edx, [ebp - 0x40]
mov dword [ebp - 0x2c], ecx
push edx
mov ecx, 0x68efe0
call fcn.00474140
push eax
lea ecx, [ebp - 0x2c]
call fcn.004865d0
test al, al
je 0x46f230
lea ecx, [ebp - 0x2c]
call fcn.005410a0
mov esi, dword [eax]
xor ecx, ecx
mov eax, dword [esi + 0x258]
and eax, 0x4000
or eax, ecx
je 0x46f103
lea eax, [ebp - 0x44]
push ecx
push eax
jmp 0x46f209
test esi, esi
je 0x46f203
lea ecx, [esi + 0x27c]
test ecx, ecx
je 0x46f203
mov edx, dword [esi]
mov eax, dword [0xa23350]
cmp edx, eax
je 0x46f1fb
cmp dword [esi + 0x250], 0xc
je 0x46f1fb
push esi
call fcn.00473f60
add esp, 4
test eax, eax
je 0x46f1ca
push esi
call fcn.00473d30
add esp, 4
test eax, eax
jne 0x46f1ca
lea ecx, [ebp - 0x2c]
call fcn.005410a0
mov eax, dword [eax + 4]
mov edx, dword [0xa23354]
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x390]
mov ecx, dword [esi + 0x2d8]
mov ebx, dword [esi + 0x340]
sub ebx, edx
mov edx, dword [0xa23358]
mov edi, dword [ecx + eax*4]
mov eax, dword [esi + 0x358]
add edi, eax
push esi
sub edi, edx
add ebx, 0x185
sub edi, 0x24
call fcn.00473ea0
add esp, 4
mov ecx, esi
test eax, eax
je 0x46f1b0
call fcn.00470e90
push eax
push 1
jmp 0x46f1b8
call fcn.00470e90
push eax
push 0
mov ecx, dword [ebp - 0x34]
push edi
push ebx
call fcn.0041c820
lea edx, [ebp - 0x54]
push 0
push edx
jmp 0x46f209
lea ecx, [ebp - 0x2c]
call fcn.005410a0
mov eax, dword [eax + 4]
test eax, eax
je 0x46f1e2
push 1
mov ecx, eax
call fcn.00457ef0
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x58]
push eax
push ecx
mov ecx, 0x68efe0
call fcn.004741a0
mov edx, dword [eax]
mov dword [ebp - 0x2c], edx
jmp 0x46f211
lea eax, [ebp - 0x70]
push 0
push eax
jmp 0x46f209
lea ecx, [ebp - 0x74]
push 0
push ecx
lea ecx, [ebp - 0x2c]
call fcn.004741c0
lea edx, [ebp - 0x40]
mov ecx, 0x68efe0
push edx
call fcn.00474140
push eax
lea ecx, [ebp - 0x2c]
call fcn.004865d0
test al, al
jne 0x46f0de
mov ecx, 0x68eff0
call fcn.00474150
test al, al
jne 0x46f3d3
mov eax, dword [0xce8b10]
test eax, eax
jne 0x46f3d3
lea eax, [ebp - 0x44]
mov ecx, 0x68eff0
push eax
call fcn.0043d9c0
mov ecx, dword [eax]
lea edx, [ebp - 0x40]
mov dword [ebp - 0x2c], ecx
push edx
mov ecx, 0x68eff0
call fcn.00474140
push eax
lea ecx, [ebp - 0x2c]
call fcn.004865d0
test al, al
je 0x46f3d3
lea ecx, [ebp - 0x2c]
call fcn.005410a0
mov esi, dword [eax]
xor ecx, ecx
mov eax, dword [esi + 0x258]
and eax, 0x4000
or eax, ecx
je 0x46f2a6
lea eax, [ebp - 0x44]
push ecx
push eax
jmp 0x46f3ac
test esi, esi
je 0x46f3a6
lea ecx, [esi + 0x27c]
test ecx, ecx
je 0x46f3a6
mov edx, dword [esi]
mov eax, dword [0xa23350]
cmp edx, eax
je 0x46f39e
cmp dword [esi + 0x250], 0xc
je 0x46f39e
push esi
call fcn.00473f80
add esp, 4
test eax, eax
je 0x46f36d
push esi
call fcn.00473d30
add esp, 4
test eax, eax
jne 0x46f36d
lea ecx, [ebp - 0x2c]
call fcn.005410a0
mov eax, dword [eax + 4]
mov edx, dword [0xa23354]
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x390]
mov ecx, dword [esi + 0x2d8]
mov ebx, dword [esi + 0x340]
sub ebx, edx
mov edx, dword [0xa23358]
mov edi, dword [ecx + eax*4]
mov eax, dword [esi + 0x358]
add edi, eax
push esi
sub edi, edx
add ebx, 0x185
sub edi, 0x24
call fcn.00473ea0
add esp, 4
mov ecx, esi
test eax, eax
je 0x46f353
call fcn.00470e90
push eax
push 1
jmp 0x46f35b
call fcn.00470e90
push eax
push 0
mov ecx, dword [ebp - 0x34]
push edi
push ebx
call fcn.0041c970
lea edx, [ebp - 0x54]
push 0
push edx
jmp 0x46f3ac
lea ecx, [ebp - 0x2c]
call fcn.005410a0
mov eax, dword [eax + 4]
test eax, eax
je 0x46f385
push 1
mov ecx, eax
call fcn.00457ef0
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x58]
push eax
push ecx
mov ecx, 0x68eff0
call fcn.004741e0
mov edx, dword [eax]
mov dword [ebp - 0x2c], edx
jmp 0x46f3b4
lea eax, [ebp - 0x70]
push 0
push eax
jmp 0x46f3ac
lea ecx, [ebp - 0x74]
push 0
push ecx
lea ecx, [ebp - 0x2c]
call fcn.00474200
lea edx, [ebp - 0x40]
mov ecx, 0x68eff0
push edx
call fcn.00474140
push eax
lea ecx, [ebp - 0x2c]
call fcn.004865d0
test al, al
jne 0x46f281
mov ecx, 0x68f050
call fcn.00474150
test al, al
jne 0x46f558
mov eax, dword [0xce8b10]
test eax, eax
jne 0x46f558
lea eax, [ebp - 0x44]
mov ecx, 0x68f050
push eax
call fcn.0043d9c0
mov ecx, dword [eax]
lea edx, [ebp - 0x40]
mov dword [ebp - 0x2c], ecx
push edx
mov ecx, 0x68f050
call fcn.00474140
push eax
lea ecx, [ebp - 0x2c]
call fcn.004865d0
test al, al
je 0x46f558
lea ecx, [ebp - 0x2c]
call fcn.005410a0
mov edi, dword [eax]
xor ecx, ecx
mov eax, dword [edi + 0x258]
and eax, 0x4000
or eax, ecx
je 0x46f449
lea eax, [ebp - 0x44]
push ecx
push eax
jmp 0x46f531
test edi, edi
je 0x46f52b
lea ecx, [edi + 0x27c]
test ecx, ecx
je 0x46f52b
mov edx, dword [edi]
mov eax, dword [0xa23350]
cmp edx, eax
je 0x46f523
cmp dword [edi + 0x250], 0xc
je 0x46f523
push edi
call fcn.00473f40
add esp, 4
test eax, eax
je 0x46f4f2
push edi
call fcn.00473d30
add esp, 4
test eax, eax
jne 0x46f4f2
lea ecx, [ebp - 0x2c]
call fcn.005410a0
mov eax, dword [eax + 4]
mov esi, dword [0xa23354]
mov dword [ebp - 0x34], eax
mov eax, dword [edi + 0x390]
mov ebx, dword [edi + 0x340]
mov ecx, dword [edi + 0x2d8]
sub ebx, esi
mov esi, dword [ecx + eax*4]
mov ecx, dword [edi + 0x358]
mov eax, dword [0xa23358]
add esi, ecx
sub esi, eax
mov ecx, edi
add ebx, 0x185
sub esi, 0x24
call fcn.00470e90
mov ecx, dword [ebp - 0x34]
push eax
push esi
push ebx
call fcn.0041cab0
lea edx, [ebp - 0x54]
push 0
push edx
jmp 0x46f531
lea ecx, [ebp - 0x2c]
call fcn.005410a0
mov eax, dword [eax + 4]
test eax, eax
je 0x46f50a
push 1
mov ecx, eax
call fcn.00457ef0
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x58]
push eax
push ecx
mov ecx, 0x68f050
call fcn.00474220
mov edx, dword [eax]
mov dword [ebp - 0x2c], edx
jmp 0x46f539
lea eax, [ebp - 0x70]
push 0
push eax
jmp 0x46f531
lea ecx, [ebp - 0x74]
push 0
push ecx
lea ecx, [ebp - 0x2c]
call fcn.00474240
lea edx, [ebp - 0x40]
mov ecx, 0x68f050
push edx
call fcn.00474140
push eax
lea ecx, [ebp - 0x2c]
call fcn.004865d0
test al, al
jne 0x46f424
mov eax, dword [0xa26284]
test eax, eax
je 0x46f8d2
mov ecx, 0x8a30f0
call fcn.004745c0
test al, al
jne 0x46f8d2
mov ecx, 0x8a30f0
call fcn.00474a00
mov ecx, 0x8a30f0
mov esi, eax
call fcn.0044a9a0
cmp esi, eax
je 0x46f8d2
mov edx, dword [esi]
xor ecx, ecx
mov dword [0x7e3060], edx
mov eax, dword [edx + 0x258]
and eax, 0x4000
or eax, ecx
jne 0x46f8bd
mov eax, dword [edx + 0x358]
mov ebx, dword [0xa23358]
sub eax, ebx
add eax, 0x1c7
cmp eax, 0x27e
mov dword [0x983210], eax
jg 0x46f8bd
add edx, 0x68
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x9631c0
push ecx
push edx
call fcn.005a9050
mov eax, dword [0x9631c0]
mov edi, dword [0xa23354]
cdq
sub eax, edx
push 0x9631b0
mov ecx, eax
mov eax, dword [0x7e3060]
sar ecx, 1
mov edx, dword [eax + 0x340]
push eax
sub edx, ecx
sub edx, edi
add edx, 0x190
mov dword [0x7e3090], edx
call fcn.0047a1f0
mov eax, dword [0x7e3060]
mov ecx, dword [0x9631b0]
mov edx, dword [0x983210]
add eax, 0x68
push eax
mov eax, dword [0x7e3090]
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
push 0xffffffffffffffff
dec edx
push 0
push edx
push eax
call fcn.005a8380
mov ecx, dword [0x7e3060]
mov edx, dword [0x9631b0]
mov eax, dword [0x983210]
add ecx, 0x68
push ecx
mov ecx, dword [0x7e3090]
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
push 0xffffffffffffffff
inc eax
push 0
push eax
push ecx
call fcn.005a8380
mov edx, dword [0x7e3060]
mov eax, dword [0x9631b0]
add esp, 0x5c
mov ecx, dword [0x983210]
add edx, 0x68
push edx
mov edx, dword [0x7e3090]
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
push 0xffffffffffffffff
push 0
dec edx
push ecx
push edx
call fcn.005a8380
mov eax, dword [0x7e3060]
add eax, 0x68
push eax
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, dword [0x9631b0]
mov eax, dword [0x7e3090]
mov edx, dword [0x983210]
push ecx
push 0xffffffffffffffff
push 0
inc eax
push edx
push eax
call fcn.005a8380
mov ecx, dword [0x7e3060]
add esp, 0x48
mov edx, dword [0x983210]
add ecx, 0x68
mov eax, dword [0x7e3090]
push ecx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffff
push 0xffffffffffffffff
push 0
push edx
push eax
call fcn.005a8380
add esp, 0x24
call fcn.00473dd0
test eax, eax
je 0x46f79f
mov ecx, dword [0x7e3060]
push ecx
call fcn.00473e00
add esp, 4
test eax, eax
je 0x46f792
mov eax, dword [0xa4f150]
test eax, eax
jne 0x46f772
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 0x46f8bd
mov edx, dword [0xa4f154]
mov eax, dword [eax]
mov ecx, dword [0x983210]
push edx
mov edx, dword [0x7e3090]
push eax
add edx, 0xffffffef
push ecx
push edx
jmp 0x46f8b4
mov eax, dword [0x7e3060]
push eax
call fcn.00473e20
jmp 0x46f7c8
mov edx, dword [0x7e3060]
cmp word [0xa58db6], 0
push edx
je 0x46f811
call fcn.00473e40
add esp, 4
test eax, eax
jne 0x46f81d
mov edx, dword [0x7e3060]
push edx
call fcn.00473ea0
add esp, 4
test eax, eax
je 0x46f8bd
mov eax, dword [0xa4f144]
test eax, eax
jne 0x46f89a
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 0x46f8bd
jmp 0x46f89a
call fcn.00473e00
add esp, 4
test eax, eax
je 0x46f856
mov eax, dword [0xa4f150]
test eax, eax
jne 0x46f84e
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 0x46f8bd
mov ecx, dword [0xa4f154]
jmp 0x46f8a0
mov edx, dword [0x7e3060]
push edx
call fcn.00473e20
add esp, 4
test eax, eax
je 0x46f8bd
mov eax, dword [0xa4f144]
test eax, eax
jne 0x46f89a
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 0x46f8bd
mov ecx, dword [0xa4f148]
mov edx, dword [eax]
mov eax, dword [0x983210]
push ecx
mov ecx, dword [0x7e3090]
push edx
add ecx, 0xffffffef
push eax
push ecx
call dword [0xd36aac]
add esp, 0x10
mov ecx, 0x8a30f0
add esi, 4
call fcn.0044a9a0
cmp esi, eax
jne 0x46f595
mov ecx, 0x7e3068
call fcn.004745c0
test al, al
jne 0x46fa78
mov ecx, 0x7e3068
call fcn.00474a00
mov ecx, 0x7e3068
mov esi, eax
call fcn.0044a9a0
cmp esi, eax
je 0x46fa78
mov edx, dword [esi]
mov ebx, dword [0xa23358]
mov dword [0x8a3144], edx
mov eax, dword [edx + 0x358]
sub eax, ebx
add eax, 0x1c7
cmp eax, 0x27e
mov dword [0xa13344], eax
jg 0x46fa63
add edx, 0x68
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0xa03300
push ecx
push edx
call fcn.005a9050
mov eax, dword [0xa03300]
mov ecx, dword [0x8a3144]
cdq
sub eax, edx
add ecx, 0x68
mov edx, eax
mov eax, dword [ecx + 0x2d8]
sar edx, 1
sub eax, edx
mov edx, dword [0xa23354]
push ecx
mov ecx, dword [0x645954]
push 0x6416d0
sub eax, edx
mov edx, dword [0xa13344]
push 0xffffffffffffffff
push 0xffffffffffffffff
add eax, 0x190
push ecx
push 0xffffffffffffffff
dec edx
push 0
push edx
push eax
mov dword [0x983260], eax
call fcn.005a8380
mov eax, dword [0x8a3144]
mov ecx, dword [0x645954]
mov edx, dword [0xa13344]
add eax, 0x68
push eax
mov eax, dword [0x983260]
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
push 0xffffffffffffffff
inc edx
push 0
push edx
push eax
call fcn.005a8380
mov ecx, dword [0x8a3144]
mov edx, dword [0x645954]
add esp, 0x54
mov eax, dword [0xa13344]
add ecx, 0x68
push ecx
mov ecx, dword [0x983260]
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
push 0xffffffffffffffff
push 0
dec ecx
push eax
push ecx
call fcn.005a8380
mov edx, dword [0x8a3144]
mov eax, dword [0x645954]
add edx, 0x68
mov ecx, dword [0xa13344]
push edx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
push 0xffffffffffffffff
push 0
mov edx, dword [0x983260]
push ecx
inc edx
push edx
call fcn.005a8380
mov eax, dword [0x8a3144]
add esp, 0x48
mov ecx, dword [0xa13344]
add eax, 0x68
mov edx, dword [0x983260]
push eax
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffff
push 0xffffffffffffffff
push 0
push ecx
push edx
call fcn.005a8380
add esp, 0x24
mov ecx, 0x7e3068
add esi, 4
call fcn.0044a9a0
cmp esi, eax
jne 0x46f902
mov ecx, 0x9831e0
call fcn.004745c0
test al, al
jne 0x46ff8c
mov ecx, 0x9831e0
call fcn.00474a00
mov esi, eax
mov ecx, 0x9831e0
mov dword [ebp - 0x2c], esi
call fcn.0044a9a0
cmp esi, eax
je 0x46ff8c
mov eax, dword [ebp - 0x2c]
mov ebx, dword [eax]
call fcn.005a44e0
mov ecx, dword [0xa233f4]
mov dword [ebp - 0x18], eax
cmp eax, ecx
jbe 0x46fb2c
call fcn.006133b4
and eax, 0x800000ff
jns 0x46fad5
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 0x46faef
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 0x46fb0d
dec eax
or eax, 0xffffff00
inc eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x18]
and eax, 0xff
or ecx, eax
add edx, 0x108
mov dword [0x645958], ecx
mov dword [0xa233f4], edx
mov eax, dword [ebx + 0xb8]
dec eax
je 0x46fe0b
dec eax
je 0x46fd02
dec eax
lea edx, [ebp - 0xac]
je 0x46fb70
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 0x46fe4d
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 0x46fbac
lea ecx, [ebp - 0xac]
push 0
push ecx
call fcn.00586e90
add esp, 8
mov eax, dword [0xa2335c]
mov dword [ebp - 0x24], 0xff
test eax, eax
jne 0x46fbe4
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 0x46fc1e
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 - 0x18]
mov edx, dword [0xa233f8]
cmp esi, edx
jbe 0x46fc7f
mov edx, dword [0xa23388]
mov edi, dword [0xa23380]
inc edx
and edi, 0xffff
cmp edx, edi
mov dword [0xa23388], edx
jb 0x46fc52
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 0x46fc76
mov dword [0xa2338c], 0
add esi, 0x21
mov dword [0xa233f8], 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 0x46fe54
test ecx, ecx
je 0x46fe54
cmp esi, 0x27e
jg 0x46fe54
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 0x46fe54
mov edi, 0x645998
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0xac]
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 0x46fd44
lea ecx, [ebp - 0xac]
push 0
push ecx
call fcn.00586e90
add esp, 8
mov eax, dword [0xa23364]
mov dword [ebp - 0x24], 0xff0000
test eax, eax
jne 0x46fd7c
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 - 0x18]
mov edx, dword [0xa233f8]
cmp ecx, edx
jbe 0x46fdb9
mov edx, dword [0xa23390]
mov esi, dword [0xa23384]
inc edx
and esi, 0xffff
cmp edx, esi
mov dword [0xa23390], edx
jb 0x46fdb0
mov dword [0xa23390], 0
add ecx, 0x21
mov dword [0xa233f8], 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 0x46fe54
cmp ecx, 0x27e
jg 0x46fe54
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 0x46fe54
mov edi, 0x645978
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0xac]
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 0x46fe4d
lea ecx, [ebp - 0xac]
push 0
push ecx
call fcn.00586e90
add esp, 8
mov dword [ebp - 0x24], 0xffffff
lea edi, [ebp - 0xac]
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x48]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push edx
lea eax, [ebp - 0xac]
push ecx
push eax
call fcn.005a9050
mov eax, dword [ebp - 0x48]
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 0x46ff71
mov edx, dword [0x645958]
lea ecx, [ebp - 0xac]
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 [0x645958]
lea ecx, [ebp - 0xac]
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 [0x645958]
add esp, 0x48
lea ecx, [ebp - 0xac]
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 [0x645958]
lea ecx, [ebp - 0xac]
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 - 0xac]
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 - 0x2c]
mov ecx, 0x9831e0
add esi, 4
mov dword [ebp - 0x2c], esi
call fcn.0044a9a0
cmp esi, eax
jne 0x46faab
mov ecx, 0x9c3270
call fcn.004745c0
test al, al
jne 0x470101
mov ecx, 0x9c3270
call fcn.00474a00
mov esi, eax
mov ecx, 0x9c3270
mov dword [ebp - 0x24], esi
call fcn.0044a9a0
cmp esi, eax
je 0x470101
mov eax, dword [ebp - 0x24]
mov ecx, dword [0x64596c]
mov edx, dword [0x645970]
mov ebx, dword [eax]
mov al, byte [0x645974]
mov byte [ebp - 0x60], al
mov eax, dword [0xa4f274]
test eax, eax
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x64], edx
mov byte [ebp - 0x5f], 0
je 0x46fff9
lea ecx, [ebp - 0x68]
push 0
push ecx
call fcn.00586e90
add esp, 8
lea edi, [ebp - 0x68]
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x48]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push edx
lea eax, [ebp - 0x68]
push ecx
push eax
call fcn.005a9050
mov eax, dword [ebp - 0x48]
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 0x4700e6
lea ecx, [ebp - 0x68]
lea edx, [edi - 1]
push ecx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xff0000
push 0xffffffffffffffff
push 0
push edx
push esi
call fcn.005a8380
lea eax, [ebp - 0x68]
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
add esp, 0x48
lea edx, [ebp - 0x68]
lea eax, [esi - 1]
push edx
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xff0000
push 0xffffffffffffffff
push 0
push edi
push eax
call fcn.005a8380
lea ecx, [ebp - 0x68]
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
add esp, 0x48
lea eax, [ebp - 0x68]
push eax
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 - 0x24]
mov ecx, 0x9c3270
add esi, 4
mov dword [ebp - 0x24], esi
call fcn.0044a9a0
cmp esi, eax
jne 0x46ffbf
mov ecx, 0x9831f0
call fcn.004747a0
test al, al
jne 0x4702c3
mov eax, dword [0x6d6a00]
xor ecx, ecx
and eax, 0x400
or eax, ecx
jne 0x4702c3
mov ecx, 0x9831f0
call fcn.00474a00
mov ecx, 0x9831f0
mov ebx, eax
call fcn.0044a9a0
cmp ebx, eax
je 0x4702c3
mov dword [0x7e30d8], ebx
mov eax, dword [ebx + 4]
cmp eax, 0x27e
jg 0x4702ae
mov eax, dword [0xa4f274]
test eax, eax
je 0x4701f2
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
mov ecx, dword [ebx + 0x1c]
and eax, 0xffff
or edx, eax
mov eax, dword [ebx + 0x14]
push edx
mov edx, dword [ebx + 0x18]
push ecx
mov ecx, dword [ebx + 0x10]
push edx
push eax
push ecx
call dword [0xd36b5c]
mov eax, dword [0x7e30d8]
mov ecx, dword [eax + 8]
lea edx, [eax + 0x20]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push 0x6416d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
push 0xffffffffffffffff
push 0
push edx
push eax
call fcn.005a8380
add esp, 0x3c
jmp 0x4702ae
lea edi, [ebx + 0x20]
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, 0x8a3108
push 0x8a3108
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
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
and edx, 0xffff
or eax, edx
push eax
mov eax, dword [0x7e30d8]
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 [0x7e30d8]
push 0x8a3108
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 0x470145
mov ecx, 0xa24660
call fcn.00474150
test al, al
jne 0x47037c
mov eax, dword [0x6d6a00]
xor ecx, ecx
and eax, 0x400
or eax, ecx
jne 0x47037c
lea ecx, [ebp - 0x44]
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 0x47037c
lea ecx, [ebp - 0x24]
call fcn.005410a0
mov esi, dword [eax + 4]
mov ecx, esi
call fcn.00479a50
test eax, eax
je 0x470353
test esi, esi
je 0x47033a
push 1
mov ecx, esi
call fcn.00457ef0
mov ecx, dword [ebp - 0x24]
lea edx, [ebp - 0x44]
push ecx
push edx
mov ecx, 0xa24660
call fcn.004744f0
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
jmp 0x470361
lea ecx, [ebp - 0x54]
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 0x470317
mov edi, 0x6d6810
or ecx, 0xffffffff
xor eax, eax
push 0x8e3150
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d6810
call fcn.005a9050
mov eax, dword [0x8e3150]
mov esi, dword [0x6d6ae8]
mov edi, dword [0x6d6b00]
mov ebx, dword [0xa23354]
cdq
sub eax, edx
mov edx, dword [0xa23358]
sar eax, 1
sub esi, eax
sub edi, edx
sub esi, ebx
add edi, 0x1c7
add esp, 0xc
add esi, 0x190
cmp edi, 0x27e
jg 0x4704b6
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 0x4704b6
push 0x6d67a8
mov ecx, 0xd04bc8
call fcn.005783e0
mov ecx, 0xa24650
call fcn.00474150
test al, al
jne 0x4705be
lea edx, [ebp - 0x44]
mov ecx, 0xa24650
push edx
call fcn.0043d9c0
mov eax, dword [eax]
lea ecx, [ebp - 0x34]
push ecx
mov ecx, 0xa24650
mov dword [ebp - 0x18], eax
call fcn.00474140
push eax
lea ecx, [ebp - 0x18]
call fcn.004865d0
test al, al
je 0x4705be
lea ecx, [ebp - 0x18]
call fcn.005410a0
mov esi, dword [eax]
test esi, esi
je 0x470591
lea edx, [esi + 0x27c]
test edx, edx
je 0x470591
lea ecx, [ebp - 0x18]
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 0x470589
test edi, edi
je 0x470570
push 1
mov ecx, edi
call fcn.00469ad0
mov ecx, dword [ebp - 0x18]
lea edx, [ebp - 0x44]
push ecx
push edx
mov ecx, 0xa24650
call fcn.00474470
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
jmp 0x47059f
lea ecx, [ebp - 0x54]
push 0
push ecx
jmp 0x470597
lea edx, [ebp - 0x58]
push 0
push edx
lea ecx, [ebp - 0x18]
call fcn.00474490
lea eax, [ebp - 0x34]
mov ecx, 0xa24650
push eax
call fcn.00474140
push eax
lea ecx, [ebp - 0x18]
call fcn.004865d0
test al, al
jne 0x4704fa
mov ecx, 0xa24670
call fcn.00474150
test al, al
jne 0x4706c4
lea ecx, [ebp - 0x44]
push ecx
mov ecx, 0xa24670
call fcn.0043d9c0
mov edx, dword [eax]
lea eax, [ebp - 0x34]
push eax
mov ecx, 0xa24670
mov dword [ebp - 0x18], edx
call fcn.00474140
push eax
lea ecx, [ebp - 0x18]
call fcn.004865d0
test al, al
je 0x4706c4
lea ecx, [ebp - 0x18]
call fcn.005410a0
mov esi, dword [eax]
test esi, esi
je 0x470697
lea ecx, [esi + 0x27c]
test ecx, ecx
je 0x470697
lea ecx, [ebp - 0x18]
call fcn.005410a0
mov edi, dword [eax + 4]
mov eax, dword [esi + 0x390]
test edi, edi
je 0x47068f
mov edx, dword [esi + 0x2d8]
mov ebx, dword [esi + 0x358]
mov ecx, dword [esi + 0x340]
mov eax, dword [edx + eax*4]
mov edx, dword [0xa23358]
add eax, ebx
mov ebx, dword [0xa23354]
sub ecx, ebx
sub eax, edx
add ecx, 0x190
push eax
push ecx
mov ecx, edi
call fcn.0047a030
test eax, eax
je 0x47068f
push 1
mov ecx, edi
call fcn.00457ef0
mov edx, dword [ebp - 0x18]
lea eax, [ebp - 0x44]
push edx
push eax
mov ecx, 0xa24670
call fcn.00474580
mov ecx, dword [eax]
mov dword [ebp - 0x18], ecx
jmp 0x4706a5
lea edx, [ebp - 0x54]
push 0
push edx
jmp 0x47069d
lea eax, [ebp - 0x58]
push 0
push eax
lea ecx, [ebp - 0x18]
call fcn.004745a0
lea ecx, [ebp - 0x34]
push ecx
mov ecx, 0xa24670
call fcn.00474140
push eax
lea ecx, [ebp - 0x18]
call fcn.004865d0
test al, al
jne 0x470602
mov ecx, 0x68f000
call fcn.00474150
test al, al
jne 0x47074d
lea edx, [ebp - 0x44]
mov ecx, 0x68f000
push edx
call fcn.0043d9c0
mov eax, dword [eax]
lea ecx, [ebp - 0x14]
push ecx
mov ecx, 0x68f000
mov dword [ebp - 0x3c], eax
call fcn.00474140
push eax
lea ecx, [ebp - 0x3c]
call fcn.004865d0
test al, al
je 0x47074d
lea ecx, [ebp - 0x3c]
call fcn.005410a0
mov esi, dword [eax]
lea ecx, [ebp - 0x3c]
call fcn.005410a0
mov edi, dword [eax + 4]
mov ecx, esi
call fcn.00470e90
push eax
mov ecx, edi
call fcn.0041d370
lea edx, [ebp - 0x44]
push 0
push edx
lea ecx, [ebp - 0x3c]
call fcn.00474180
lea eax, [ebp - 0x14]
mov ecx, 0x68f000
push eax
call fcn.00474140
push eax
lea ecx, [ebp - 0x3c]
call fcn.004865d0
test al, al
jne 0x470700
cmp dword [0x6d69f8], 0x19
jne 0x470787
mov ecx, dword [0x6d6790]
push ecx
mov ecx, 0xcecc68
call fcn.00521100
test eax, eax
je 0x470787
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, [0xa25920]
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