Function at 0x452a00
Capabilities:
Execute anti-debugging instructions
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x228
push ebx
push esi
push edi
rdtsc
lea ebx, [0xa254b8]
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov eax, dword [0x647e34]
test eax, eax
je 0x455754
mov al, byte [0x6d6200]
test al, 1
jne 0x452a6a
mov bl, al
mov al, byte [ebp - 0x2d]
or bl, 1
push 0xc
mov byte [0x6d6200], bl
mov byte [0x6d60d0], al
call fcn.00613321
mov dword [eax], eax
mov dword [eax + 4], eax
push 0x4557a0
mov dword [0x6d60d4], eax
mov dword [0x6d60d8], 0
call fcn.006132e0
add esp, 8
mov eax, dword [0xcfeba4]
mov ecx, dword [0x6d67b4]
test eax, eax
je 0x452a9f
mov edx, dword [0xa26344]
mov eax, dword [0x6d67b0]
add edx, ecx
mov ecx, dword [0xa26340]
push edx
mov edx, dword [0xa23398]
add ecx, eax
mov eax, dword [0xa23394]
push ecx
push edx
push eax
jmp 0x452ab4
mov edx, dword [0x6d67b0]
mov eax, dword [0xa23398]
push ecx
mov ecx, dword [0xa23394]
push edx
push eax
push ecx
call fcn.00425970
mov dword [ebp - 0x38], eax
mov eax, dword [0x6d6214]
add esp, 0x10
mov dword [ebp - 0x34], edx
test eax, eax
je 0x455275
mov eax, dword [0x6d620c]
mov ecx, dword [eax]
cmp ecx, eax
mov dword [ebp - 0x24], ecx
je 0x455275
mov eax, dword [ecx + 0x10]
test eax, eax
mov dword [ebp - 4], eax
je 0x455353
mov ecx, dword [eax]
cmp ecx, 1
jb 0x452afe
cmp ecx, 0x7fff
jbe 0x452b16
cmp ecx, 0x14000
jb 0x45525d
cmp ecx, 0x17fff
ja 0x45525d
mov ecx, dword [eax + 0x270]
test ecx, ecx
jne 0x455244
mov edx, dword [eax + 0x250]
xor ebx, ebx
mov dword [0x6d5bb8], edx
mov dword [0x6d5ba0], ebx
mov dword [0x6d6274], ebx
mov dword [0x6d5ba4], 1
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov eax, dword [0xa23398]
push ecx
mov ecx, dword [0xa23394]
push edx
push eax
push ecx
call fcn.00425970
mov ecx, dword [ebp - 4]
mov edi, eax
mov eax, edx
mov edx, dword [0x6d67a8]
mov esi, dword [ecx]
add esp, 0x10
cmp esi, edx
jne 0x452b7e
mov edi, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x34]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ebp - 0x38]
mov dword [ebp - 8], eax
mov eax, edi
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ebp - 8]
add edx, eax
cmp edx, 0x28
jle 0x452bd8
mov esi, dword [0x6d60d4]
mov dword [ebp - 8], ecx
push 0xc
mov edi, dword [esi + 4]
call fcn.00613321
add esp, 4
cmp esi, ebx
mov ecx, esi
jne 0x452bbd
mov ecx, eax
cmp edi, ebx
mov dword [eax], ecx
jne 0x452bc5
mov edi, eax
mov dword [eax + 4], edi
mov dword [esi + 4], eax
mov ecx, dword [eax + 4]
lea edx, [ebp - 8]
mov dword [ecx], eax
jmp 0x452fdd
mov edx, 1
cmp esi, edx
jb 0x452d01
cmp esi, 0x3fff
ja 0x452d01
mov dword [0x6d6274], edx
mov eax, dword [ecx + 0x58]
dec eax
cmp eax, 4
ja case.default.0x452c04
jmp dword [eax*4 + 0x455768]
mov edi, dword [0x6d5bb8]
lea eax, [edi + edi*2]
shl eax, 3
mov edx, dword [eax + 0x6444c8]
mov eax, dword [eax + 0x6444d0]
mov dword [0x6d60cc], edx
mov dword [0x6d5ba8], eax
jmp 0x452cb8
mov edi, dword [0x6d5bb8]
lea eax, [edi + edi*2]
shl eax, 3
mov edx, dword [eax + 0x6447c8]
mov eax, dword [eax + 0x6447d0]
mov dword [0x6d60cc], edx
mov dword [0x6d5ba8], eax
jmp 0x452cb8
mov edi, dword [0x6d5bb8]
lea eax, [edi + edi*2]
shl eax, 3
mov edx, dword [eax + 0x644ac8]
mov eax, dword [eax + 0x644ad0]
mov dword [0x6d60cc], edx
mov dword [0x6d5ba8], eax
jmp 0x452cb8
mov edi, dword [0x6d5bb8]
lea eax, [edi + edi*2]
shl eax, 3
mov edx, dword [eax + 0x644dc8]
mov eax, dword [eax + 0x644dd0]
mov dword [0x6d60cc], edx
mov dword [0x6d5ba8], eax
jmp 0x452cb8
mov dword [0x6d60cc], edx
mov dword [0x6d5ba8], 0xc6
mov edi, dword [0x6d5bb8]
cmp edi, 8
je 0x452cd8
cmp edi, 7
je 0x452cd8
cmp edi, 0xc
jne 0x45304f
cmp dword [0x6d6274], 2
jne 0x45304f
mov eax, dword [ecx + 0x4ec]
cmp eax, ebx
je 0x452ffa
xor edx, edx
mov dx, word [eax + 6]
mov dword [0x6d5ba8], 0x42
mov dword [0x6d60cc], edx
jmp 0x45304f
cmp esi, 0x4000
jb 0x452d9e
cmp esi, 0x5fff
ja 0x452d9e
mov edi, dword [0x6d5bb8]
mov dword [0x6d6274], 2
lea eax, [edi + edi*2]
shl eax, 3
cmp edi, 0xc
mov edx, dword [eax + 0x6450c8]
mov eax, dword [eax + 0x6450d0]
mov dword [0x6d60cc], edx
mov dword [0x6d5ba8], eax
jne 0x452cb8
call fcn.005a44e0
mov ecx, dword [ebp - 4]
sub eax, dword [ecx + 0x81c]
test eax, eax
jle case.default.0x452c04
mov esi, dword [0x6d60d4]
mov dword [ebp - 8], ecx
push 0xc
mov edi, dword [esi + 4]
call fcn.00613321
add esp, 4
cmp esi, ebx
mov ecx, esi
jne 0x452d83
mov ecx, eax
cmp edi, ebx
mov dword [eax], ecx
jne 0x452d8b
mov edi, eax
mov dword [eax + 4], edi
mov dword [esi + 4], eax
mov ecx, dword [eax + 4]
lea edx, [ebp - 8]
mov dword [ecx], eax
jmp 0x452fdd
cmp esi, 0x6000
jb 0x452f45
cmp esi, 0x7fff
ja 0x452f45
mov eax, dword [ecx + 0x258]
xor edx, edx
and eax, 0x4000
or eax, edx
je 0x452efb
mov esi, dword [0xd1233c]
lea eax, [ebp - 4]
push eax
mov ecx, 0xd12338
call fcn.0045c880
mov edx, dword [0xd1233c]
mov ecx, dword [ebp - 4]
cmp eax, edx
mov dword [ebp - 8], eax
je 0x452df9
cmp ecx, dword [eax + 0xc]
jb 0x452df9
lea eax, [ebp - 8]
jmp 0x452e05
mov dword [ebp - 0xa4], edx
lea eax, [ebp - 0xa4]
cmp dword [eax], esi
je 0x452efb
lea ecx, [ebp - 4]
mov esi, edx
push ecx
mov ecx, 0xd12338
call fcn.0045c880
mov edx, dword [0xd1233c]
mov ecx, dword [ebp - 4]
cmp eax, edx
mov dword [ebp - 8], eax
je 0x452e37
cmp ecx, dword [eax + 0xc]
jb 0x452e37
lea eax, [ebp - 8]
jmp 0x452e43
mov dword [ebp - 0xa8], edx
lea eax, [ebp - 0xa8]
cmp dword [eax], esi
je 0x452efb
lea edx, [ebp - 0xb8]
lea eax, [ebp - 0x188]
mov dword [ebp - 0xb8], ecx
push edx
push eax
mov ecx, 0xd12338
mov dword [ebp - 0xb4], ebx
call fcn.0045b900
mov ecx, eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
mov edx, dword [ecx + 4]
push eax
mov ecx, 0xd125f0
mov dword [ebp - 0x18], edx
call fcn.0059c340
cmp eax, ebx
je 0x452ea0
mov cl, byte [eax + 0xa0]
mov dword [eax + 0xa4], ebx
and cl, 0xfd
mov byte [eax + 0xa0], cl
lea ecx, [ebp - 4]
lea edx, [ebp - 0x16c]
push ecx
push edx
mov ecx, 0xd12338
call fcn.0045c4d0
mov edi, eax
lea eax, [ebp - 4]
lea ecx, [ebp - 0x2c]
push eax
push ecx
mov ecx, 0xd12338
call fcn.0045bb60
mov esi, dword [eax]
mov edx, dword [ebp - 0x2c]
mov edi, dword [edi]
lea eax, [ebp - 0xa0]
push edx
push eax
push edi
push esi
mov dword [ebp - 0xa0], ebx
call fcn.0045cdc0
add esp, 0x10
lea ecx, [ebp - 0x28]
push edi
push esi
push ecx
mov ecx, 0xd12338
call fcn.0045ba30
mov ecx, dword [ebp - 4]
mov edi, dword [0x6d5bb8]
mov dword [0x6d6274], 3
lea eax, [edi + edi*2]
shl eax, 3
mov edx, dword [eax + 0x644198]
mov eax, dword [eax + 0x6441a0]
mov dword [0x6d60cc], edx
mov dword [0x6d5ba8], eax
mov eax, dword [ecx + 0x818]
cmp eax, ebx
je 0x452cb8
mov ecx, eax
call fcn.0041d7c0
mov ecx, dword [ebp - 4]
jmp case.default.0x452c04
cmp esi, 0x14000
jb case.default.0x452c04
cmp esi, 0x17fff
ja case.default.0x452c04
mov edi, dword [0x6d5bb8]
mov dword [0x6d6274], 2
lea eax, [edi + edi*2]
shl eax, 3
cmp edi, 0xc
mov edx, dword [eax + 0x6450c8]
mov eax, dword [eax + 0x6450d0]
mov dword [0x6d60cc], edx
mov dword [0x6d5ba8], eax
jne 0x452cb8
call fcn.005a44e0
mov ecx, dword [ebp - 4]
sub eax, dword [ecx + 0x81c]
test eax, eax
jle case.default.0x452c04
mov esi, dword [0x6d60d4]
mov dword [ebp - 8], ecx
push 0xc
mov edi, dword [esi + 4]
call fcn.00613321
add esp, 4
cmp esi, ebx
mov ecx, esi
jne 0x452fc7
mov ecx, eax
cmp edi, ebx
mov dword [eax], ecx
jne 0x452fcf
mov edi, eax
mov dword [eax + 4], edi
mov dword [esi + 4], eax
mov ecx, dword [eax + 4]
lea edx, [ebp - 8]
mov dword [ecx], eax
add eax, 8
push edx
push eax
call fcn.0045cd40
mov eax, dword [0x6d60d8]
add esp, 8
inc eax
mov dword [0x6d60d8], eax
jmp 0x45525d
mov dword [ecx + 0x38c], ebx
mov edi, dword [0x6d5bb8]
cmp edi, 7
jl 0x45304c
cmp edi, 8
jle 0x453113
cmp edi, 0xc
jne 0x45304c
mov eax, dword [ebp - 4]
mov edi, 0x16
mov dword [eax + 0x38c], ebx
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x378], edi
mov edx, dword [0x6452d8]
mov eax, dword [0x6452e0]
mov dword [0x6d5bb8], edi
mov dword [0x6d60cc], edx
mov dword [0x6d5ba8], eax
mov ecx, dword [ebp - 4]
cmp dword [0x6d60cc], ebx
je 0x45525d
mov edx, dword [0x6d6790]
mov esi, dword [ecx + 0x3a8]
mov eax, edx
mov dword [ebp - 0x14], ebx
sub eax, esi
mov esi, dword [0x6d5ba8]
cmp eax, esi
jb 0x4530c3
cmp word [ecx + 0x80e], 2
jne 0x4530c3
mov byte [ecx + 0x4a0], 0
mov eax, dword [0x6d6274]
cmp eax, 2
je 0x4530b4
cmp eax, 3
jne 0x4530b4
push eax
mov eax, dword [ebp - 4]
push ebx
mov ecx, dword [eax + 0x48c]
mov edx, dword [eax + 0x488]
push ecx
push edx
push eax
call fcn.00458e10
add esp, 0x14
mov ecx, dword [ebp - 4]
mov edi, dword [0x6d5bb8]
mov edx, dword [0x6d6790]
mov eax, dword [ecx + 0x3a8]
mov esi, dword [0x6d5ba8]
sub edx, eax
cmp edx, esi
jb 0x454f50
add eax, esi
mov dword [ecx + 0x3a8], eax
mov eax, dword [0x6d5bb8]
cmp eax, 8
je 0x453bf5
cmp eax, 7
je 0x453bf5
cmp eax, 0xc
jne 0x453187
cmp dword [0x6d6274], 2
je 0x453bf5
jmp 0x45369e
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x378]
cmp eax, 8
je 0x45314f
cmp eax, 7
je 0x45314f
mov dword [0x6d5bb8], eax
mov edx, dword [ecx + 0x254]
push edx
push eax
call fcn.00476c30
mov eax, dword [ebp - 4]
mov dword [eax + 0x388], ebx
mov ecx, dword [ebp - 4]
mov edi, dword [0x6d5bb8]
jmp 0x45304f
mov dword [0x6d5bb8], ebx
mov dword [ecx + 0x378], ebx
mov ecx, dword [ebp - 4]
mov eax, dword [0x6d5bb8]
mov edx, dword [ecx + 0x254]
push edx
push eax
call fcn.00476c30
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x388], ebx
mov ecx, dword [ebp - 4]
mov edi, dword [0x6d5bb8]
jmp 0x45304f
cmp eax, 2
je 0x4536d3
cmp eax, 0x20
je 0x4536d3
cmp eax, 1
jne 0x45369e
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x344]
test ecx, ecx
jl 0x4531dd
mov ecx, 0x354
mov edx, dword [0x6d6790]
mov edi, dword [ecx + eax + 0x68]
sub edx, edi
cmp edx, 0x12c
jb 0x4531dd
mov dword [ecx + eax], 0xffffffff
mov eax, dword [ebp - 4]
sub ecx, 4
cmp ecx, 0x340
jg 0x4531b4
mov ecx, dword [eax + 0x3e0]
xor edi, edi
cmp ecx, edi
jne 0x453243
cmp dword [eax + 0x3d4], edi
jne 0x453243
mov cl, byte [0x66c5ec]
test cl, cl
je 0x453259
mov dword [0x6d6244], edi
mov dword [0x6d6248], edi
mov ecx, dword [eax + 0x400]
mov dword [eax + 0x408], ecx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x404]
mov dword [eax + 0x40c], edx
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x254]
mov edx, dword [ecx + 0x378]
push eax
push edx
call fcn.00476c30
mov eax, dword [ebp - 4]
mov dword [eax + 0x388], edi
jmp 0x453256
push 0x6d6248
push 0x6d6244
push eax
call fcn.004591e0
add esp, 0xc
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
mov edx, dword [0x6d67a8]
cmp ecx, edx
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], edi
jne 0x45327d
mov edx, dword [0x6d67b0]
mov dword [ebp - 0xc], edx
mov edx, dword [0x6d67b4]
mov dword [ebp - 8], edx
cmp ecx, 1
jb 0x4533ec
cmp ecx, 0x5fff
ja 0x4533ec
mov ecx, dword [eax + 0x340]
mov edx, dword [0x6d6244]
mov esi, dword [0x6d6248]
lea ecx, [ecx + edx + 0x30]
mov dword [0x6d624c], ecx
mov edx, dword [eax + 0x358]
test cl, 0x1f
lea edx, [edx + esi + 0x14]
mov dword [0x6d61e4], edx
je 0x4533ec
test dl, 0xf
je 0x4533ec
mov eax, dword [0xa4f198]
push 0x6d61e4
push 0x6d624c
lea ecx, [ecx + eax - 0x10]
mov eax, dword [0xa4f19c]
mov dword [0x6d624c], ecx
lea ecx, [edx + eax - 4]
mov dword [0x6d61e4], ecx
call fcn.0045f710
mov edx, dword [0x6d624c]
mov esi, dword [0xa4f188]
add esp, 8
cmp edx, esi
jl 0x4533e9
lea eax, [esi + 0x9c]
cmp edx, eax
jge 0x4533e9
mov ecx, dword [0x6d61e4]
mov eax, dword [0xa4f18c]
cmp ecx, eax
jl 0x4533e9
lea ebx, [eax + 0x184]
cmp ecx, ebx
jge 0x4533e9
sub ecx, eax
mov ebx, dword [0xa4f17c]
lea eax, [ecx + ecx*4]
shl eax, 3
sub eax, ecx
shl eax, 2
sub eax, esi
add eax, edx
sub edx, esi
cmp edx, 1
lea eax, [eax + eax*2]
lea eax, [ebx + eax*8]
mov dword [0x6d71d0], eax
jl 0x453379
cmp ecx, 1
jl 0x453379
test dword [eax], 0xc0000000
je 0x4533e9
mov ecx, dword [ebp - 4]
push 0x6d61e4
push 0x6d624c
push ecx
call fcn.004590a0
mov eax, dword [0x6d61e4]
mov esi, dword [0xa4f18c]
sub eax, esi
mov esi, dword [0xa4f188]
mov edx, dword [0x6d624c]
mov ebx, dword [0xa4f17c]
lea ecx, [eax + eax*4]
add esp, 0xc
shl ecx, 3
sub ecx, eax
shl ecx, 2
sub ecx, esi
add ecx, edx
sub edx, esi
cmp edx, 1
lea ecx, [ecx + ecx*2]
lea ecx, [ebx + ecx*8]
mov dword [0x6d71d0], ecx
jl 0x454b08
cmp eax, 1
jl 0x454b08
test dword [ecx], 0xc0000000
jne 0x454b08
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x340]
mov esi, dword [0x6d6244]
mov ecx, dword [0xa4f198]
add edx, esi
push 0x6d61e4
push 0x6d624c
lea edx, [edx + ecx + 0x20]
mov ecx, dword [0x6d6248]
mov dword [0x6d624c], edx
mov eax, dword [eax + 0x358]
add eax, ecx
mov ecx, dword [0xa4f19c]
lea edx, [eax + ecx + 0x10]
mov dword [0x6d61e4], edx
call fcn.0045f710
mov eax, dword [ebp - 4]
mov ecx, dword [0x6d624c]
add esp, 8
cmp ecx, dword [eax + 0x3f8]
jne 0x453518
mov edx, dword [0x6d61e4]
mov esi, dword [eax + 0x3fc]
cmp edx, esi
jne 0x453518
cmp ecx, dword [eax + 8]
je 0x453518
cmp edx, dword [eax + 0xc]
je 0x453518
mov esi, dword [0xa4f188]
cmp ecx, esi
jl 0x453518
add esi, 0x9c
cmp ecx, esi
jge 0x453518
mov ecx, dword [0xa4f18c]
cmp edx, ecx
jl 0x453518
add ecx, 0x184
cmp edx, ecx
jge 0x453518
call fcn.00474020
mov ecx, dword [0x6d61e4]
mov edx, dword [0xa4f18c]
neg eax
sbb eax, eax
sub ecx, edx
mov esi, dword [0xa4f188]
mov ebx, dword [0xa4f17c]
lea edx, [ecx + ecx*4]
and eax, 0x800000
shl edx, 3
sub edx, ecx
add eax, 0xc0000000
shl edx, 2
sub edx, esi
mov esi, dword [0x6d624c]
add edx, esi
lea edx, [edx + edx*2]
lea edx, [ebx + edx*8]
mov ebx, dword [0xa4f188]
sub esi, ebx
mov dword [0x6d71d0], edx
cmp esi, 1
jl 0x454b36
cmp ecx, 1
jl 0x454b36
test dword [edx], eax
jne 0x454b36
mov eax, dword [ebp - 4]
push eax
call fcn.00455e10
mov eax, dword [ebp - 4]
mov edx, dword [0x6d67a8]
add esp, 4
mov ecx, dword [eax]
cmp ecx, edx
mov ecx, dword [0x6d6244]
jne 0x453558
mov ebx, dword [0x6d71bc]
mov esi, dword [0x6d6248]
mov edi, dword [0x6d71c0]
add ebx, ecx
add edi, esi
mov dword [0x6d71bc], ebx
mov dword [0x6d71c0], edi
cmp dword [eax], edx
jne 0x4535c5
mov ecx, dword [eax + 0x340]
mov edi, dword [0x6d71bc]
add ecx, edi
mov dword [eax + 0x400], ecx
mov eax, dword [ebp - 4]
mov esi, dword [0x6d71c0]
mov edx, dword [eax + 0x358]
add edx, esi
mov dword [eax + 0x404], edx
mov eax, dword [ebp - 4]
mov edx, dword [0x6d71bc]
mov ecx, dword [eax + 0x340]
add ecx, edx
mov edx, dword [0xa4f198]
lea ecx, [ecx + edx + 0x20]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 4]
mov ecx, dword [0x6d71c0]
mov edx, dword [eax + 0x358]
add edx, ecx
mov ecx, dword [0xa4f19c]
lea edx, [edx + ecx + 0x10]
mov dword [eax + 0xc], edx
jmp 0x453634
mov esi, dword [eax + 0x340]
add esi, ecx
mov dword [eax + 0x340], esi
mov eax, dword [ebp - 4]
mov ecx, dword [0x6d6248]
mov edx, dword [eax + 0x358]
add edx, ecx
mov dword [eax + 0x358], edx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x340]
mov dword [eax + 0x400], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x358]
mov dword [eax + 0x404], ecx
mov eax, dword [ebp - 4]
mov ecx, dword [0xa4f198]
mov edx, dword [eax + 0x340]
lea edx, [edx + ecx + 0x20]
mov dword [eax + 8], edx
mov eax, dword [ebp - 4]
mov edx, dword [0xa4f19c]
mov ecx, dword [eax + 0x358]
lea ecx, [ecx + edx + 0x10]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 4]
lea edx, [eax + 0xc]
add eax, 8
push edx
push eax
call fcn.0045f710
mov eax, dword [ebp - 4]
mov edx, dword [0x6d67a8]
add esp, 8
mov ecx, dword [eax]
cmp ecx, edx
jne 0x453670
mov edx, dword [ebp - 0xc]
mov ecx, dword [eax + 8]
cmp edx, ecx
jne 0x45366a
mov ecx, dword [ebp - 8]
mov edx, dword [eax + 0xc]
cmp ecx, edx
je 0x453670
inc dword [0x6d7194]
push eax
call fcn.00455af0
mov eax, dword [ebp - 4]
add esp, 4
mov edi, dword [eax + 0x384]
inc edi
mov dword [eax + 0x384], edi
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x254]
movsx ecx, byte [edx + 0x645488]
jmp 0x453bd7
mov ecx, 0x354
mov eax, dword [ebp - 4]
mov edx, dword [0x6d6790]
sub edx, dword [ecx + eax + 0x68]
cmp edx, 0x12c
jb 0x4542a8
mov dword [ecx + eax], 0xffffffff
sub ecx, 4
cmp ecx, 0x340
jg 0x4536a3
jmp 0x4542a5
mov eax, 0x354
mov ecx, dword [ebp - 4]
add eax, 0xfffffffc
cmp eax, 0x340
mov edx, dword [eax + ecx]
mov dword [eax + ecx + 4], edx
mov ecx, dword [ebp - 4]
mov edx, dword [eax + ecx + 0x18]
mov dword [eax + ecx + 0x1c], edx
mov ecx, dword [ebp - 4]
mov edx, dword [eax + ecx + 0x50]
mov dword [eax + ecx + 0x54], edx
mov ecx, dword [ebp - 4]
mov edx, dword [eax + ecx + 0x68]
mov dword [eax + ecx + 0x6c], edx
jg 0x4536d8
mov eax, dword [ebp - 4]
xor edi, edi
cmp dword [eax + 0x3e0], edi
jne 0x45376a
cmp dword [eax + 0x3d4], edi
jne 0x45376a
mov dword [0x6d6244], edi
mov dword [0x6d6248], edi
mov ecx, dword [eax + 0x400]
mov dword [eax + 0x408], ecx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x404]
mov dword [eax + 0x40c], edx
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x254]
mov edx, dword [ecx + 0x378]
push eax
push edx
call fcn.00476c30
mov eax, dword [ebp - 4]
mov dword [eax + 0x388], edi
jmp 0x45377d
push 0x6d6248
push 0x6d6244
push eax
call fcn.004591e0
add esp, 0xc
mov eax, dword [ebp - 4]
mov edx, dword [0x6d67a8]
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], edi
mov ecx, dword [eax]
cmp ecx, edx
jne 0x4537a4
mov edx, dword [0x6d67b0]
mov dword [ebp - 8], edx
mov edx, dword [0x6d67b4]
mov dword [ebp - 0xc], edx
cmp ecx, 1
jb 0x453913
cmp ecx, 0x5fff
ja 0x453913
mov ecx, dword [eax + 0x340]
mov edx, dword [0x6d6244]
mov esi, dword [0x6d6248]
lea ecx, [ecx + edx + 0x30]
mov dword [0x6d624c], ecx
mov edx, dword [eax + 0x358]
test cl, 0x1f
lea edx, [edx + esi + 0x14]
mov dword [0x6d61e4], edx
je 0x453913
test dl, 0xf
je 0x453913
mov eax, dword [0xa4f198]
push 0x6d61e4
push 0x6d624c
lea ecx, [ecx + eax - 0x10]
mov eax, dword [0xa4f19c]
mov dword [0x6d624c], ecx
lea ecx, [edx + eax - 4]
mov dword [0x6d61e4], ecx
call fcn.0045f710
mov edx, dword [0x6d624c]
mov esi, dword [0xa4f188]
add esp, 8
cmp edx, esi
jl 0x453910
lea eax, [esi + 0x9c]
cmp edx, eax
jge 0x453910
mov ecx, dword [0x6d61e4]
mov eax, dword [0xa4f18c]
cmp ecx, eax
jl 0x453910
lea ebx, [eax + 0x184]
cmp ecx, ebx
jge 0x453910
sub ecx, eax
mov ebx, dword [0xa4f17c]
lea eax, [ecx + ecx*4]
shl eax, 3
sub eax, ecx
shl eax, 2
sub eax, esi
add eax, edx
sub edx, esi
cmp edx, 1
lea eax, [eax + eax*2]
lea eax, [ebx + eax*8]
mov dword [0x6d71d0], eax
jl 0x4538a0
cmp ecx, 1
jl 0x4538a0
test dword [eax], 0xc0000000
je 0x453910
mov ecx, dword [ebp - 4]
push 0x6d61e4
push 0x6d624c
push ecx
call fcn.004590a0
mov eax, dword [0x6d61e4]
mov esi, dword [0xa4f18c]
sub eax, esi
mov esi, dword [0xa4f188]
mov edx, dword [0x6d624c]
mov ebx, dword [0xa4f17c]
lea ecx, [eax + eax*4]
add esp, 0xc
shl ecx, 3
sub ecx, eax
shl ecx, 2
sub ecx, esi
add ecx, edx
sub edx, esi
cmp edx, 1
lea ecx, [ecx + ecx*2]
lea ecx, [ebx + ecx*8]
mov dword [0x6d71d0], ecx
jl 0x454b87
cmp eax, 1
jl 0x454b87
test dword [ecx], 0xc0000000
jne 0x454b87
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x340]
mov ebx, dword [0x6d6244]
mov ecx, dword [0xa4f198]
mov edi, dword [0x6d6248]
add edx, ebx
push 0x6d61e4
push 0x6d624c
lea edx, [edx + ecx + 0x20]
mov ecx, dword [0xa4f19c]
mov dword [0x6d624c], edx
mov eax, dword [eax + 0x358]
add eax, edi
lea edx, [eax + ecx + 0x10]
mov dword [0x6d61e4], edx
call fcn.0045f710
mov edx, dword [ebp - 4]
mov ecx, dword [0x6d624c]
add esp, 8
cmp ecx, dword [edx + 0x3f8]
jne 0x453a46
mov eax, dword [0x6d61e4]
mov esi, dword [edx + 0x3fc]
cmp eax, esi
jne 0x453a46
cmp ecx, dword [edx + 8]
je 0x453a46
cmp eax, dword [edx + 0xc]
je 0x453a46
mov edi, dword [0xa4f188]
cmp ecx, edi
jl 0x453a46
lea esi, [edi + 0x9c]
cmp ecx, esi
jge 0x453a46
mov esi, dword [0xa4f18c]
cmp eax, esi
jl 0x453a46
lea ebx, [esi + 0x184]
cmp eax, ebx
jge 0x453a46
sub eax, esi
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, edi
add eax, ecx
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea edx, [ecx + eax*8]
mov dword [0x6d71d0], edx
call fcn.00474020
mov ecx, dword [0x6d624c]
mov esi, dword [0xa4f188]
neg eax
sbb eax, eax
sub ecx, esi
and eax, 0x800000
add eax, 0xc0000000
cmp ecx, 1
jl 0x454bb5
mov edx, dword [0x6d61e4]
mov esi, dword [0xa4f18c]
sub edx, esi
cmp edx, 1
jl 0x454bb5
mov ecx, dword [0x6d71d0]
test dword [ecx], eax
jne 0x454bb5
mov edx, dword [ebp - 4]
push edx
call fcn.00455e10
mov eax, dword [ebp - 4]
mov edx, dword [0x6d67a8]
add esp, 4
mov ecx, dword [eax]
cmp ecx, edx
mov ecx, dword [0x6d6244]
jne 0x453a86
mov ebx, dword [0x6d71bc]
mov esi, dword [0x6d6248]
mov edi, dword [0x6d71c0]
add ebx, ecx
add edi, esi
mov dword [0x6d71bc], ebx
mov dword [0x6d71c0], edi
mov esi, dword [eax]
cmp esi, edx
mov edx, dword [eax + 8]
mov dword [0x6d624c], edx
jne 0x453afa
mov ecx, dword [eax + 0xc]
mov ebx, dword [0x6d71bc]
mov dword [0x6d61e4], ecx
mov edx, dword [eax + 0x340]
add edx, ebx
mov dword [eax + 0x400], edx
mov eax, dword [ebp - 4]
mov edi, dword [0x6d71c0]
mov ecx, dword [eax + 0x358]
add ecx, edi
mov dword [eax + 0x404], ecx
mov eax, dword [ebp - 4]
mov esi, dword [0x6d71bc]
mov ecx, dword [0xa4f198]
mov edx, dword [eax + 0x340]
add edx, esi
lea edx, [edx + ecx + 0x20]
mov dword [eax + 8], edx
mov eax, dword [ebp - 4]
mov edx, dword [0x6d71c0]
mov ecx, dword [eax + 0x358]
add ecx, edx
jmp 0x453b65
mov edx, dword [eax + 0xc]
mov dword [0x6d61e4], edx
mov esi, dword [eax + 0x340]
add esi, ecx
mov dword [eax + 0x340], esi
mov eax, dword [ebp - 4]
mov ecx, dword [0x6d6248]
mov edx, dword [eax + 0x358]
add edx, ecx
mov dword [eax + 0x358], edx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x340]
mov dword [eax + 0x400], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x358]
mov dword [eax + 0x404], ecx
mov eax, dword [ebp - 4]
mov ecx, dword [0xa4f198]
mov edx, dword [eax + 0x340]
lea edx, [edx + ecx + 0x20]
mov dword [eax + 8], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x358]
mov edx, dword [0xa4f19c]
lea ecx, [ecx + edx + 0x10]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 4]
lea edx, [eax + 0xc]
add eax, 8
push edx
push eax
call fcn.0045f710
mov eax, dword [ebp - 4]
mov edx, dword [0x6d67a8]
add esp, 8
mov ecx, dword [eax]
cmp ecx, edx
jne 0x453bae
mov edx, dword [ebp - 8]
mov ecx, dword [eax + 8]
cmp edx, ecx
jne 0x453ba8
mov ecx, dword [ebp - 0xc]
mov edx, dword [eax + 0xc]
cmp ecx, edx
je 0x453bae
inc dword [0x6d7194]
push eax
call fcn.00455af0
mov eax, dword [ebp - 4]
add esp, 4
mov edi, dword [eax + 0x384]
inc edi
mov dword [eax + 0x384], edi
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x254]
movsx ecx, byte [edx + 0x645498]
mov edx, dword [eax + 0x384]
dec ecx
cmp edx, ecx
jl 0x4542a8
mov dword [eax + 0x388], 0
jmp 0x4542a5
mov edx, dword [ebp - 4]
xor esi, esi
push edx
mov dword [ebp - 0xc], esi
call fcn.00455e10
mov eax, dword [ebp - 4]
add esp, 4
cmp dword [eax + 0x38c], esi
jne 0x453d34
mov ecx, dword [eax + 0x3a8]
mov edi, dword [0x6d6790]
mov edx, dword [0x6d5ba8]
sub edi, ecx
cmp edi, edx
jb 0x453c50
add ecx, edx
mov dword [eax + 0x3a8], ecx
mov eax, dword [ebp - 4]
mov edi, dword [0x6d6790]
mov edx, dword [0x6d5ba8]
mov ecx, dword [eax + 0x3a8]
sub edi, ecx
cmp edi, edx
jae 0x453c2d
mov byte [eax + 0x4a0], 0
mov eax, dword [ebp - 4]
xor ecx, ecx
mov edi, 1
mov cx, word [eax + 0x80e]
mov dword [ebp - 0xc], edi
cmp ecx, esi
jle 0x453cd4
cmp ecx, 3
jg 0x453cd4
mov ecx, dword [eax + 0x480]
mov dword [eax + 0x340], ecx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x340]
mov dword [eax + 0x498], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x484]
mov dword [eax + 0x358], ecx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x358]
mov dword [eax + 0x49c], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x488]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x48c]
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 4]
mov word [eax + 0x80e], di
mov eax, dword [ebp - 4]
jmp 0x453d39
mov ecx, dword [eax + 0x340]
mov dword [eax + 0x480], ecx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x480]
mov dword [eax + 0x498], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x358]
mov dword [eax + 0x484], ecx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x484]
mov dword [eax + 0x49c], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov dword [eax + 0x488], ecx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
mov dword [eax + 0x48c], edx
mov eax, dword [ebp - 4]
mov word [eax + 0x80e], di
mov eax, dword [ebp - 4]
jmp 0x453d39
mov edi, 1
mov cl, byte [eax + 0x7f4]
test cl, cl
je 0x453d69
mov ecx, dword [eax + 0x7f8]
push ecx
push eax
call fcn.0040eef0
mov edx, dword [ebp - 4]
add esp, 8
mov dword [edx + 0x7f0], esi
mov eax, dword [ebp - 4]
mov byte [eax + 0x7f4], 0
mov eax, dword [ebp - 4]
cmp dword [eax + 0x79c], esi
jle 0x453d81
cmp dword [eax + 0x7a0], esi
jne 0x453dd8
inc dword [eax + 0x7f0]
jmp 0x453dd5
mov dword [ebp - 0xc], edi
mov edi, dword [eax + 0x7f0]
inc edi
mov dword [eax + 0x7f0], edi
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x7ec]
add esi, 0x54
mov dword [eax + 0x7ec], esi
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x808]
mov edx, dword [eax + 0x7ec]
cmp edx, ecx
jne 0x453dc2
add ecx, 0xffffffac
mov dword [eax + 0x7ec], ecx
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x7ec]
lea edi, [eax + 0x798]
mov ecx, 0x15
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x79c]
dec esi
mov dword [eax + 0x79c], esi
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x788]
movsx eax, word [edx + 6]
cmp dword [ecx + 0x7f0], eax
jl 0x453e32
mov byte [ecx + 0x7f4], 1
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x788]
add esi, 8
mov dword [eax + 0x788], esi
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x804]
mov edx, dword [ecx + 0x788]
cmp eax, edx
jne 0x453e32
add eax, 0xfffffff8
mov dword [ecx + 0x788], eax
mov ecx, dword [ebp - 4]
call fcn.0044d670
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x453e4a
mov ecx, dword [ebp - 4]
push ecx
call fcn.0041b140
add esp, 4
mov ecx, dword [ebp - 4]
mov ebx, dword [ecx + 0x7f0]
mov eax, dword [ecx + 0x474]
imul eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov edx, dword [ecx + 0x78c]
mov esi, eax
mov eax, dword [ecx + 0x480]
sar esi, 0x10
add esi, edx
add esi, eax
mov eax, dword [ecx + 0x47c]
imul eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov edx, dword [ecx + 0x794]
sar eax, 0x10
add eax, edx
cdq
sub eax, edx
mov edi, eax
mov eax, dword [ecx + 0x478]
imul eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov edx, dword [ecx + 0x790]
sar eax, 0x10
add eax, edx
cdq
sub eax, edx
mov edx, dword [ecx + 0x484]
sar edi, 1
sar eax, 1
mov ecx, dword [0xa4f19c]
add edi, eax
add edi, edx
mov edx, dword [0xa4f198]
lea eax, [edx + esi + 0x20]
lea edx, [ecx + edi + 0x10]
mov dword [ebp - 0x9c], eax
lea eax, [ebp - 0x10]
lea ecx, [ebp - 0x9c]
push eax
push ecx
mov dword [ebp - 0x10], edx
call fcn.0045f710
mov ecx, dword [ebp - 0x9c]
mov eax, dword [0xa4f188]
add esp, 8
cmp ecx, eax
jl 0x45427b
add eax, 0x9c
cmp ecx, eax
jge 0x45427b
mov edx, dword [ebp - 0x10]
mov ebx, dword [0xa4f18c]
cmp edx, ebx
jl 0x45427b
lea eax, [ebx + 0x184]
cmp edx, eax
jge 0x45427b
mov eax, edx
push edx
sub eax, ebx
push ecx
push edi
push esi
lea ebx, [eax + eax*4]
shl ebx, 3
sub ebx, eax
shl ebx, 2
mov eax, ebx
mov ebx, dword [0xa4f188]
sub eax, ebx
mov ebx, dword [0xa4f17c]
add eax, ecx
lea eax, [eax + eax*2]
lea eax, [ebx + eax*8]
mov dword [0x6d71d0], eax
mov ecx, dword [eax]
and ecx, 0xc0000000
push ecx
mov ecx, dword [ebp - 4]
call fcn.0040eff0
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x7a4]
test ecx, ecx
je 0x454100
mov edi, dword [eax + 0x340]
mov ebx, dword [eax + 0x358]
mov edx, dword [eax + 0x390]
lea esi, [eax + 0x430]
mov dword [ebp - 0x170], edx
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x453fba
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 4]
cmp eax, ecx
jne 0x453fc1
mov ecx, esi
call fcn.0045abc0
mov edx, dword [esi + 0xc]
add edx, 0xfffffff4
mov eax, edx
mov dword [esi + 0xc], edx
test eax, eax
je 0x453fde
mov ecx, dword [ebp - 0x170]
mov dword [eax], edi
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov edx, dword [esi + 0x2c]
inc edx
mov dword [esi + 0x2c], edx
mov edx, dword [ebp - 4]
mov dword [edx + 0x42c], 1
mov eax, dword [ebp - 4]
cmp dword [eax + 0x45c], 6
jbe 0x45416a
mov ecx, dword [eax + 0x444]
lea esi, [eax + 0x430]
mov eax, dword [eax + 0x44c]
cmp eax, ecx
jne 0x4540d4
mov eax, dword [esi + 0x20]
lea ecx, [eax - 4]
mov dword [esi + 0x20], ecx
mov edx, dword [eax]
push edx
call fcn.006066eb
mov eax, dword [esi + 0x2c]
add esp, 4
test eax, eax
jne 0x454099
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x20]
cmp eax, ecx
jne 0x45404c
mov eax, dword [eax]
push eax
call fcn.006066eb
add esp, 4
lea ecx, [ebp - 0x118]
call fcn.0045bf50
mov eax, dword [ebp - 0x118]
lea ecx, [esi + 4]
mov edx, dword [ebp - 0x110]
mov ebx, ecx
mov ecx, dword [ebp - 0x114]
mov edi, dword [ebp - 0x10c]
mov dword [ebx], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], edx
mov dword [ebx + 4], ecx
mov dword [esi + 0x20], edi
mov dword [ebx + 8], edx
mov edx, dword [esi + 0x24]
push edx
mov dword [ebx + 0xc], edi
call fcn.006066eb
add esp, 4
jmp 0x4540d4
mov eax, dword [esi + 0x20]
lea ecx, [ebp - 0x138]
push eax
mov eax, dword [eax]
add eax, 0xffc
push eax
call fcn.0045bf60
mov ecx, dword [ebp - 0x138]
mov edx, dword [ebp - 0x134]
mov eax, dword [ebp - 0x130]
mov dword [esi + 0x14], ecx
mov ecx, dword [ebp - 0x12c]
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], ecx
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x4540df
add dword [esi + 0x1c], 0xfffffff4
dec eax
test eax, eax
mov dword [esi + 0x2c], eax
jne 0x4540ee
mov ecx, esi
call fcn.0045ad60
mov eax, dword [ebp - 4]
cmp dword [eax + 0x45c], 6
ja 0x454002
jmp 0x45416a
mov ecx, dword [eax + 0x42c]
test ecx, ecx
je 0x45416a
add eax, 0x430
sub esp, 0x10
mov ecx, esp
sub esp, 0x10
lea edx, [eax + 0x14]
mov esi, dword [eax + 0x14]
mov dword [ecx], esi
mov esi, dword [edx + 4]
mov dword [ecx + 4], esi
mov esi, dword [edx + 8]
mov dword [ecx + 8], esi
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
lea ecx, [eax + 4]
mov edx, esp
mov esi, dword [ecx]
mov dword [edx], esi
mov esi, dword [ecx + 4]
mov dword [edx + 4], esi
mov esi, dword [ecx + 8]
mov dword [edx + 8], esi
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0xc], ecx
lea edx, [ebp - 0x218]
push edx
mov ecx, eax
call fcn.0045a780
mov eax, dword [ebp - 4]
mov dword [eax + 0x42c], 0
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x454234
cmp word [eax + 0x7c2], 0
je 0x45418e
mov ecx, dword [0xd12658]
push eax
call fcn.0059ca20
mov eax, dword [ebp - 4]
mov byte [0x6d6232], 0xf
xor esi, esi
cmp word [esi + eax + 0x7a8], 0
je 0x454228
mov ecx, dword [eax + 0x340]
mov dword [0x6d6220], ecx
mov edx, dword [eax + 0x358]
xor ecx, ecx
mov dword [0x6d6224], edx
mov cx, word [esi + eax + 0x7aa]
mov dword [0x6d6228], ecx
mov dx, word [esi + eax + 0x7ac]
xor ecx, ecx
mov word [0x6d6230], dx
mov cx, word [esi + eax + 0x7a8]
mov edx, dword [0x62d4c8]
lea ecx, [ecx + edx - 1]
mov dword [0x6d6218], ecx
mov ecx, dword [eax]
cmp ecx, 0x6000
jb 0x454216
cmp ecx, 0x7fff
ja 0x454216
mov edx, dword [eax + 0x470]
mov eax, dword [edx]
mov dword [0x6d6234], eax
push 0x6d6218
mov ecx, 0xa26508
call fcn.004973d0
mov eax, dword [ebp - 4]
add esi, 8
cmp esi, 0x18
jl 0x454197
mov ecx, dword [eax + 0x340]
mov edx, dword [0xa4f198]
lea ecx, [ecx + edx + 0x20]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 4]
mov ecx, dword [0xa4f19c]
mov edx, dword [eax + 0x358]
lea edx, [edx + ecx + 0x10]
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 4]
lea ecx, [eax + 0xc]
add eax, 8
push ecx
push eax
call fcn.0045f710
mov edx, dword [ebp - 4]
push edx
call fcn.00455af0
add esp, 0xc
jmp 0x454287
mov eax, dword [ebp - 4]
push eax
call fcn.00455af0
add esp, 4
cmp dword [0x6d5bb8], 0xc
jne 0x4542a5
cmp dword [0x6d6274], 2
jne 0x4542a5
mov ecx, dword [ebp - 4]
push ecx
call fcn.00456080
add esp, 4
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x38c]
inc ecx
mov dword [eax + 0x38c], ecx
mov ecx, dword [ebp - 4]
mov edx, dword [0x6d60cc]
cmp dword [ecx + 0x38c], edx
jb 0x454ae0
mov eax, dword [0x6d5bb8]
cmp eax, 0xc
jne 0x45430f
cmp dword [0x6d6274], 3
je 0x454328
xor edi, edi
mov dword [ecx + 0x38c], edi
mov eax, dword [0x6d5bb8]
cmp eax, 8
je 0x454342
cmp eax, 7
je 0x454342
cmp eax, 0xc
jne 0x454add
cmp dword [0x6d6274], 2
je 0x454c22
jmp 0x454add
cmp eax, 0x11
jl 0x4542dd
cmp eax, 0x19
jg 0x4542dd
cmp eax, 0x14
je 0x4542dd
cmp eax, 0x12
je 0x454334
cmp eax, 0x19
je 0x454334
dec edx
mov dword [ecx + 0x38c], edx
jmp 0x454add
add edx, 0xfffffffb
mov dword [ecx + 0x38c], edx
jmp 0x454add
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x470]
add ecx, 4
mov dword [eax + 0x470], ecx
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x470]
mov eax, dword [ecx + 0x468]
cmp edx, eax
jb 0x45463e
mov dword [ecx + 0x830], edi
mov eax, dword [ebp - 4]
mov dword [0x6d5ba4], edi
push 2
mov dword [eax + 0x494], edi
mov ecx, dword [ebp - 4]
call fcn.0040dbd0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x468]
mov ecx, dword [eax + 0x464]
lea esi, [eax + 0x468]
mov eax, edx
cmp eax, edx
je 0x4543b3
mov edi, dword [eax]
add eax, 4
mov dword [ecx], edi
add ecx, 4
cmp eax, edx
jne 0x4543a5
mov edx, dword [esi]
mov dword [esi], ecx
mov eax, dword [ebp - 4]
mov dword [ebp - 0x18], edx
lea edi, [eax + 0x430]
lea esi, [edi + 0x14]
lea ebx, [edi + 4]
mov ecx, esi
mov edx, dword [ecx]
mov dword [ebp - 0x78], edx
mov eax, dword [ecx + 4]
mov dword [ebp - 0x74], eax
mov edx, dword [ecx + 8]
mov dword [ebp - 0x70], edx
mov eax, dword [ecx + 0xc]
mov ecx, ebx
mov dword [ebp - 0x6c], eax
mov edx, dword [ecx]
mov dword [ebp - 0x58], edx
mov eax, dword [ecx + 4]
mov dword [ebp - 0x54], eax
mov edx, dword [ecx + 8]
mov dword [ebp - 0x50], edx
mov eax, dword [ecx + 0xc]
lea ecx, [ebp - 0x58]
push ecx
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x4c], eax
call fcn.0045b790
mov edx, ebx
mov dword [ebp - 0xc], eax
mov eax, dword [edx]
mov dword [ebp - 0xc8], eax
mov ecx, dword [edx + 4]
mov dword [ebp - 0xc4], ecx
mov eax, dword [edx + 8]
mov dword [ebp - 0xc0], eax
mov ecx, dword [edx + 0xc]
lea edx, [ebp - 0xc8]
mov dword [ebp - 0xbc], ecx
push edx
lea ecx, [ebp - 0x58]
call fcn.0045b790
mov dword [ebp - 8], eax
mov eax, esi
mov ecx, dword [eax]
mov dword [ebp - 0xf8], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0xf4], edx
mov ecx, dword [eax + 8]
mov dword [ebp - 0xf0], ecx
lea ecx, [ebp - 0xf8]
mov edx, dword [eax + 0xc]
lea eax, [ebp - 0x78]
push eax
mov dword [ebp - 0xec], edx
call fcn.0045b790
cmp dword [ebp - 8], eax
jae 0x4544f5
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x74]
sub esp, 0x10
mov ecx, esp
sub esp, 0x10
mov dword [ecx], edx
mov edx, dword [ebp - 0x70]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x6c]
mov dword [ecx + 8], edx
mov edx, dword [ebp - 0x58]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x54]
mov ecx, esp
sub esp, 0x10
mov dword [ecx], edx
mov edx, dword [ebp - 0x50]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x4c]
mov dword [ecx + 8], edx
mov edx, esp
mov dword [ecx + 0xc], eax
mov ecx, ebx
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0xc], ecx
lea edx, [ebp - 0x1b8]
push edx
call fcn.0045cba0
mov esi, dword [ebp - 0xc]
add esp, 0x34
test esi, esi
jbe 0x45456a
mov ecx, edi
call fcn.0045b650
dec esi
jne 0x4544e9
jmp 0x45456a
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
sub esp, 0x10
mov eax, esp
sub esp, 0x10
mov dword [eax], ecx
mov ecx, dword [ebp - 0x50]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x4c]
mov dword [eax + 8], ecx
mov ecx, dword [esi]
mov dword [eax + 0xc], edx
mov edx, dword [esi + 4]
mov eax, esp
sub esp, 0x10
mov dword [eax], ecx
mov ecx, dword [esi + 8]
mov dword [eax + 4], edx
mov edx, dword [esi + 0xc]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x78]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x74]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebp - 0x70]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x6c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [ebp - 0x1f8]
push eax
call fcn.0045cc40
mov eax, dword [ebp - 0xc]
add esp, 0x34
test eax, eax
jbe 0x45456a
mov esi, eax
mov ecx, edi
call fcn.0045a570
dec esi
jne 0x454560
mov eax, dword [ebp - 8]
xor edi, edi
cmp eax, edi
je 0x4545a9
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ebp - 0x108], ecx
mov ecx, dword [ebx + 8]
push eax
mov dword [ebp - 0x104], edx
mov edx, dword [ebx + 0xc]
lea eax, [ebp - 0x1d8]
mov dword [ebp - 0x100], ecx
push eax
lea ecx, [ebp - 0x108]
mov dword [ebp - 0xfc], edx
call fcn.0045b6e0
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x464]
mov dword [eax + 0x470], ecx
mov edx, dword [ebp - 4]
mov dword [edx + 0x378], edi
mov ecx, dword [ebp - 4]
mov dword [0x6d5bb8], edi
mov eax, dword [ecx + 0x254]
mov edx, dword [ecx + 0x378]
push eax
push edx
call fcn.00476c30
mov eax, dword [ebp - 4]
mov word [eax + 0x80e], 2
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x388], edi
mov ecx, dword [ebp - 4]
mov eax, dword [0x6d67a8]
mov edx, dword [ecx]
cmp edx, eax
jne 0x45462c
mov ecx, 0x68d9e0
mov dword [0x6454a8], 1
call fcn.00403600
mov ecx, dword [ebp - 4]
call fcn.00477a90
mov ecx, dword [ebp - 4]
test eax, eax
jne 0x455369
jmp 0x454ae0
call fcn.00477a90
test eax, eax
jne 0x454eff
jmp 0x454add
mov eax, dword [0x6d5bb8]
mov dword [0x6454ac], 1
cmp eax, 8
jne 0x454772
mov ebx, dword [0x6d620c]
lea esi, [ecx + 0x830]
push esi
mov ecx, 0x6d6208
call fcn.00409380
mov ecx, dword [0x6d620c]
mov dword [ebp - 8], eax
cmp eax, ecx
je 0x454688
mov edx, dword [esi]
mov esi, dword [eax + 0xc]
cmp edx, esi
jb 0x454688
lea eax, [ebp - 8]
jmp 0x45468e
mov dword [ebp - 0x20], ecx
lea eax, [ebp - 0x20]
mov ecx, dword [eax]
mov eax, dword [ebp - 4]
cmp ecx, ebx
je 0x454758
mov ecx, dword [eax + 0x830]
lea edx, [ebp - 0xb0]
lea eax, [ebp - 0x180]
mov dword [ebp - 0xb0], ecx
push edx
push eax
mov ecx, 0x6d6208
mov dword [ebp - 0xac], edi
call fcn.00408bd0
mov ecx, eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
mov edx, dword [ecx + 4]
mov dword [0x6d6278], eax
mov dword [ebp - 0x18], edx
mov ecx, dword [eax + 0x250]
cmp ecx, 0xc
jne 0x4546f0
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x464]
mov ecx, dword [ecx]
push ecx
jmp 0x454761
cmp ecx, 8
je 0x454709
cmp ecx, 7
je 0x454709
mov edx, dword [eax + 0x358]
mov eax, dword [eax + 0x340]
push edx
jmp 0x454716
mov edx, dword [eax + 0x484]
mov eax, dword [eax + 0x480]
push edx
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x484]
mov edx, dword [eax + 0x480]
push ecx
push edx
call fcn.004891d0
mov ecx, dword [ebp - 4]
add esp, 0x10
mov dword [ecx + 0x7f8], eax
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x7f8]
push eax
call fcn.0040ea10
mov ecx, dword [ebp - 4]
add esp, 4
shl eax, 1
mov dword [ecx + 0x254], eax
jmp 0x45476f
mov ecx, dword [eax + 0x464]
mov edx, dword [ecx]
push edx
push eax
call fcn.004031c0
add esp, 8
mov dword [0x6454ac], eax
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x470]
push 1
mov edx, dword [eax]
push edx
call fcn.0040db40
cmp dword [0x6454ac], edi
je 0x4547c1
mov ecx, dword [ebp - 4]
call fcn.00476d00
test eax, eax
je 0x4547c1
mov ecx, dword [ebp - 4]
push 1
push 1
call fcn.00451ca0
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x254]
push eax
push 8
call fcn.00476c30
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x378], edi
jmp 0x454add
mov edx, dword [ebp - 4]
mov dword [edx + 0x388], edi
mov ecx, dword [ebp - 4]
mov edx, dword [0x6d67a8]
mov eax, dword [ecx]
cmp eax, edx
jne 0x4547e3
mov dword [0x6454a8], 1
mov edx, dword [ecx + 0x254]
push edx
push edi
call fcn.00476c30
mov eax, dword [ebp - 4]
push 0x3ea
mov dword [eax + 0x378], edi
mov ecx, dword [ebp - 4]
mov dword [0x6d5bb8], edi
call fcn.0040dbd0
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x468]
mov ecx, dword [eax + 0x464]
lea edx, [eax + 0x468]
mov eax, esi
cmp eax, esi
je 0x454835
mov edi, dword [eax]
add eax, 4
mov dword [ecx], edi
add ecx, 4
cmp eax, esi
jne 0x454827
mov eax, dword [edx]
mov dword [edx], ecx
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x18], eax
lea eax, [ecx + 0x430]
mov dword [ebp - 8], eax
lea ebx, [eax + 0x14]
lea edx, [eax + 4]
mov eax, ebx
mov dword [ebp - 0xc], edx
mov esi, dword [edx]
mov ecx, dword [eax]
mov dword [ebp - 0x98], esi
mov esi, dword [edx + 4]
mov dword [ebp - 0x48], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x94], esi
mov edi, dword [edx + 8]
mov dword [ebp - 0x44], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x90], edi
mov edx, dword [edx + 0xc]
mov dword [ebp - 0x40], ecx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x8c], edx
cmp eax, edx
mov dword [ebp - 0x3c], eax
jne 0x4548a7
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
mov esi, edx
jmp 0x4548ef
sub eax, edx
sub esi, edi
sar eax, 2
mov edx, eax
shl eax, 4
add eax, edx
lea eax, [eax + eax*4]
lea edx, [edx + eax*4]
mov eax, 0x2aaaaaab
mov dword [ebp - 0x14], edx
imul esi
mov eax, dword [ebp - 0x14]
sar edx, 1
mov esi, edx
add edx, eax
shr esi, 0x1f
add esi, edx
mov edx, dword [ebp - 0x48]
sub ecx, edx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, esi
lea esi, [ecx + edx - 0x155]
mov edi, dword [ebp - 0xc]
mov edx, edi
mov eax, dword [edx]
mov dword [ebp - 0x128], eax
mov ecx, dword [edx + 4]
mov dword [ebp - 0x124], ecx
mov eax, dword [edx + 8]
mov dword [ebp - 0x120], eax
mov ecx, dword [edx + 0xc]
lea edx, [ebp - 0x128]
mov dword [ebp - 0x11c], ecx
push edx
lea ecx, [ebp - 0x98]
call fcn.0045b790
mov dword [ebp - 0x14], eax
mov eax, ebx
mov ecx, dword [eax]
mov dword [ebp - 0x168], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x164], edx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x160], ecx
lea ecx, [ebp - 0x168]
mov edx, dword [eax + 0xc]
lea eax, [ebp - 0x48]
push eax
mov dword [ebp - 0x15c], edx
call fcn.0045b790
cmp dword [ebp - 0x14], eax
jae 0x4549f0
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
sub esp, 0x10
mov ecx, esp
sub esp, 0x10
mov dword [ecx], edx
mov edx, dword [ebp - 0x40]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x3c]
mov dword [ecx + 8], edx
mov edx, dword [ebp - 0x98]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x94]
mov ecx, esp
sub esp, 0x10
mov dword [ecx], edx
mov edx, dword [ebp - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x8c]
mov dword [ecx + 8], edx
mov edx, esp
mov dword [ecx + 0xc], eax
mov ecx, edi
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0xc], ecx
lea edx, [ebp - 0x198]
push edx
call fcn.0045cba0
add esp, 0x34
test esi, esi
jbe 0x454a6f
mov ebx, dword [ebp - 8]
mov ecx, ebx
call fcn.0045b650
dec esi
jne 0x4549e4
jmp 0x454a6f
mov ecx, dword [ebp - 0x98]
mov edx, dword [ebp - 0x94]
sub esp, 0x10
mov eax, esp
sub esp, 0x10
mov dword [eax], ecx
mov ecx, dword [ebp - 0x90]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x8c]
mov dword [eax + 8], ecx
mov ecx, dword [ebx]
mov dword [eax + 0xc], edx
mov edx, dword [ebx + 4]
mov eax, esp
sub esp, 0x10
mov dword [eax], ecx
mov ecx, dword [ebx + 8]
mov dword [eax + 4], edx
mov edx, dword [ebx + 0xc]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x48]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x44]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebp - 0x40]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [ebp - 0x1a8]
push eax
call fcn.0045cc40
add esp, 0x34
test esi, esi
jbe 0x454a6f
mov ebx, dword [ebp - 8]
mov ecx, ebx
call fcn.0045a570
dec esi
jne 0x454a65
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x454aac
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [ebp - 0x158], ecx
mov ecx, dword [edi + 8]
push eax
mov dword [ebp - 0x154], edx
mov edx, dword [edi + 0xc]
lea eax, [ebp - 0x1c8]
mov dword [ebp - 0x150], ecx
push eax
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x14c], edx
call fcn.0045b6e0
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x464]
mov dword [eax + 0x470], ecx
mov ecx, dword [ebp - 4]
mov eax, dword [0x6d67a8]
mov edx, dword [ecx]
cmp edx, eax
jne 0x454ae0
mov ecx, 0x68d9e0
mov dword [0x6454a8], 1
call fcn.00403600
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x3a8]
mov edx, dword [0x6d6790]
mov esi, dword [0x6d5ba8]
sub edx, eax
cmp edx, esi
mov dword [ebp - 0x14], 1
jae 0x4530d9
jmp 0x454f48
mov eax, dword [ebp - 4]
push 0xffff
push eax
mov dword [0x6d6244], edi
mov dword [0x6d624c], edi
mov dword [0x6d6248], edi
mov dword [0x6d61e4], edi
call fcn.00459170
add esp, 8
jmp 0x454f45
mov eax, dword [ebp - 4]
mov dword [0x6d6244], edi
mov dword [0x6d624c], edi
mov dword [0x6d6248], edi
mov dword [0x6d61e4], edi
mov ecx, dword [eax + 0x400]
mov dword [eax + 0x408], ecx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x404]
mov dword [eax + 0x40c], edx
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x254]
push eax
push edi
call fcn.00476c30
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x388], edi
jmp 0x454c06
mov edx, dword [ebp - 4]
push 0xffff
push edx
mov dword [0x6d6244], edi
mov dword [0x6d624c], edi
mov dword [0x6d6248], edi
mov dword [0x6d61e4], edi
call fcn.00459170
add esp, 8
jmp 0x454f45
mov eax, dword [ebp - 4]
xor esi, esi
mov dword [0x6d6244], esi
mov dword [0x6d624c], esi
mov dword [0x6d6248], esi
mov dword [0x6d61e4], esi
mov ecx, dword [eax + 0x400]
mov dword [eax + 0x408], ecx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x404]
mov dword [eax + 0x40c], edx
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x254]
push eax
push esi
call fcn.00476c30
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x388], esi
mov ecx, dword [ebp - 4]
push 1
push 1
call fcn.00451ca0
push str._nStop_The_Life__Because_The_End_Is_Obstacle
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x454f45
mov edx, dword [ebp - 4]
push 3
mov dword [edx + 0x494], edi
mov ecx, dword [ebp - 4]
call fcn.0040dbd0
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x468]
mov ecx, dword [eax + 0x464]
lea edx, [eax + 0x468]
mov eax, esi
cmp eax, esi
je 0x454c5e
mov edi, dword [eax]
add eax, 4
mov dword [ecx], edi
add ecx, 4
cmp eax, esi
jne 0x454c50
mov eax, dword [edx]
mov dword [edx], ecx
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x18], eax
lea eax, [ecx + 0x430]
mov dword [ebp - 8], eax
lea ebx, [eax + 0x14]
lea edx, [eax + 4]
mov eax, ebx
mov dword [ebp - 0x18], edx
mov esi, dword [edx]
mov ecx, dword [eax]
mov dword [ebp - 0x88], esi
mov esi, dword [edx + 4]
mov dword [ebp - 0x68], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x84], esi
mov edi, dword [edx + 8]
mov dword [ebp - 0x64], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x80], edi
mov edx, dword [edx + 0xc]
mov dword [ebp - 0x60], ecx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x7c], edx
cmp eax, edx
mov dword [ebp - 0x5c], eax
jne 0x454cca
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
mov esi, edx
jmp 0x454d12
sub eax, edx
sub esi, edi
sar eax, 2
mov edx, eax
shl eax, 4
add eax, edx
lea eax, [eax + eax*4]
lea edx, [edx + eax*4]
mov eax, 0x2aaaaaab
mov dword [ebp - 0xc], edx
imul esi
mov eax, dword [ebp - 0xc]
sar edx, 1
mov esi, edx
add edx, eax
shr esi, 0x1f
add esi, edx
mov edx, dword [ebp - 0x68]
sub ecx, edx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, esi
lea esi, [ecx + edx - 0x155]
mov edi, dword [ebp - 0x18]
mov edx, edi
mov eax, dword [edx]
mov dword [ebp - 0xd8], eax
mov ecx, dword [edx + 4]
mov dword [ebp - 0xd4], ecx
mov eax, dword [edx + 8]
mov dword [ebp - 0xd0], eax
mov ecx, dword [edx + 0xc]
lea edx, [ebp - 0xd8]
mov dword [ebp - 0xcc], ecx
push edx
lea ecx, [ebp - 0x88]
call fcn.0045b790
mov dword [ebp - 0xc], eax
mov eax, ebx
mov ecx, dword [eax]
mov dword [ebp - 0xe8], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0xe4], edx
mov ecx, dword [eax + 8]
mov dword [ebp - 0xe0], ecx
lea ecx, [ebp - 0xe8]
mov edx, dword [eax + 0xc]
lea eax, [ebp - 0x68]
push eax
mov dword [ebp - 0xdc], edx
call fcn.0045b790
cmp dword [ebp - 0xc], eax
jae 0x454e0d
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x64]
sub esp, 0x10
mov ecx, esp
sub esp, 0x10
mov dword [ecx], edx
mov edx, dword [ebp - 0x60]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x5c]
mov dword [ecx + 8], edx
mov edx, dword [ebp - 0x88]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x84]
mov ecx, esp
sub esp, 0x10
mov dword [ecx], edx
mov edx, dword [ebp - 0x80]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x7c]
mov dword [ecx + 8], edx
mov edx, esp
mov dword [ecx + 0xc], eax
mov ecx, edi
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0xc], ecx
lea edx, [ebp - 0x1e8]
push edx
call fcn.0045cba0
add esp, 0x34
test esi, esi
jbe 0x454e86
mov ebx, dword [ebp - 8]
mov ecx, ebx
call fcn.0045b650
dec esi
jne 0x454e01
jmp 0x454e86
mov ecx, dword [ebp - 0x88]
mov edx, dword [ebp - 0x84]
sub esp, 0x10
mov eax, esp
sub esp, 0x10
mov dword [eax], ecx
mov ecx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], ecx
mov ecx, dword [ebx]
mov dword [eax + 0xc], edx
mov edx, dword [ebx + 4]
mov eax, esp
sub esp, 0x10
mov dword [eax], ecx
mov ecx, dword [ebx + 8]
mov dword [eax + 4], edx
mov edx, dword [ebx + 0xc]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x68]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x64]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebp - 0x60]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x5c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [ebp - 0x208]
push eax
call fcn.0045cc40
add esp, 0x34
test esi, esi
jbe 0x454e86
mov ebx, dword [ebp - 8]
mov ecx, ebx
call fcn.0045a570
dec esi
jne 0x454e7c
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x454ec3
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [ebp - 0x148], ecx
mov ecx, dword [edi + 8]
push eax
mov dword [ebp - 0x144], edx
mov edx, dword [edi + 0xc]
lea eax, [ebp - 0x228]
mov dword [ebp - 0x140], ecx
push eax
lea ecx, [ebp - 0x148]
mov dword [ebp - 0x13c], edx
call fcn.0045b6e0
mov esi, dword [0x6d60d4]
mov ebx, dword [ebp - 4]
push 0xc
mov edi, dword [esi + 4]
call fcn.00613321
add esp, 4
mov ecx, esi
test esi, esi
jne 0x454ee1
mov ecx, eax
test edi, edi
mov dword [eax], ecx
jne 0x454ee9
mov edi, eax
mov dword [eax + 4], edi
mov dword [esi + 4], eax
mov ecx, dword [eax + 4]
mov dword [ecx], eax
add eax, 8
test eax, eax
je 0x454f3f
mov dword [eax], ebx
jmp 0x454f3f
mov esi, dword [0x6d60d4]
mov edx, dword [ebp - 4]
push 0xc
mov dword [ebp - 0x18], edx
mov ebx, dword [esi + 4]
call fcn.00613321
add esp, 4
cmp esi, edi
mov ecx, esi
jne 0x454f20
mov ecx, eax
cmp ebx, edi
mov dword [eax], ecx
jne 0x454f28
mov ebx, eax
mov dword [eax + 4], ebx
mov dword [esi + 4], eax
mov ecx, dword [eax + 4]
mov dword [ecx], eax
add eax, 8
cmp eax, edi
je 0x454f3f
mov edx, dword [ebp - 0x18]
mov dword [eax], edx
inc dword [0x6d60d8]
mov ecx, dword [ebp - 4]
mov edi, dword [0x6d5bb8]
xor ebx, ebx
mov eax, dword [ecx]
mov edx, dword [0x6d67a8]
cmp eax, edx
jne 0x4550cf
mov esi, dword [0x6d71bc]
mov dword [0x6d6248], ebx
cmp esi, ebx
mov dword [0x6d6244], ebx
je 0x454fe2
xor eax, eax
cmp esi, ebx
setl al
dec eax
and eax, 2
dec eax
add eax, esi
cdq
sub eax, edx
sar eax, 1
sub esi, eax
mov dword [0x6d6244], eax
mov dword [0x6d71bc], esi
mov esi, dword [0xa4f1a0]
add esi, eax
mov dword [0xa4f1a0], esi
mov edx, dword [ecx + 0x340]
add edx, eax
mov dword [ecx + 0x340], edx
mov eax, dword [0x6d6244]
cmp eax, ebx
jle 0x454fc5
neg eax
push eax
call fcn.0044e580
jmp 0x454fcf
jge 0x454fd2
neg eax
push eax
call fcn.0044e4f0
add esp, 4
mov ecx, dword [ebp - 4]
mov edi, dword [0x6d5bb8]
mov dword [ebp - 0x14], 1
mov esi, dword [0x6d71c0]
cmp esi, ebx
je 0x4550cf
xor eax, eax
cmp esi, ebx
setl al
dec eax
and eax, 2
dec eax
add eax, esi
cdq
sub eax, edx
sar eax, 1
sub esi, eax
mov dword [0x6d6248], eax
mov dword [0x6d71c0], esi
mov esi, dword [0xa4f1a4]
add esi, eax
mov dword [0xa4f1a4], esi
mov edx, dword [ecx + 0x358]
add edx, eax
mov dword [ecx + 0x358], edx
mov eax, dword [0x6d6248]
cmp eax, ebx
jle 0x4550c0
neg eax
push eax
call fcn.0044e3c0
add esp, 4
mov ecx, dword [ebp - 4]
mov edi, dword [0x6d5bb8]
cmp edi, 8
je case.default.0x455094
cmp edi, 7
je case.default.0x455094
cmp edi, 0xc
jne 0x455071
cmp dword [0x6d6274], 2
je case.default.0x455094
mov eax, dword [ecx]
cmp eax, 1
jb 0x455157
cmp eax, 0x3fff
ja 0x455157
mov eax, dword [ecx + 0x58]
dec eax
cmp eax, 4
ja case.default.0x455094
jmp dword [eax*4 + 0x45577c]
mov edx, dword [ecx + 0x254]
lea eax, [edi + edi*2]
shl eax, 3
movsx edx, byte [edx + 0x645478]
imul edx, dword [eax + 0x6444c8]
mov esi, dword [eax + 0x6444c4]
jmp 0x455201
jge 0x455044
neg eax
push eax
call fcn.0044e460
jmp 0x455041
cmp dword [ebp - 0x14], ebx
je 0x45525d
jmp 0x45504d
mov edx, dword [ecx + 0x254]
lea eax, [edi + edi*2]
shl eax, 3
movsx edx, byte [edx + 0x645478]
imul edx, dword [eax + 0x6447c8]
mov esi, dword [eax + 0x6447c4]
jmp 0x455201
mov edx, dword [ecx + 0x254]
lea eax, [edi + edi*2]
shl eax, 3
movsx edx, byte [edx + 0x645478]
imul edx, dword [eax + 0x644ac8]
mov esi, dword [eax + 0x644ac4]
jmp 0x455201
mov edx, dword [ecx + 0x254]
lea eax, [edi + edi*2]
shl eax, 3
movsx edx, byte [edx + 0x645478]
imul edx, dword [eax + 0x644dc8]
mov esi, dword [eax + 0x644dc4]
jmp 0x455201
mov dword [ecx + 0x390], ebx
jmp 0x455211
cmp eax, 0x4000
jb 0x455165
cmp eax, 0x5fff
jbe 0x455173
cmp eax, 0x14000
jb 0x4551b3
cmp eax, 0x17fff
ja 0x4551b3
lea eax, [edi + edi*2]
shl eax, 3
cmp byte [eax + 0x6450c0], 8
jne 0x45519e
mov edx, dword [ecx + 0x254]
mov esi, dword [eax + 0x6450c4]
movsx edx, byte [edx + 0x645468]
imul edx, dword [eax + 0x6450c8]
jmp 0x455201
mov edx, dword [eax + 0x6450c8]
mov esi, dword [eax + 0x6450c4]
imul edx, dword [ecx + 0x254]
jmp 0x455201
cmp eax, 0x6000
jb case.default.0x455094
cmp eax, 0x7fff
ja case.default.0x455094
cmp dword [0x6d5ba4], ebx
je case.default.0x455094
lea eax, [edi + edi*2]
shl eax, 3
cmp byte [eax + 0x644190], 8
jne 0x4551ee
mov edx, dword [ecx + 0x254]
movsx edx, byte [edx + 0x645468]
imul edx, dword [eax + 0x644198]
jmp 0x4551fb
mov edx, dword [eax + 0x644198]
imul edx, dword [ecx + 0x254]
mov esi, dword [eax + 0x644194]
mov eax, dword [ecx + 0x38c]
add edx, esi
add edx, eax
mov dword [ecx + 0x390], edx
mov ecx, dword [ebp - 4]
mov eax, dword [ecx]
cmp eax, 1
jb 0x45523d
cmp eax, 0x7fff
ja 0x45523d
cmp dword [ecx + 0x274], ebx
je 0x45523d
mov dword [0x647e38], 1
mov dword [ecx + 0x274], ebx
mov ecx, dword [ebp - 4]
call fcn.0040df50
jmp 0x45525d
mov ecx, dword [0x6d6b50]
mov dword [eax + 0x3a8], ecx
mov edx, dword [ebp - 4]
mov dword [edx + 0x270], 0
lea ecx, [ebp - 0x24]
call fcn.0044ea10
mov eax, dword [0x6d620c]
mov ecx, dword [ebp - 0x24]
cmp ecx, eax
jne 0x452ae1
mov eax, dword [0x6d60d8]
test eax, eax
je 0x45552f
mov edi, dword [0x6d60d4]
mov ebx, dword [edi]
cmp ebx, edi
je 0x4554fc
mov ecx, dword [ebx + 8]
test ecx, ecx
mov dword [ebp - 4], ecx
je 0x4554ec
push 0
push 2
call fcn.0059d890
lea edx, [ebp - 4]
mov ecx, 0xd12338
push edx
call fcn.0045c9e0
mov edi, eax
lea eax, [ebp - 4]
push eax
mov ecx, 0xd12338
call fcn.0045c880
mov esi, eax
cmp esi, edi
mov dword [ebp - 0x10], esi
je 0x4552dd
lea ecx, [ebp - 0x10]
call fcn.0045caf0
cmp dword [ebp - 0x10], edi
jne 0x4552d0
push edi
lea ecx, [ebp - 0x28]
push esi
push ecx
mov ecx, 0xd12338
call fcn.0045ba30
mov edx, dword [ebp - 4]
push edx
call fcn.004568f0
mov eax, dword [ebp - 4]
push eax
call fcn.00455e10
mov ecx, dword [ebp - 4]
add esp, 8
test ecx, ecx
je 0x4554cd
mov eax, dword [0x6d6214]
test eax, eax
je 0x4554cd
mov edi, dword [0x6d620c]
mov esi, ecx
push ecx
mov ecx, 0x6d6208
call fcn.00409380
mov ecx, dword [0x6d620c]
mov dword [ebp - 0x18], eax
cmp eax, ecx
je 0x455446
mov edx, dword [esi]
mov esi, dword [eax + 0xc]
cmp edx, esi
jb 0x455446
lea eax, [ebp - 0x18]
jmp 0x45544c
lea eax, [ebp - 0x28]
push ecx
push eax
mov ecx, 0x6d6208
call fcn.0045adf0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ecx
call fcn.00455e10
mov eax, dword [ebp - 4]
add esp, 4
cmp eax, edi
je 0x455761
cmp dword [0x6d6214], edi
je 0x455761
mov ebx, dword [0x6d620c]
push eax
mov ecx, 0x6d6208
mov esi, eax
call fcn.00409380
mov ecx, dword [0x6d620c]
mov dword [ebp - 0x18], eax
cmp eax, ecx
je 0x4553b7
mov edx, dword [esi]
mov esi, dword [eax + 0xc]
cmp edx, esi
jb 0x4553b7
lea eax, [ebp - 0x18]
jmp 0x4553bd
mov dword [ebp - 0x20], ecx
lea eax, [ebp - 0x20]
cmp dword [eax], ebx
je 0x455761
mov eax, dword [ebp - 4]
mov ecx, 0xa24690
push eax
call fcn.0047a980
mov ecx, dword [ebp - 4]
push ecx
call fcn.0041dbd0
mov edx, dword [ebp - 4]
push edx
call fcn.00435650
mov eax, dword [ebp - 4]
mov ecx, dword [0xd11138]
add esp, 8
cmp ecx, eax
jne 0x4553fb
mov dword [0xd11138], edi
push eax
mov ecx, 0x6d6208
mov esi, eax
call fcn.0045c990
mov edi, eax
lea eax, [ebp - 0x28]
push esi
push eax
mov ecx, 0x6d6208
call fcn.0045b820
mov esi, dword [eax]
cmp esi, edi
mov dword [ebp - 0x10], esi
je 0x45542f
lea ecx, [ebp - 0x10]
call fcn.0044ea10
cmp dword [ebp - 0x10], edi
jne 0x455422
push edi
lea ecx, [ebp - 0x2c]
push esi
push ecx
mov ecx, 0x6d6208
call fcn.0045b310
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x20], ecx
lea eax, [ebp - 0x20]
cmp dword [eax], edi
je 0x4554ca
mov eax, dword [ebp - 4]
mov ecx, 0xa24690
push eax
call fcn.0047a980
mov ecx, dword [ebp - 4]
push ecx
call fcn.0041dbd0
mov edx, dword [ebp - 4]
push edx
call fcn.00435650
mov eax, dword [ebp - 4]
mov ecx, dword [0xd11138]
add esp, 8
cmp ecx, eax
jne 0x45548a
mov dword [0xd11138], 0
push eax
mov ecx, 0x6d6208
mov esi, eax
call fcn.0045c990
push esi
mov ecx, 0x6d6208
mov edi, eax
call fcn.00409380
mov esi, eax
cmp esi, edi
mov dword [ebp - 0x10], esi
je 0x4554ba
lea ecx, [ebp - 0x10]
call fcn.0044ea10
cmp dword [ebp - 0x10], edi
jne 0x4554ad
push edi
lea eax, [ebp - 0x2c]
push esi
push eax
mov ecx, 0x6d6208
call fcn.0045b310
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
mov eax, dword [0x6d67a8]
cmp edx, eax
je 0x4554ec
test ecx, ecx
mov esi, ecx
je 0x4554ec
call fcn.004775c0
push esi
call fcn.006066eb
add esp, 4
mov ebx, dword [ebx]
mov edi, dword [0x6d60d4]
cmp ebx, edi
jne 0x455292
mov esi, dword [edi]
cmp esi, edi
je 0x45552f
mov eax, esi
mov esi, dword [esi]
push eax
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov dword [ecx], edx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
call fcn.006066eb
mov ecx, dword [0x6d60d8]
add esp, 4
dec ecx
cmp esi, edi
mov dword [0x6d60d8], ecx
jne 0x455502
mov eax, dword [0x6d61f8]
xor edx, edx
cmp eax, edx
je 0x455628
mov eax, dword [0x6d61f4]
mov esi, dword [eax]
cmp esi, eax
je 0x455628
mov edi, 1
mov eax, dword [esi + 8]
mov cl, byte [eax + 0x1c]
test cl, cl
je 0x455619
mov ecx, dword [eax]
cmp ecx, edx
mov ecx, dword [0x6d6790]
jne 0x455614
mov ebx, dword [eax + 0x24]
sub ecx, ebx
mov ebx, dword [eax + 0x18]
cmp ecx, ebx
jb 0x455619
cmp dword [eax + 0x38], edx
je 0x455592
mov ecx, dword [eax + 0x44]
neg ecx
sbb ecx, ecx
and ecx, 0xfffffffe
inc ecx
jmp 0x455594
mov ecx, edi
add word [eax + 0x1e], cx
mov cx, word [eax + 0x1e]
cmp cx, word [eax + 0x14]
jb 0x4555d0
cmp dword [eax + 0x38], edx
je 0x4555cc
mov ebx, dword [eax + 0x44]
xor ecx, ecx
cmp ebx, edx
sete cl
cmp ecx, edx
mov dword [eax + 0x44], ecx
je 0x4555c6
mov cx, word [eax + 0x14]
sub cx, 2
mov word [eax + 0x1e], cx
jmp 0x4555d0
mov word [eax + 0x1e], di
jmp 0x4555d0
mov word [eax + 0x1e], dx
mov ecx, dword [eax + 0x18]
mov ebx, dword [eax + 0x24]
add ebx, ecx
mov dword [eax + 0x24], ebx
mov ecx, ebx
mov ebx, dword [0x6d6790]
sub ebx, ecx
mov ecx, dword [eax + 0x18]
cmp ebx, ecx
jae 0x455580
mov ebx, dword [eax + 0x30]
xor ecx, ecx
cmp ebx, edx
sete cl
add cx, word [eax + 0x1e]
add cx, word [eax + 0x12]
mov word [eax + 0x20], cx
mov ecx, dword [eax + 4]
cmp ecx, edx
je 0x455619
mov dword [0x647e38], edi
mov dword [eax + 4], edx
jmp 0x455619
mov dword [eax + 0x24], ecx
mov dword [eax], edx
mov esi, dword [esi]
mov eax, dword [0x6d61f4]
cmp esi, eax
jne 0x455552
mov ecx, 0xd125d0
call fcn.0059bda0
mov ecx, 0x6d7228
call fcn.0045d960
mov ecx, 0x68ef70
call fcn.0041b9f0
mov eax, dword [0xa263d8]
test eax, eax
je 0x45574a
mov al, byte [0x6d6200]
test al, 2
jne 0x45567e
mov dl, al
push 0x455790
or dl, 2
mov dword [0x6d61e0], 0
mov byte [0x6d6200], dl
call fcn.006132e0
add esp, 4
mov eax, dword [0xa263d4]
mov edi, dword [eax]
cmp edi, eax
mov dword [0x6d61e0], edi
je 0x45574a
mov ecx, dword [edi + 8]
call fcn.00495940
test eax, eax
jne 0x455728
mov eax, dword [0x6d61e0]
push eax
mov esi, eax
call fcn.00438080
mov edi, dword [eax]
add esp, 4
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x18], esi
call fcn.0045b510
mov esi, eax
push esi
call fcn.00438080
push esi
mov ebx, eax
call fcn.0045b4f0
mov edx, dword [eax]
push edx
call fcn.00438080
mov ecx, dword [ebx]
push esi
mov dword [eax], ecx
call fcn.0045b4f0
push esi
mov ebx, eax
call fcn.00438080
mov edx, dword [eax]
push edx
call fcn.0045b4f0
mov ecx, dword [ebx]
push esi
mov dword [eax], ecx
call fcn.0045b500
add esp, 0x1c
mov ecx, 0xa263d0
push eax
call fcn.00408440
push esi
mov ecx, 0xa263d0
call fcn.0045b4e0
mov eax, dword [0xa263d8]
mov dword [0x6d61e0], edi
dec eax
mov dword [0xa263d8], eax
jmp 0x45573e
lea edx, [ebp - 0x28]
push 0
push edx
mov ecx, 0x6d61e0
call fcn.004525d0
mov edi, dword [0x6d61e0]
cmp edi, dword [0xa263d4]
jne 0x455693
call fcn.0054fd90
call fcn.0041d3d0
rdtsc
lea ebx, [0xa258f8]
mov dword [ebx], eax
mov dword [ebx + 4], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret