Function at 0x416170
Capabilities:
Authenticate hmac
Encode data using xor
Encrypt data using rc4 ksa
Generate random numbers using a mersenne twister
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46440f
mov eax, dword fs:[0]
push eax
mov eax, 0x5b64
call fcn.0042f3d0
mov eax, dword [0x480054]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
movaps xmm0, xmmword [0x478150]
lea eax, [ebp - 0x6d4]
movups xmmword [ebp - 0x59b8], xmm0
push 0x41ab40
movaps xmm0, xmmword [0x478180]
movups xmmword [ebp - 0x59a8], xmm0
push 0x414c10
movaps xmm0, xmmword [0x478190]
movups xmmword [ebp - 0x5998], xmm0
push 2
movaps xmm0, xmmword [0x478290]
movups xmmword [ebp - 0x58ec], xmm0
push 0x24
movaps xmm0, xmmword [0x4781a0]
push eax
mov dword [ebp - 0x5988], 1
movups xmmword [ebp - 0x58dc], xmm0
call fcn.0042ea6e
mov dword [ebp - 4], 0
mov al, 1
mov dword [ebp - 0x81c], 0
mov dword [ebp - 0x57f0], 0x1e
mov dword [ebp - 0x57f4], 0x14
mov dword [ebp - 0x5748], 1
mov byte [ebp - 0x575d], 1
mov byte [ebp - 0x57e0], al
mov dword [ebp - 0x579c], 0
mov dword [ebp - method.CProfile.virtual_0], vtable.CProfile.0
mov dword [ebp - 0x80c], 0
mov dword [ebp - 0x808], 0xf
mov byte [ebp - 0x81c], 0
mov dword [ebp - 0x804], 0
mov dword [ebp - 0x7f4], 0
mov dword [ebp - 0x7f0], 0xf
mov byte [ebp - 0x804], 0
mov dword [ebp - 0x7ec], 0
mov dword [ebp - 0x7dc], 0
mov dword [ebp - 0x7d8], 0xf
mov byte [ebp - 0x7ec], 0
lea eax, [ebp - 0x62c]
mov byte [ebp - 4], 3
push eax
push 0x400
mov dword [ebp - 0x820], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea ecx, [ebp - 0x62c]
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4162f0
sub ecx, edx
lea eax, [ebp - 0x62c]
push ecx
push eax
lea ecx, [ebp - 0x81c]
call fcn.00421450
mov edx, dword [ebp - 0x808]
lea eax, [ebp - 0x81c]
mov esi, dword [ebp - 0x81c]
cmp edx, 0x10
mov ecx, dword [ebp - 0x80c]
cmovae eax, esi
mov al, byte [eax + ecx - 1]
cmp al, 0x5c
je 0x416372
cmp al, 0x2f
je 0x416372
cmp ecx, edx
jae 0x416357
lea eax, [ecx + 1]
cmp edx, 0x10
mov dword [ebp - 0x80c], eax
lea eax, [ebp - 0x81c]
cmovae eax, esi
mov word [eax + ecx], 0x5c
jmp 0x416372
push 0x5c
mov byte [ebp - 0x5778], 0
push dword [ebp - 0x5778]
push ecx
lea ecx, [ebp - 0x81c]
call fcn.00424f90
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x585c]
push 0xc
mov dword [ebp - 0x585c], 0
push str.settings.ini
mov dword [ebp - 0x584c], 0
mov dword [ebp - 0x5848], 0xf
mov byte [ebp - 0x585c], 0
call fcn.00421450
mov byte [ebp - 4], 5
lea eax, [ebp - 0x585c]
cmp dword [ebp - 0x5848], 0x10
lea ecx, [ebp - 0x804]
push dword [ebp - 0x584c]
cmovae eax, dword [ebp - 0x585c]
push eax
call fcn.00421450
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x5848]
cmp ecx, 0x10
jb 0x416415
mov edx, dword [ebp - 0x585c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41640b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ab28
push ecx
push edx
call fcn.0042e51d
add esp, 8
push 2
mov dword [ebp - 0x5874], 0
lea ecx, [ebp - 0x5874]
push 0x477404
mov dword [ebp - 0x584c], 0
mov dword [ebp - 0x5848], 0xf
mov byte [ebp - 0x585c], 0
mov dword [ebp - 0x5864], 0
mov dword [ebp - 0x5860], 0xf
mov byte [ebp - 0x5874], 0
call fcn.00421450
mov byte [ebp - 4], 8
lea eax, [ebp - 0x5874]
cmp dword [ebp - 0x5860], 0x10
lea ecx, [ebp - 0x7ec]
push dword [ebp - 0x5864]
cmovae eax, dword [ebp - 0x5874]
push eax
call fcn.00421450
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x5860]
cmp ecx, 0x10
jb 0x4164cf
mov edx, dword [ebp - 0x5874]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4164c5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ab28
push ecx
push edx
call fcn.0042e51d
add esp, 8
push 5
mov dword [ebp - 0x5934], 0
lea ecx, [ebp - 0x5934]
push str.delay
mov dword [ebp - 0x5864], 0
mov dword [ebp - 0x5860], 0xf
mov byte [ebp - 0x5874], 0
mov dword [ebp - 0x5924], 0
mov dword [ebp - 0x5920], 0xf
mov byte [ebp - 0x5934], 0
call fcn.00421450
sub esp, 0x18
mov byte [ebp - 4], 9
lea eax, [ebp - 0x5934]
mov ecx, esp
push eax
call fcn.0041e9e0
lea ecx, [ebp - 0x824]
call fcn.0040bed0
cmp dword [ebp - 0x820], 0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x5920]
sete al
mov byte [ebp - 0x571d], al
cmp ecx, 0x10
jb 0x416595
mov edx, dword [ebp - 0x5934]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x416585
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ab28
push ecx
push edx
call fcn.0042e51d
mov al, byte [ebp - 0x571d]
add esp, 8
mov dword [ebp - 0x5924], 0
mov dword [ebp - 0x5920], 0xf
mov byte [ebp - 0x5934], 0
test al, al
je 0x4165f3
sub esp, 0x18
mov ecx, esp
push 5
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
push str.delay
mov dword [ecx + 0x14], 0xf
call fcn.00421450
lea ecx, [ebp - 0x824]
call fcn.0040bed0
mov edi, eax
xor eax, eax
test edi, edi
cmovs edi, eax
mov dword [ebp - 0x57f0], edi
push 4
mov dword [ebp - 0x594c], 0
lea ecx, [ebp - 0x594c]
push str.move
mov dword [ebp - 0x593c], 0
mov dword [ebp - 0x5938], 0xf
mov byte [ebp - 0x594c], 0
call fcn.00421450
sub esp, 0x18
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0x594c]
mov ecx, esp
push eax
call fcn.0041e9e0
lea ecx, [ebp - 0x824]
call fcn.0040bed0
cmp dword [ebp - 0x820], 0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x5938]
sete al
mov byte [ebp - 0x571d], al
cmp ecx, 0x10
jb 0x41669e
mov edx, dword [ebp - 0x594c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41668e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ab28
push ecx
push edx
call fcn.0042e51d
mov al, byte [ebp - 0x571d]
add esp, 8
mov dword [ebp - 0x593c], 0
mov dword [ebp - 0x5938], 0xf
mov byte [ebp - 0x594c], 0
test al, al
je 0x4166fc
sub esp, 0x18
mov ecx, esp
push 4
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
push str.move
mov dword [ecx + 0x14], 0xf
call fcn.00421450
lea ecx, [ebp - 0x824]
call fcn.0040bed0
mov edi, eax
xor eax, eax
test edi, edi
cmovs edi, eax
mov dword [ebp - 0x57f4], edi
push 2
mov dword [ebp - 0x5904], 0
lea ecx, [ebp - 0x5904]
push 0x477418
mov dword [ebp - 0x58f4], 0
mov dword [ebp - 0x58f0], 0xf
mov byte [ebp - 0x5904], 0
call fcn.00421450
sub esp, 0x18
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x5904]
mov ecx, esp
push eax
call fcn.0041e9e0
lea ecx, [ebp - 0x824]
call fcn.0040bed0
cmp dword [ebp - 0x820], 0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x58f0]
sete al
mov byte [ebp - 0x571d], al
cmp ecx, 0x10
jb 0x4167a7
mov edx, dword [ebp - 0x5904]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x416797
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ab28
push ecx
push edx
call fcn.0042e51d
mov al, byte [ebp - 0x571d]
add esp, 8
mov dword [ebp - 0x58f4], 0
mov dword [ebp - 0x58f0], 0xf
mov byte [ebp - 0x5904], 0
test al, al
je 0x4167fc
sub esp, 0x18
mov ecx, esp
push 2
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
push 0x477418
mov dword [ecx + 0x14], 0xf
call fcn.00421450
lea ecx, [ebp - 0x824]
call fcn.0040bed0
mov dword [ebp - 0x5748], eax
push 0x10
mov dword [ebp - 0x5964], 0
lea ecx, [ebp - 0x5964]
push str.enable_autostart
mov dword [ebp - 0x5954], 0
mov dword [ebp - 0x5950], 0xf
mov byte [ebp - 0x5964], 0
call fcn.00421450
sub esp, 0x18
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x5964]
mov ecx, esp
push eax
call fcn.0041e9e0
lea ecx, [ebp - 0x824]
call fcn.0040bed0
cmp dword [ebp - 0x820], 0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x5950]
sete al
mov byte [ebp - 0x571d], al
cmp ecx, 0x10
jb 0x4168a7
mov edx, dword [ebp - 0x5964]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x416897
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ab28
push ecx
push edx
call fcn.0042e51d
mov al, byte [ebp - 0x571d]
add esp, 8
mov dword [ebp - 0x5954], 0
mov esi, 1
mov dword [ebp - 0x5950], 0xf
mov byte [ebp - 0x5964], 0
mov dword [ebp - 0x58b4], esi
test al, al
je 0x41691c
sub esp, 0x18
mov ecx, esp
push 0x10
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
push str.enable_autostart
mov dword [ecx + 0x14], 0xf
call fcn.00421450
lea ecx, [ebp - 0x824]
call fcn.0040bed0
test eax, eax
jns 0x416911
mov dword [0x48f5c8], 0
jmp 0x41691c
cmp eax, 1
cmovg eax, esi
mov dword [0x48f5c8], eax
push 0x12
mov dword [ebp - 0x591c], 0
lea ecx, [ebp - 0x591c]
push str.autostart_interval
mov dword [ebp - 0x590c], 0
mov dword [ebp - 0x5908], 0xf
mov byte [ebp - 0x591c], 0
call fcn.00421450
sub esp, 0x18
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x591c]
mov ecx, esp
push eax
call fcn.0041e9e0
lea ecx, [ebp - 0x824]
call fcn.0040bed0
cmp dword [ebp - 0x820], 0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x5908]
sete al
mov byte [ebp - 0x571d], al
cmp ecx, 0x10
jb 0x4169c7
mov edx, dword [ebp - 0x591c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4169b7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ab28
push ecx
push edx
call fcn.0042e51d
mov al, byte [ebp - 0x571d]
add esp, 8
mov dword [ebp - 0x590c], 0
mov dword [ebp - 0x5908], 0xf
mov byte [ebp - 0x591c], 0
test al, al
je 0x416a28
sub esp, 0x18
mov ecx, esp
push 0x12
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
push str.autostart_interval
mov dword [ecx + 0x14], 0xf
call fcn.00421450
lea ecx, [ebp - 0x824]
call fcn.0040bed0
imul eax, eax, 0x3e8
xor ecx, ecx
test eax, eax
cmovs eax, ecx
mov dword [0x48f5c0], eax
lea edx, [ebp - 0x6d4]
lea ecx, [ebp - 0x824]
call fcn.00414c90
lea edx, [ebp - 0x59b8]
lea ecx, [ebp - 0x824]
call fcn.00415010
lea edx, [ebp - 0x58ec]
lea ecx, [ebp - 0x824]
call fcn.00415a80
mov eax, dword [ebp - 0x5988]
mov dword [ebp - 0x578c], eax
cmp eax, 1
je 0x416a80
mov dword [ebp - 0x6a8], 1
mov dword [ebp - 0x6cc], 1
push 0
push 0
push 0
push 0
push 0x64
push 0
push 0
push str.Courier_New
push 0
push 0x12
call fcn.00430be0
push 0x8883
mov dword [ebp - 0x571c], 0
mov dword [ebp - 0x5718], 0
mov dword [ebp - 0x5714], 0
call fcn.0042e29c
add esp, 0x2c
test eax, eax
je 0x41ab28
lea esi, [eax + 0x23]
and esi, 0xffffffe0
mov dword [esi - 4], eax
lea eax, [esi + 0x8860]
mov dword [ebp - 0x5714], eax
lea eax, [ebp - 0x571c]
mov dword [ebp - 0x571c], esi
mov dword [ebp - 0x5718], esi
mov dword [ebp - 0x5750], eax
mov edi, 2
mov dword [ebp - 0x57cc], esi
mov dword [ebp - 0x57c8], esi
mov dword [ebp - 0x57c4], eax
mov byte [ebp - 4], 0xf
mov ecx, esi
call fcn.00409c00
add esi, 0x4430
mov dword [ebp - 0x57c8], esi
sub edi, 1
jne 0x416b17
mov dword [ebp - 0x5718], esi
push edi
call fcn.004467df
add esp, 4
lea ecx, [ebp - 0x12bc]
push eax
call fcn.00401ee0
movaps xmm0, xmmword [0x478430]
movups xmmword [ebp - 0x68c], xmm0
push 0x477278
movaps xmm0, xmmword [0x478420]
push str.misamino.cfg
movups xmmword [ebp - 0x67c], xmm0
call fcn.0043c850
add esp, 8
mov dword [ebp - 0x5798], eax
test eax, eax
je 0x416bb6
lea esi, [ebp - 0x68c]
mov edi, 8
nop dword [eax]
push esi
push 0x476a9c
push eax
call fcn.004061b0
mov eax, dword [ebp - 0x5798]
add esp, 0xc
add esi, 4
sub edi, 1
jne 0x416b90
push eax
call fcn.0043cc47
add esp, 4
mov eax, dword [0x48f5c4]
mov ecx, 6
cmp eax, ecx
mov dword [ebp - 0x884], 0
xorps xmm0, xmm0
mov dword [ebp - 0x57d8], 0xd
cmovg eax, ecx
mov dword [ebp - 0x874], 0
mov dword [ebp - 0x57f8], eax
xor eax, eax
cmp dword [ebp - 0x6d4], eax
movups xmmword [ebp - 0x66c], xmm0
setne al
mov dword [ebp - 0x870], 0xf
add eax, 5
mov byte [ebp - 0x884], 0
mov dword [ebp - 0x57fc], eax
movups xmmword [ebp - 0x65c], xmm0
mov byte [ebp - 4], 0x11
xor eax, eax
mov ecx, dword [ebp - 0x571c]
push 5
push str.Human
mov dword [ebp - 0x5798], eax
lea ecx, [ecx + 0x43f8]
call fcn.00421450
mov esi, dword fs:[0x2c]
mov eax, dword [0x490a20]
mov dword [ebp - 0x5808], esi
mov ecx, dword [esi]
cmp eax, dword [ecx + 4]
jle 0x416c99
push 0x490a20
call fcn.0042e686
add esp, 4
cmp dword [0x490a20], 0xffffffff
jne 0x416c99
mov byte [ebp - 4], 0x12
call fcn.00408130
push 0x4655f0
call fcn.0042e508
push 0x490a20
mov byte [ebp - 4], 0x11
call fcn.0042e63c
add esp, 8
mov ecx, 0x48fc58
call fcn.00408910
mov eax, dword [ebp - 0x58d0]
mov dword [ebp - 0x57e4], eax
test eax, eax
je 0x416d0d
mov ecx, dword [esi]
mov eax, dword [0x490a20]
cmp eax, dword [ecx + 4]
jle 0x416cfc
push 0x490a20
call fcn.0042e686
add esp, 4
cmp dword [0x490a20], 0xffffffff
jne 0x416cfc
mov byte [ebp - 4], 0x13
call fcn.00408130
push 0x4655f0
call fcn.0042e508
push 0x490a20
mov byte [ebp - 4], 0x11
call fcn.0042e63c
add esp, 8
lea eax, [ebp - 0x12bc]
mov ecx, 0x48fc58
push eax
call fcn.00409700
mov eax, dword [ebp - 0x58d8]
mov dword [ebp - 0x57b0], eax
test eax, eax
je 0x416d2a
mov eax, dword [ebp - 0x571c]
mov byte [eax + 0x4410], 1
mov eax, dword [ebp - 0x58d4]
mov dword [ebp - 0x5790], eax
test eax, eax
je 0x416d47
mov eax, dword [ebp - 0x571c]
mov byte [eax + 0x8840], 1
lea eax, [ebp - 0x22c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov dword [ebp - 0x5744], 0
lea edi, [ebp - 0x6c8]
xor eax, eax
nop dword [eax + eax]
cmp dword [edi - 0xc], 0xffffffff
jne 0x4170dd
lea ecx, [ebp - 0x22c]
mov dword [ebp - 0x86c], 0
mov dword [ebp - 0x85c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x858], 0xf
mov byte [ebp - 0x86c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x416da8
sub ecx, edx
lea eax, [ebp - 0x22c]
push ecx
push eax
lea ecx, [ebp - 0x86c]
call fcn.00421450
push 0x476ab4
lea ecx, [ebp - 0x86c]
mov byte [ebp - 4], 0x14
call fcn.0041e880
mov dword [ebp - 0x854], 0
mov dword [ebp - 0x844], 0
mov dword [ebp - 0x840], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x854], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x844], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push edi
lea edx, [ebp - 0x854]
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x58ac]
call fcn.00423070
add esp, 4
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x589c]
mov esi, dword [ebp - 0x5898]
lea eax, [ebp - 0x58ac]
mov edx, dword [ebp - 0x58ac]
dec ecx
cmp esi, 0x10
cmovae eax, edx
setae byte [ebp - 0x5725]
cmp byte [eax + ecx], 0x2f
je 0x416e8f
cmp byte [ebp - 0x5725], 0
lea eax, [ebp - 0x58ac]
cmovne eax, edx
cmp byte [eax + ecx], 0x5c
je 0x416e8f
cmp esi, 0x10
lea eax, [ebp - 0x58ac]
cmovae eax, edx
mov byte [eax + ecx], 0
jmp 0x416e41
cmp byte [ebp - 0x5725], 0
lea esi, [ebp - 0x58ac]
mov dword [ebp - 0x83c], 0
cmovne esi, edx
mov dword [ebp - 0x82c], 0
mov ecx, esi
mov dword [ebp - 0x828], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x416ec2
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x83c]
call fcn.00421450
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x5898]
cmp ecx, 0x10
jb 0x416f16
mov edx, dword [ebp - 0x58ac]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x416f0c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ab28
push ecx
push edx
call fcn.0042e51d
add esp, 8
cmp dword [ebp - 0x828], 0x10
lea eax, [ebp - 0x83c]
mov esi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
cmovae eax, dword [ebp - 0x83c]
push eax
mov dword [ebp - 0x589c], 0
mov dword [ebp - 0x5898], 0xf
mov byte [ebp - 0x58ac], 0
call esi
mov ecx, dword [ebp - 0x828]
cmp ecx, 0x10
jb 0x416f88
mov edx, dword [ebp - 0x83c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x416f7e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ab28
push ecx
push edx
call fcn.0042e51d
add esp, 8
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x840]
mov dword [ebp - 0x82c], 0
mov dword [ebp - 0x828], 0xf
mov byte [ebp - 0x83c], 0
cmp ecx, 0x10
jb 0x416fe1
mov edx, dword [ebp - 0x854]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x416fd7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ab28
push ecx
push edx
call fcn.0042e51d
add esp, 8
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x858]
mov dword [ebp - 0x844], 0
mov dword [ebp - 0x840], 0xf
mov byte [ebp - 0x854], 0
cmp ecx, 0x10
jb 0x41703a
mov edx, dword [ebp - 0x86c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x417030
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ab28
push ecx
push edx
call fcn.0042e51d
add esp, 8
mov dword [ebp - 0x85c], 0
mov eax, edi
mov dword [ebp - 0x858], 0xf
mov byte [ebp - 0x86c], 0
cmp dword [edi + 0x14], 0x10
jb 0x41705f
mov eax, dword [edi]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x5764], eax
test eax, eax
je 0x41735b
push str.AIDllVersion
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x41735b
call eax
cmp eax, 2
jne 0x41735b
mov esi, dword [ebp - 0x571c]
push str.AIName
push dword [ebp - 0x5764]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x5744]
push str.TetrisAI
push dword [ebp - 0x5764]
mov dword [ecx + esi + 0x3998], eax
mov esi, dword [ebp - 0x571c]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x5744]
mov dword [ecx + esi + 0x399c], eax
mov eax, ecx
mov esi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
add eax, 0x4430
add edi, 0x24
mov dword [ebp - 0x5744], eax
cmp eax, 0x8860
jl 0x416d70
lea eax, [ebp - 0x22c]
push eax
call esi
mov eax, dword [ebp - 0x571c]
lea esi, [ebp - 0x78c]
xor edx, edx
lea edi, [ebp - 0x6d0]
mov dword [eax + 0x43b4], 0xd
mov dword [eax + 0x43b8], 9
mov dword [eax + 0x43bc], 0x11
mov dword [eax + 0x43c0], 0xa
mov dword [eax + 0x43c4], 0x1d
mov dword [eax + 0x43c8], 0x19
mov dword [eax + 0x43cc], 0x27
mov dword [eax + 0x43d0], 2
mov dword [eax + 0x43d4], 0xc
mov dword [eax + 0x43d8], 0x13
mov dword [eax + 0x43dc], 7
mov dword [eax + 0x43e0], 0x18
mov dword [eax + 0x43e4], 0x15
mov dword [eax + 0x43e8], 0x10
mov dword [eax + 0x43ec], 0xe
mov dword [eax + 0x43f0], 0x13
mov dword [eax + 0x43f4], 0xc8
cmp dword [edi], 0
jg 0x41728f
movaps xmm0, xmmword [0x478440]
mov ecx, dword [ebp - 0x571c]
movups xmmword [ebp - 0x78c], xmm0
mov dword [ebp - 0x74c], 0
movaps xmm0, xmmword [0x4782c0]
movups xmmword [ebp - 0x77c], xmm0
mov dword [ebp - 0x708], 0
movaps xmm0, xmmword [0x4782e0]
movups xmmword [ebp - 0x76c], xmm0
movaps xmm0, xmmword [0x478480]
movups xmmword [ebp - 0x75c], xmm0
movaps xmm0, xmmword [0x4783d0]
movups xmmword [ebp - 0x748], xmm0
movaps xmm0, xmmword [0x4782f0]
movups xmmword [ebp - 0x738], xmm0
movaps xmm0, xmmword [0x4783a0]
movups xmmword [ebp - 0x728], xmm0
movaps xmm0, xmmword [0x478490]
movups xmmword [ebp - 0x718], xmm0
mov eax, dword [esi + 0x40]
movups xmm0, xmmword [esi]
movups xmmword [edx + ecx + 0x43b4], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [edx + ecx + 0x43c4], xmm0
movups xmm0, xmmword [esi + 0x20]
movups xmmword [edx + ecx + 0x43d4], xmm0
movups xmm0, xmmword [esi + 0x30]
movups xmmword [edx + ecx + 0x43e4], xmm0
mov dword [edx + ecx + 0x43f4], eax
add edx, 0x4430
add edi, 0x24
add esi, 0x44
cmp edx, 0x8860
jl 0x4171c3
push 9
mov dword [ebp - 0x704], 0
lea ecx, [ebp - 0x704]
push 0x47747c
mov dword [ebp - 0x6f4], 0
mov dword [ebp - 0x6f0], 0xf
mov byte [ebp - 0x704], 0
call fcn.00421450
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x6ec]
push 9
mov dword [ebp - 0x6ec], 0
push 0x47747c
mov dword [ebp - 0x6dc], 0
mov dword [ebp - 0x6d8], 0xf
mov byte [ebp - 0x6ec], 0
call fcn.00421450
lea eax, [ebp - 0x78c]
mov byte [ebp - 4], 0x18
mov dword [ebp - 0x5768], eax
lea edx, [ebp - 0x704]
lea eax, [ebp - 0x6d4]
mov dword [ebp - 0x576c], edx
xor esi, esi
mov dword [ebp - 0x5764], eax
mov edi, 0x484a6a
mov eax, dword [eax]
cmp eax, 1
jne 0x417366
push 0xa
push str.T_spin_AI
jmp 0x41750a
mov eax, dword [ebp - 0x5744]
jmp 0x4170e3
cmp eax, 2
jne 0x417374
mov byte [edi - 2], 0
jmp 0x417517
cmp eax, 3
jne 0x4173cd
mov eax, dword [ebp - 0x571c]
push 6
push str.Ren_AI
mov dword [esi + eax + 0x43c4], 0xfffffed4
mov eax, dword [ebp - 0x571c]
mov dword [esi + eax + 0x43e0], 0xfffffed4
mov ecx, dword [ebp - 0x571c]
movd xmm0, dword [esi + ecx + 0x43ec]
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x4780a8]
cvttsd2si eax, xmm0
mov dword [esi + ecx + 0x43ec], eax
jmp 0x41750a
cmp eax, 4
jne 0x41742d
mov eax, dword [ebp - 0x571c]
push 8
push str.non_Hold
mov byte [esi + eax + 0x3968], 0
mov ecx, dword [ebp - 0x571c]
movd xmm0, dword [esi + ecx + 0x43ec]
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x4780a0]
cvttsd2si eax, xmm0
mov dword [esi + ecx + 0x43ec], eax
mov ecx, edx
call fcn.00421450
mov eax, dword [ebp - 0x571c]
mov dword [esi + eax + 0x43f4], 0
mov byte [edi], 0
jmp 0x417511
cmp eax, 0xffffffff
je 0x417517
movaps xmm0, xmmword [0x478360]
mov eax, dword [ebp - 0x5768]
mov ecx, dword [ebp - 0x571c]
movups xmmword [ebp - 0x78c], xmm0
mov dword [ebp - 0x75c], 0
movaps xmm0, xmmword [0x478300]
movups xmmword [ebp - 0x77c], xmm0
mov dword [ebp - 0x718], 0
movaps xmm0, xmmword [0x4785b0]
movups xmmword [ebp - 0x76c], xmm0
mov byte [edi - 1], 0
movaps xmm0, xmmword [0x478170]
movups xmmword [ebp - 0x758], xmm0
push 9
movaps xmm0, xmmword [0x478390]
movups xmmword [ebp - 0x748], xmm0
push str.Downstack
movaps xmm0, xmmword [0x478310]
movups xmmword [ebp - 0x738], xmm0
movaps xmm0, xmmword [0x4785a0]
movups xmmword [ebp - 0x728], xmm0
movaps xmm0, xmmword [0x478160]
movups xmmword [ebp - 0x714], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esi + ecx + 0x43b4], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esi + ecx + 0x43c4], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [esi + ecx + 0x43d4], xmm0
movups xmm0, xmmword [eax + 0x30]
mov eax, dword [eax + 0x40]
movups xmmword [esi + ecx + 0x43e4], xmm0
mov dword [esi + ecx + 0x43f4], eax
mov ecx, edx
call fcn.00421450
mov edx, dword [ebp - 0x576c]
mov eax, dword [ebp - 0x5764]
add edi, 3
add dword [ebp - 0x5768], 0x44
add eax, 0x24
add edx, 0x18
mov dword [ebp - 0x5764], eax
add esi, 0x4430
mov dword [ebp - 0x576c], edx
cmp edi, 0x484a70
jl 0x417348
xor edx, edx
mov dword [ebp - 0x5768], 0x484a6a
lea eax, [ebp - 0x704]
mov dword [ebp - 0x5764], edx
xor esi, esi
mov dword [ebp - 0x574c], eax
lea edi, [ebp - 0x6d0]
cmp dword [edi - 4], 0
jne 0x41757b
test edx, edx
jle 0x4175d3
cmp dword [eax + 0x14], 0x10
mov ecx, eax
jb 0x417585
mov ecx, dword [eax]
push dword [edi]
lea eax, [ebp - 0x128]
push ecx
push str._s_LV_d
push eax
call fcn.00406260
mov edx, dword [ebp - 0x571c]
lea ecx, [ebp - 0x128]
lea eax, [ecx + 1]
add esp, 0x10
mov dword [ebp - 0x5778], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4175b1
sub ecx, dword [ebp - 0x5778]
lea eax, [ebp - 0x128]
push ecx
lea ecx, [edx + 0x43f8]
push eax
add ecx, esi
call fcn.00421450
mov eax, dword [ebp - 0x571c]
mov dword [ebp - 0x57ac], eax
mov eax, dword [esi + eax + 0x3998]
test eax, eax
je 0x417622
push dword [edi]
call eax
mov edx, eax
add esp, 4
lea ecx, [edx + 1]
mov dword [ebp - 0x5778], ecx
nop dword [eax]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x417600
sub edx, dword [ebp - 0x5778]
mov ecx, dword [ebp - 0x57ac]
push edx
add ecx, 0x43f8
push eax
add ecx, esi
call fcn.00421450
cmp dword [ebp - 0x5748], 0
je 0x417630
cmp dword [edi], 6
jge 0x417641
mov eax, dword [ebp - 0x571c]
mov dword [esi + eax + 0x43f4], 0
mov eax, dword [ebp - 0x571c]
mov ecx, dword [ebp - 0x5768]
cmp dword [esi + eax + 0x43f4], 0
jle 0x41765a
mov byte [ecx], 1
mov edx, dword [ebp - 0x5764]
add ecx, 3
mov eax, dword [ebp - 0x574c]
inc edx
add eax, 0x18
mov dword [ebp - 0x5764], edx
add edi, 0x24
mov dword [ebp - 0x574c], eax
add esi, 0x4430
mov dword [ebp - 0x5768], ecx
cmp ecx, 0x484a70
jl 0x417571
movaps xmm0, xmmword [0x478190]
sub esp, 0xc
movups xmmword [ebp - 0x7d4], xmm0
mov edi, esp
mov dword [ebp - 0x794], 2
movaps xmm0, xmmword [0x4781c0]
movups xmmword [ebp - 0x7c4], xmm0
mov dword [ebp - 0x790], 3
movaps xmm0, xmmword [0x4781d0]
movups xmmword [ebp - 0x7b4], xmm0
push 0x12
movaps xmm0, xmmword [0x4781d0]
movups xmmword [ebp - 0x7a4], xmm0
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
call fcn.00405780
mov esi, eax
lea eax, [ebp - 0x7d4]
push 0x48
mov dword [edi], esi
push eax
lea ecx, [esi + 0x48]
mov dword [edi + 4], esi
push esi
mov dword [edi + 8], ecx
call fcn.00439150
add esp, 0xc
lea eax, [esi + 0x48]
mov dword [edi + 4], eax
call fcn.00402320
mov eax, dword [ebp - 0x59a0]
add esp, 0xc
mov ecx, dword [ebp - 0x59a8]
test eax, eax
mov dword [ebp - 0x58c4], eax
mov eax, dword [ebp - 0x59a4]
mov dword [ebp - 0x5800], eax
mov dword [ebp - 0x58c0], ecx
je 0x41775d
test eax, eax
je 0x41775d
test ecx, ecx
jne 0x41778b
mov eax, dword [ebp - 0x571c]
mov dword [eax + 0x43f4], 0
mov eax, dword [ebp - 0x571c]
mov byte [0x484a6a], 0
mov dword [eax + 0x8824], 0
mov byte [0x484a6d], 0
cmp dword [ebp - 0x57b0], 0
mov eax, dword [ebp - 0x571c]
mov dword [eax], 4
mov eax, dword [ebp - 0x571c]
mov dword [eax + 0x4430], 4
je 0x4177d9
cmp dword [ebp - 0x5790], 0
je 0x4177d9
mov eax, dword [ebp - 0x571c]
mov dword [eax + 0x39e4], 1
mov eax, dword [ebp - 0x571c]
mov dword [eax + 0x7e14], 2
mov ecx, dword [ebp - 0x5808]
mov eax, dword [0x490a20]
mov ecx, dword [ecx]
cmp eax, dword [ecx + 4]
jle 0x417824
push 0x490a20
call fcn.0042e686
add esp, 4
cmp dword [0x490a20], 0xffffffff
jne 0x417824
mov byte [ebp - 4], 0x19
call fcn.00408130
push 0x4655f0
call fcn.0042e508
push 0x490a20
call fcn.0042e63c
add esp, 8
mov eax, dword [0x490a08]
mov dword [0x490a18], 0x3f000000
mov dword [0x490a1c], 0x3e99999a
mov eax, dword [eax*4 + 0x4909c8]
test eax, eax
je 0x417859
push ecx
mov dword [esp], 0x3e99999a
push 2
push eax
call dword [sym.imp.BASS.dll_BASS_ChannelSetAttribute]
push 0
call fcn.004467df
add esp, 4
sub dword [ebp - 0x8fc], 1
jne 0x417877
lea ecx, [ebp - 0x12bc]
call fcn.00401e10
mov eax, dword [ebp - 0x571c]
add dword [ebp - 0x8f8], 4
mov dword [ebp - 0x5768], 0xffffffff
mov dword [eax + 0x38f4], 0
mov dword [eax + 0x38f8], 0x41f00000
mov eax, dword [ebp - 0x571c]
mov dword [eax + 0x7d24], 0x43c80000
mov dword [eax + 0x7d28], 0x41f00000
mov dword [ebp - 0x57a8], 0
mov dword [ebp - 0x57a4], 0
mov dword [ebp - 0x57a0], 0
push 0x41c4a0
push 0x41c510
push 2
push 8
lea eax, [ebp - 0x57c0]
mov byte [ebp - 4], 0x1a
push eax
call fcn.0042ea6e
mov byte [ebp - 4], 0x1b
sub esp, 0x18
mov eax, dword [ebp - 0x5994]
mov ecx, esp
mov dword [ebp - 0x5750], esp
mov dword [ebp - 0x576c], eax
mov dword [ebp - 0x596c], eax
add eax, 0xa
mov dword [ecx], 0
push 0
mov dword [ecx + 0x10], 0
push 0x4767cb
mov dword [ebp - 0x5968], eax
mov dword [ecx + 0x14], 0xf
call fcn.00421450
sub esp, 0x18
mov byte [ebp - 4], 0x1c
mov ecx, esp
push 0
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
push 0x4767cb
mov dword [ecx + 0x14], 0xf
call fcn.00421450
lea ecx, [ebp - 0x8c4]
mov byte [ebp - 4], 0x1b
call fcn.00412330
push 0
push 0
sub esp, 0x18
mov byte [ebp - 4], 0x1d
mov eax, dword [ebp - 0x571c]
mov ecx, esp
add eax, 0x8828
mov dword [ebp - 0x5750], esp
push eax
call fcn.0041e9e0
sub esp, 0x18
mov byte [ebp - 4], 0x1e
mov eax, dword [ebp - 0x571c]
mov ecx, esp
add eax, 0x43f8
push eax
call fcn.0041e9e0
lea ecx, [ebp - 0x8c4]
mov byte [ebp - 4], 0x1d
call fcn.004129d0
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x5830]
push 0
mov byte [ebp - 0x5838], 0
call fcn.00420dd0
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x5884]
sub esp, 8
mov eax, esp
mov dword [eax], 0
mov dword [eax + 4], 0
call fcn.0041e030
add esp, 8
push str.board
lea ecx, [ebp - 0x5838]
mov byte [ebp - 4], 0x21
call fcn.00423390
movzx ecx, byte [ebp - 0x5884]
mov edi, eax
mov dl, byte [edi]
mov byte [edi], cl
mov eax, dword [ebp - 0x587c]
mov ecx, dword [ebp - 0x5878]
mov byte [ebp - 0x5884], dl
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x587c], edx
mov dword [ebp - 0x5878], esi
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x587c]
push dword [ebp - 0x5884]
call fcn.004209e0
sub esp, 8
mov byte [ebp - 4], 0x20
mov eax, esp
lea ecx, [ebp - 0x5894]
mov dword [eax], 0
mov dword [eax + 4], 0
call fcn.0041e030
add esp, 8
push str.replays
lea ecx, [ebp - 0x5838]
mov byte [ebp - 4], 0x23
call fcn.00423390
movzx ecx, byte [ebp - 0x5894]
mov edi, eax
mov dl, byte [edi]
mov byte [edi], cl
mov eax, dword [ebp - 0x588c]
mov ecx, dword [ebp - 0x5888]
mov byte [ebp - 0x5894], dl
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x588c], edx
mov dword [ebp - 0x5888], esi
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0x588c]
push dword [ebp - 0x5894]
call fcn.004209e0
mov byte [ebp - 4], 0x25
push 0x100
mov dword [ebp - 0x5734], 0
mov dword [ebp - 0x5730], 0
mov dword [ebp - 0x572c], 0
call fcn.0042e29c
mov esi, eax
add esp, 4
lea eax, [ebp - 0x5734]
mov dword [ebp - 0x5734], esi
mov dword [ebp - 0x5730], esi
mov dword [ebp - 0x5750], eax
lea ecx, [esi + 0x100]
mov dword [ebp - 0x572c], ecx
mov dword [ebp - 0x57cc], esi
mov dword [ebp - 0x57c8], esi
mov dword [ebp - 0x57c4], eax
mov byte [ebp - 4], 0x27
mov edi, 2
mov ecx, esi
call fcn.0040c950
sub esi, 0xffffff80
mov dword [ebp - 0x57c8], esi
sub edi, 1
jne 0x417b57
mov dword [ebp - 0x5730], esi
mov byte [ebp - 4], 0x28
xor eax, eax
mov word [ebp - 0x5788], ax
xor ecx, ecx
mov dword [ebp - 0x5740], eax
lea eax, [ebp - 0x6d4]
mov dword [ebp - 0x574c], eax
mov eax, dword [ebp - 0x58e0]
mov dword [ebp - 0x57d4], eax
mov eax, dword [ebp - 0x58e4]
mov dword [ebp - 0x57d0], eax
mov eax, dword [ebp - 0x58e8]
mov byte [ebp - 0x5725], 0
mov dword [ebp - 0x5748], edi
mov dword [ebp - 0x5764], ecx
mov dword [ebp - 0x57dc], eax
nop word [eax + eax]
mov eax, dword [ebp - 0x571c]
add eax, 0x43f8
add eax, ecx
lea ecx, [ebp - 0x59d0]
push eax
call fcn.0041e9e0
mov esi, dword [ebp - 0x5734]
mov byte [ebp - 4], 0x29
lea edx, [ebp - 0x59d0]
xorps xmm0, xmm0
mov byte [ebp - 0x5818], 0
lea ecx, [ebp - 0x5818]
movq qword [ebp - 0x5810], xmm0
call fcn.004273a0
lea eax, [esi + 8]
mov byte [ebp - 4], 0x2a
add eax, edi
push str.username
push str.user
mov ecx, eax
mov dword [ebp - 0x5778], eax
call fcn.00423390
mov ecx, eax
call fcn.00423390
movzx ecx, byte [ebp - 0x5818]
mov edi, eax
mov dl, byte [edi]
mov byte [edi], cl
mov eax, dword [ebp - 0x5810]
mov ecx, dword [ebp - 0x580c]
mov byte [ebp - 0x5818], dl
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x5810], edx
mov dword [ebp - 0x580c], esi
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x5810]
push dword [ebp - 0x5818]
call fcn.004209e0
mov edx, dword [ebp - 0x5740]
lea ecx, [ebp - 0x5828]
xorps xmm0, xmm0
mov byte [ebp - 0x5828], 0
movq qword [ebp - 0x5820], xmm0
call fcn.004270f0
push 0x476b38
mov byte [ebp - 4], 0x2c
mov ecx, dword [ebp - 0x5778]
push str.user
call fcn.00423390
mov ecx, eax
call fcn.00423390
movzx ecx, byte [ebp - 0x5828]
mov edi, eax
mov dl, byte [edi]
mov byte [edi], cl
mov eax, dword [ebp - 0x5820]
mov ecx, dword [ebp - 0x581c]
mov byte [ebp - 0x5828], dl
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x5820], edx
mov dword [ebp - 0x581c], esi
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x5820]
push dword [ebp - 0x5828]
call fcn.004209e0
mov byte [ebp - 4], 0x28
mov ecx, dword [ebp - 0x59bc]
cmp ecx, 0x10
jb 0x417d56
mov edx, dword [ebp - 0x59d0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x417d4c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ab28
push ecx
push edx
call fcn.0042e51d
add esp, 8
mov esi, dword [ebp - 0x574c]
xor eax, eax
mov ecx, dword [ebp - 0x5734]
mov edi, dword [ebp - 0x5748]
mov dword [ebp - 0x59c0], 0
cmp dword [esi], eax
mov dword [ebp - 0x59bc], 0xf
cmove eax, dword [ebp - 0x57d4]
lea ecx, [edi + ecx]
push eax
push dword [ebp - 0x57dc]
mov byte [ebp - 0x59d0], 0
push dword [ebp - 0x57d0]
call fcn.0040cf30
mov ecx, dword [ebp - 0x5764]
sub edi, 0xffffff80
inc dword [ebp - 0x5740]
add ecx, 0x4430
add esi, 0x24
mov dword [ebp - 0x5764], ecx
mov dword [ebp - 0x5748], edi
mov dword [ebp - 0x574c], esi
cmp ecx, 0x8860
jl 0x417bd0
movaps xmm0, xmmword [0x478240]
movups xmmword [ebp - 0x64c], xmm0
movaps xmm0, xmmword [0x478260]
movups xmmword [ebp - 0x63c], xmm0
call fcn.0042ff70
test al, al
je 0x41a1f3
mov eax, dword [ebp - 0x598c]
xorps xmm0, xmm0
movsd qword [ebp - 0x575c], xmm0
movsd xmm0, qword [0x478068]
movsd qword [ebp - 0x59f0], xmm0
movsd xmm0, qword [0x478118]
mov dword [ebp - 0x58b0], eax
mov eax, dword [ebp - 0x5998]
movsd qword [ebp - 0x59e8], xmm0
movsd xmm0, qword [0x4780f0]
mov dword [ebp - 0x5804], eax
mov eax, dword [ebp - 0x599c]
movsd qword [ebp - 0x58cc], xmm0
movsd xmm0, qword [0x478128]
mov dword [ebp - 0x5764], eax
mov eax, dword [ebp - 0x59ac]
movsd qword [ebp - 0x597c], xmm0
movsd xmm0, qword [0x4780f8]
mov dword [ebp - 0x5778], eax
mov eax, dword [ebp - 0x59b4]
mov dword [ebp - 0x5750], eax
mov eax, dword [ebp - 0x59b8]
movsd qword [ebp - 0x5974], xmm0
movsd xmm0, qword [0x478098]
mov dword [ebp - 0x5744], eax
mov eax, dword [ebp - 0x58dc]
movsd qword [ebp - 0x59d8], xmm0
movsd xmm0, qword [0x478110]
mov dword [ebp - 0x58bc], eax
mov eax, dword [ebp - 0x58ec]
movsd qword [ebp - 0x59e0], xmm0
movsd xmm0, qword [0x478080]
mov dword [ebp - 0x58b8], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x57ac], eax
movsd qword [ebp - 0x5780], xmm0
nop dword [eax + eax]
xor al, al
xor esi, esi
mov byte [ebp - 0x571d], al
mov dword [ebp - 0x5754], esi
mov ecx, dword [ebp - 0x571c]
cmp dword [ecx], 4
je 0x417f33
cmp dword [ecx + 0x4430], 4
je 0x417f33
mov dword [ebp - 0x5768], 0
jmp 0x417fed
cmp dword [ebp - 0x5768], 0
jne 0x417fe3
cmp dword [ecx + 0x4430], 4
mov byte [0x48f5ba], 1
je 0x417f63
call fcn.0040b840
mov eax, dword [ebp - 0x571c]
inc dword [eax + 0x7df8]
jmp 0x417f7a
add ecx, 0x4430
call fcn.0040b840
mov eax, dword [ebp - 0x571c]
inc dword [eax + 0x39c8]
cmp dword [ebp - 0x57e4], 0
je 0x417fe3
mov eax, dword [ebp - 0x5808]
mov ecx, dword [eax]
mov eax, dword [0x490a20]
cmp eax, dword [ecx + 4]
jle 0x417fd2
push 0x490a20
call fcn.0042e686
add esp, 4
cmp dword [0x490a20], 0xffffffff
jne 0x417fd2
mov byte [ebp - 4], 0x2e
call fcn.00408130
push 0x4655f0
call fcn.0042e508
push 0x490a20
mov byte [ebp - 4], 0x28
call fcn.0042e63c
add esp, 8
lea eax, [ebp - 0x12bc]
mov ecx, 0x48fc58
push eax
call fcn.00409700
mov dword [ebp - 0x5768], 0xffffffff
call fcn.00431ec0
test eax, eax
je 0x418fed
nop word [eax + eax]
lea eax, [ebp - 0x5a40]
push eax
call fcn.00431530
add esp, 4
movq xmm0, qword [eax]
movq qword [ebp - 0x57cc], xmm0
mov ecx, dword [ebp - 0x57c8]
mov edi, dword [ebp - 0x57cc]
cmp ecx, 1
jne 0x418044
cmp edi, 0x13
jne 0x418044
xor eax, eax
cmp dword [ebp - 0x579c], eax
sete al
mov dword [ebp - 0x579c], eax
jmp 0x41804a
mov eax, dword [ebp - 0x579c]
test eax, eax
jne 0x418fda
mov esi, dword [ebp - 0x571c]
cmp dword [ebp - 0x5744], eax
je 0x418134
cmp dword [ebp - 0x578c], 1
jle 0x418134
cmp ecx, 1
jne 0x418134
mov eax, dword [esi + 0x39a8]
dec eax
cdq
idiv dword [ebp - 0x578c]
mov ecx, eax
mov eax, dword [esi + 0x7dd8]
dec eax
cdq
idiv dword [ebp - 0x578c]
cmp ecx, eax
mov ecx, dword [ebp - 0x68c]
jle 0x4181b2
xor al, al
mov dword [ebp - 0x66c], 0
movzx eax, al
cmp edi, ecx
mov edx, 1
mov dword [ebp - 0x668], 0
cmove eax, edx
mov dword [ebp - 0x664], 0
cmp edi, dword [ebp - 0x688]
movzx eax, al
cmove eax, edx
cmp edi, dword [ebp - 0x684]
movzx eax, al
cmove eax, edx
cmp edi, dword [ebp - 0x680]
movzx eax, al
cmove eax, edx
cmp edi, dword [ebp - 0x67c]
movzx eax, al
cmove eax, edx
cmp edi, dword [ebp - 0x678]
movzx eax, al
cmove eax, edx
cmp edi, dword [ebp - 0x674]
movzx eax, al
cmove eax, edx
cmp edi, dword [ebp - 0x670]
je 0x418fda
test al, al
jne 0x418fda
jmp 0x4181b2
cmp ecx, 2
jne 0x4181a3
xor esi, esi
nop dword [eax + eax]
cmp dword [ebp + esi - 0x66c], 0
je 0x418196
cmp edi, dword [ebp + esi - 0x68c]
jne 0x418196
cmp edi, dword [ebp - 0x684]
jne 0x41818b
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x644]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 2
call fcn.004107b0
mov dword [ebp + esi - 0x66c], 0
add esi, 4
cmp esi, 0x20
jl 0x418140
jmp 0x418fda
cmp ecx, 1
jne 0x418fda
mov ecx, dword [ebp - 0x68c]
cmp edi, ecx
jne 0x41824a
cmp dword [ebp - 0x66c], 0
jne 0x41824a
push 0xffffffffffffffff
mov ecx, esi
call fcn.0040a070
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x64c]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 1
call fcn.004107b0
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x64c]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 2
call fcn.004107b0
mov esi, dword [ebp - 0x571c]
mov dword [ebp - 0x66c], 1
mov dword [ebp - 0x668], 0
cmp edi, dword [ebp - 0x688]
jne 0x4182e6
cmp dword [ebp - 0x668], 0
jne 0x4182e6
push 1
mov ecx, esi
call fcn.0040a070
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x648]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 1
call fcn.004107b0
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x648]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 2
call fcn.004107b0
mov esi, dword [ebp - 0x571c]
mov dword [ebp - 0x66c], 0
mov dword [ebp - 0x668], 1
cmp edi, dword [ebp - 0x684]
jne 0x41833f
cmp dword [ebp - 0x664], 0
jne 0x41833f
push ecx
mov ecx, esi
call fcn.0040a3e0
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x644]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 1
call fcn.004107b0
mov esi, dword [ebp - 0x571c]
mov dword [ebp - 0x664], 1
cmp edi, dword [ebp - 0x680]
jne 0x4183cd
cmp dword [ebp - 0x660], 0
jne 0x4183cd
push 1
mov ecx, esi
call fcn.0040a730
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x640]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 1
call fcn.004107b0
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x640]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 2
call fcn.004107b0
mov esi, dword [ebp - 0x571c]
mov dword [ebp - 0x660], 1
cmp edi, dword [ebp - 0x67c]
jne 0x41845b
cmp dword [ebp - 0x65c], 0
jne 0x41845b
push 3
mov ecx, esi
call fcn.0040a730
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x63c]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 1
call fcn.004107b0
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x63c]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 2
call fcn.004107b0
mov esi, dword [ebp - 0x571c]
mov dword [ebp - 0x65c], 1
cmp edi, dword [ebp - 0x678]
jne 0x4184fb
cmp dword [ebp - 0x658], 0
jne 0x4184fb
cmp dword [ebp - 0x5778], 1
mov ecx, esi
jne 0x418486
call fcn.0040ad00
jmp 0x41848b
call fcn.0040ab10
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x638]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 1
call fcn.004107b0
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x638]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 2
call fcn.004107b0
mov esi, dword [ebp - 0x571c]
mov dword [ebp - 0x658], 1
cmp edi, dword [ebp - 0x674]
jne 0x418587
cmp dword [ebp - 0x654], 0
jne 0x418587
mov ecx, esi
call fcn.0040aee0
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x634]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 1
call fcn.004107b0
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x634]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 2
call fcn.004107b0
mov esi, dword [ebp - 0x571c]
mov dword [ebp - 0x654], 1
cmp edi, dword [ebp - 0x670]
jne 0x418620
cmp dword [ebp - 0x650], 0
jne 0x418620
cmp byte [0x48f5b8], 0
je 0x418620
mov ecx, esi
call fcn.0040a940
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x630]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 1
call fcn.004107b0
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x630]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 2
call fcn.004107b0
mov esi, dword [ebp - 0x571c]
mov dword [ebp - 0x650], 1
cmp byte [0x48f5ba], 1
jne 0x418765
cmp dword [0x48f5c8], 1
jne 0x418765
cmp dword [esi], 4
je 0x41864c
cmp dword [esi + 0x4430], 4
jne 0x418765
push dword [0x48f5c0]
call fcn.0042f960
push 0
call fcn.004467df
add esp, 8
mov dword [ebp - 0x5790], eax
sub dword [ebp - 0x8fc], 1
jne 0x41867b
lea ecx, [ebp - 0x12bc]
call fcn.00401e10
mov ecx, dword [ebp - 0x8f8]
mov edx, dword [ecx]
mov eax, edx
shr eax, 0xb
add ecx, 4
xor edx, eax
mov dword [ebp - 0x8f8], ecx
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
xor edx, eax
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
xor edi, edi
addsd xmm0, qword [edx*8 + 0x478570]
mulsd xmm0, qword [ebp - 0x59f0]
mulsd xmm0, qword [ebp - 0x59e8]
cvttsd2si edx, xmm0
mov dword [ebp - 0x5748], edx
mov ecx, dword [ebp - 0x571c]
xor eax, eax
imul esi, edi, 0x4430
cmp dword [ebp - 0x58b0], eax
push edx
cmove eax, edi
imul eax, eax, 0xff
lea ecx, [esi + ecx]
xor eax, dword [ebp - 0x5790]
push eax
call fcn.00409f10
add esi, dword [ebp - 0x571c]
lea eax, [ebp - 0x5a00]
push 0
push eax
mov ecx, esi
call fcn.0040ba90
mov ecx, esi
push dword [eax + 4]
push dword [eax]
call fcn.0040bbe0
mov edx, dword [ebp - 0x5748]
inc edi
cmp edi, 2
jl 0x4186e2
cmp dword [ebp - 0x57e4], 0
mov edi, dword [ebp - 0x57cc]
je 0x41875f
lea eax, [ebp - 0x12bc]
push eax
call fcn.00408870
mov ecx, eax
call fcn.00409910
mov esi, dword [ebp - 0x571c]
cmp edi, 8
jne 0x418783
cmp byte [ebp - 0x5725], 0
jne 0x418fda
mov byte [ebp - 0x571d], 1
jmp 0x418fda
cmp edi, 0x71
jne 0x418b25
cmp dword [esi], 4
je 0x4187a7
cmp dword [esi + 0x4430], 4
je 0x4187a7
cmp dword [esi + 0x39a8], 0x14
jg 0x418fda
push 0
mov byte [ebp - 0x5725], 0
call fcn.004467df
mov dword [ebp - 0x5984], eax
lea eax, [ebp - 0x5984]
push eax
mov dword [ebp - 0x5980], edx
call fcn.00446acc
add esp, 4
lea ecx, [ebp - 0x5b70]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x5710], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ebp - 0x5700], xmm0
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x56f0], eax
call fcn.0041c220
push ecx
lea ecx, [ebp - 0x5ad8]
mov byte [ebp - 4], 0x30
call fcn.0041c220
mov byte [ebp - 4], 0x31
lea ecx, [ebp - 0x5ad8]
push dword [ebp - 0x5710]
mov eax, dword [ebp - 0x5700]
push dword [ebp - 0x570c]
inc eax
push dword [ebp - 0x5708]
push dword [ebp - 0x5704]
push eax
push dword [ebp - 0x56fc]
call fcn.0041d280
mov ecx, eax
call fcn.004235c0
mov ecx, eax
call fcn.0041d280
mov ecx, eax
call fcn.004235c0
mov ecx, eax
call fcn.0041d280
mov ecx, eax
call fcn.004235c0
mov ecx, eax
call fcn.0041d280
mov ecx, eax
call fcn.004235c0
mov ecx, eax
call fcn.0041d280
mov ecx, eax
call fcn.004235c0
mov ecx, eax
call fcn.0041d280
lea eax, [ebp - 0x8dc]
push eax
lea ecx, [ebp - 0x5ad8]
call fcn.0041c130
push ecx
lea edx, [ebp - 0x5710]
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0x5a34]
call fcn.00423810
add esp, 4
lea ecx, [ebp - 0x5b70]
mov edx, eax
call fcn.00423830
lea eax, [ebp - 0x8f4]
push eax
lea ecx, [ebp - 0x5b70]
call fcn.0041c130
sub esp, 0x18
mov byte [ebp - 4], 0x33
lea eax, [ebp - 0x8f4]
mov dword [ebp - 0x5770], esp
mov ecx, esp
push eax
call fcn.0041e9e0
sub esp, 0x18
mov byte [ebp - 4], 0x34
lea eax, [ebp - 0x8dc]
mov ecx, esp
push eax
call fcn.0041e9e0
lea ecx, [ebp - 0x8c4]
mov byte [ebp - 4], 0x33
call fcn.004125f0
lea ecx, [ebp - 0x5838]
call fcn.004121f0
mov esi, dword [ebp - 0x5744]
mov edi, dword [ebp - 0x576c]
test esi, esi
je 0x418939
test edi, edi
jle 0x418939
cmp dword [ebp - 0x6d4], 0
jne 0x418939
mov eax, edi
jmp 0x41893b
xor eax, eax
mov ecx, dword [ebp - 0x5734]
push eax
call fcn.0040ce70
test esi, esi
je 0x41895d
test edi, edi
jle 0x41895d
cmp dword [ebp - 0x6d4], 0
jne 0x41895d
lea edx, [edi + 0xa]
jmp 0x41895f
xor edx, edx
mov ecx, dword [ebp - 0x5734]
push edx
lea ecx, [ecx + 0x80]
call fcn.0040ce70
push 0
call fcn.004467df
add esp, 4
mov dword [ebp - 0x5748], eax
lea ecx, [ebp - 0x12bc]
push 0x400
call fcn.00406a90
mov ecx, dword [ebp - 0x57a8]
mov dword [ebp - 0x57a4], ecx
lea ecx, [ebp - 0x57c0]
mov dword [ebp - 0x5790], eax
call fcn.0041c300
lea ecx, [ebp - 0x57b8]
call fcn.0041c300
xor esi, esi
lea eax, [ebp - 0x57c0]
mov dword [ebp - 0x574c], esi
xor edi, edi
mov dword [ebp - 0x5740], eax
nop
mov ecx, dword [ebp - 0x571c]
push dword [ebp - 0x5790]
push dword [ebp - 0x5748]
lea ecx, [esi + ecx]
call fcn.00409f10
mov ecx, dword [ebp - 0x5734]
push dword [ebp - 0x5764]
push dword [ebp - 0x5748]
lea ecx, [edi + ecx]
call fcn.0040d6a0
movsd xmm0, qword [ebp - 0x575c]
sub esp, 8
mov ecx, dword [ebp - 0x5734]
movsd qword [esp], xmm0
push 0
push 0
lea ecx, [edi + ecx]
push 0
call fcn.004107b0
movsd xmm0, qword [ebp - 0x575c]
sub esp, 8
mov ecx, dword [ebp - 0x5734]
movsd qword [esp], xmm0
push 0
push 0
lea ecx, [edi + ecx]
push 3
call fcn.004107b0
movsd xmm0, qword [ebp - 0x575c]
sub esp, 8
mov ecx, dword [ebp - 0x5734]
movsd qword [esp], xmm0
push 0
push 0
lea ecx, [edi + ecx]
push 4
call fcn.004107b0
add esi, dword [ebp - 0x571c]
lea eax, [ebp - 0x59f8]
push 0
push eax
mov ecx, esi
call fcn.0040ba90
mov ecx, esi
push dword [eax + 4]
push dword [eax]
call fcn.0040bbe0
mov eax, dword [ebp - 0x571c]
mov esi, dword [ebp - 0x574c]
add eax, esi
mov ecx, dword [ebp - 0x5740]
inc dword [0x48f5bc]
push eax
call fcn.0041c3b0
add dword [ebp - 0x5740], 8
sub edi, 0xffffff80
add esi, 0x4430
mov dword [ebp - 0x574c], esi
cmp edi, 0x100
jl 0x4189d0
cmp dword [ebp - 0x57e4], 0
je 0x418af0
lea eax, [ebp - 0x12bc]
push eax
call fcn.00408870
mov ecx, eax
call fcn.00409910
lea ecx, [ebp - 0x8f4]
call fcn.0041e920
lea ecx, [ebp - 0x8dc]
call fcn.0041e920
lea ecx, [ebp - 0x5ad8]
call fcn.0041ac30
lea ecx, [ebp - 0x5b70]
mov byte [ebp - 4], 0x28
call fcn.0041ac30
jmp 0x418fda
cmp edi, 0x7a
jne 0x418ed9
cmp dword [ebp - 0x5768], 0xffffffff
jne 0x418fda
cmp byte [ebp - 0x5725], 0
jne 0x418ec9
mov ecx, dword [ebp - 0x5734]
call fcn.0040f550
mov ecx, dword [ebp - 0x5734]
lea ecx, [ecx + 0x80]
call fcn.0040f550
mov ecx, dword [ebp - 0x571c]
movsd xmm7, qword [ebp - 0x575c]
movsd xmm3, qword [ebp - 0x58cc]
mov word [ebp - 0x5784], 0x100
mov esi, dword [ecx + 0x3918]
movd xmm2, esi
cvtdq2pd xmm2, xmm2
test esi, esi
jne 0x418b9a
movaps xmm5, xmm7
jmp 0x418bb1
mov eax, dword [ecx + 0x39a8]
dec eax
movd xmm5, eax
cvtdq2pd xmm5, xmm5
mulsd xmm5, xmm3
divsd xmm5, xmm2
mov edx, dword [ecx + 0x7d48]
movd xmm6, edx
cvtdq2pd xmm6, xmm6
test edx, edx
jne 0x418bcd
movsd qword [ebp - 0x5774], xmm7
jmp 0x418bec
mov eax, dword [ecx + 0x7dd8]
dec eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm3
divsd xmm0, xmm6
movsd qword [ebp - 0x5774], xmm0
movsd xmm1, qword [ebp - 0x597c]
test esi, esi
jne 0x418bfd
movaps xmm4, xmm7
jmp 0x418c11
movd xmm4, dword [ecx + 0x39d0]
cvtdq2pd xmm4, xmm4
mulsd xmm4, xmm1
divsd xmm4, xmm2
mov eax, dword [ecx + 0x7e00]
mov dword [ebp - 0x5748], eax
test edx, edx
jne 0x418c2b
movsd qword [ebp - 0x573c], xmm7
jmp 0x418c43
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
divsd xmm0, xmm6
movsd qword [ebp - 0x573c], xmm0
mov eax, dword [ecx + 0x39a8]
mov edi, 1
dec eax
cmp eax, edi
cmovge edi, eax
test esi, esi
jne 0x418c5d
movaps xmm1, xmm7
jmp 0x418c6d
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm3
divsd xmm1, xmm2
mov eax, dword [ecx + 0x39d0]
add eax, dword [ecx + 0x3908]
movd xmm0, edi
cvtdq2pd xmm0, xmm0
movd xmm3, eax
cvtdq2pd xmm3, xmm3
mov eax, dword [ecx + 0x7dd8]
dec eax
cmp eax, 1
mov edi, eax
cmovl edi, dword [ebp - 0x58b4]
divsd xmm3, xmm0
mulsd xmm3, xmm1
mulsd xmm3, qword [ebp - 0x5974]
test edx, edx
jne 0x418cb5
movaps xmm2, xmm7
jmp 0x418cc9
movd xmm2, eax
cvtdq2pd xmm2, xmm2
mulsd xmm2, qword [ebp - 0x58cc]
divsd xmm2, xmm6
mov eax, dword [ecx + 0x7d38]
sub esp, 8
add eax, dword [ebp - 0x5748]
movd xmm0, edi
cvtdq2pd xmm0, xmm0
mov ecx, dword [ebp - 0x5734]
movd xmm1, eax
lea eax, [esi + 1]
cvtdq2pd xmm1, xmm1
movsd qword [esp], xmm3
movaps xmm3, xmm5
divsd xmm1, xmm0
push eax
mulsd xmm1, xmm2
movaps xmm2, xmm4
mulsd xmm1, qword [ebp - 0x5974]
movsd qword [ebp - 0x5794], xmm1
call fcn.0040d4b0
mov edx, dword [ebp - 0x571c]
sub esp, 8
mov ecx, dword [ebp - 0x5734]
movsd xmm0, qword [ebp - 0x5794]
movsd xmm3, qword [ebp - 0x5774]
mov eax, dword [edx + 0x7d48]
movsd xmm2, qword [ebp - 0x573c]
lea ecx, [ecx + 0x80]
inc eax
movsd qword [esp], xmm0
push eax
call fcn.0040d4b0
mov eax, dword [ebp - 0x571c]
mov ecx, dword [ebp - 0x5734]
push 0
cmp dword [eax + 0x4430], 4
je 0x418dd1
call fcn.0040d3f0
mov ecx, dword [ebp - 0x5734]
push 1
lea ecx, [ecx + 0x80]
call fcn.0040d3f0
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x5784]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
mov eax, dword [eax + 0x3918]
inc eax
push eax
push 7
call fcn.004107b0
mov ecx, dword [ebp - 0x571c]
mov edx, dword [ebp - 0x5734]
sub edx, 0xffffff80
mov eax, dword [ecx + 0x7d48]
jmp 0x418e33
lea ecx, [ecx + 0x80]
call fcn.0040d3f0
mov ecx, dword [ebp - 0x5734]
push 1
call fcn.0040d3f0
mov edx, dword [ebp - 0x571c]
lea eax, [ebp - 0x5784]
movsd xmm0, qword [ebp - 0x575c]
sub esp, 8
mov ecx, dword [ebp - 0x5734]
movsd qword [esp], xmm0
push eax
mov eax, dword [edx + 0x7d48]
lea ecx, [ecx + 0x80]
inc eax
push eax
push 7
call fcn.004107b0
mov eax, dword [ebp - 0x571c]
mov edx, dword [ebp - 0x5734]
mov eax, dword [eax + 0x3918]
movsd xmm0, qword [ebp - 0x575c]
lea ecx, [ebp - 0x5783]
sub esp, 8
inc eax
movsd qword [esp], xmm0
push ecx
push eax
push 7
mov ecx, edx
call fcn.004107b0
lea ecx, [ebp - 0x5838]
call fcn.004121f0
sub esp, 0x80
mov ecx, esp
push dword [ebp - 0x5734]
call fcn.0041acc0
lea ecx, [ebp - 0x5838]
call fcn.00412130
mov eax, dword [ebp - 0x5734]
sub esp, 0x80
sub eax, 0xffffff80
mov ecx, esp
push eax
call fcn.0041acc0
lea ecx, [ebp - 0x5838]
call fcn.00412130
sub esp, 0x10
lea eax, [ebp - 0x5838]
mov ecx, esp
mov dword [ebp - 0x5770], ecx
push eax
call fcn.0041dcb0
lea ecx, [ebp - 0x8c4]
call fcn.00412fe0
mov byte [ebp - 0x5725], 1
lea ecx, [ebp - 0x8c4]
call fcn.00412740
jmp 0x418fda
cmp edi, 0x7b
jne 0x418f0a
lea ecx, [ebp - 0x68c]
call fcn.00414a70
xorps xmm0, xmm0
mov dword [ebp - 0x654], 0
movups xmmword [ebp - 0x66c], xmm0
movq qword [ebp - 0x65c], xmm0
jmp 0x418fda
cmp edi, 0x72
jne 0x418f22
cmp byte [ebp - 0x575d], 0
sete byte [ebp - 0x575d]
jmp 0x418fda
cmp edi, 0x73
jne 0x418f3c
cmp byte [ebp - 0x57e0], 0
sete al
mov byte [ebp - 0x57e0], al
jmp 0x418fda
cmp edi, 0x74
je 0x418f4c
cmp edi, 0x75
jne 0x418fda
jmp 0x418f65
call fcn.00408870
movss xmm1, dword [0x47813c]
mov ecx, eax
call fcn.00409b90
cmp edi, 0x75
jne 0x418f79
call fcn.00408870
movss xmm1, dword [0x478060]
mov ecx, eax
call fcn.00409b90
call fcn.00408870
movss xmm0, dword [eax + 0xdc0]
mulss xmm0, dword [0x478138]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [ebp - 0x59d8]
cvttsd2si eax, xmm0
push eax
push str._d___
lea eax, [ebp - 0x60]
push 0x40
push eax
call fcn.004062a0
add esp, 0x10
lea ecx, [ebp - 0x884]
push str.set_volume_
call fcn.0041e8f0
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x884]
call fcn.0041e880
mov dword [ebp - 0x5798], 0xf0
call fcn.00431ec0
test eax, eax
jne 0x418000
mov esi, dword [ebp - 0x5754]
cmp dword [ebp - 0x579c], 0
je 0x41900b
inc esi
mov dword [ebp - 0x5754], esi
cmp esi, 1
jl 0x417f10
jmp 0x419fba
xor esi, esi
nop dword [eax]
mov edi, dword [ebp + esi*4 - 0x66c]
test edi, edi
jle 0x419316
inc edi
mov dword [ebp + esi*4 - 0x66c], edi
cmp esi, 2
jne 0x419035
add edi, 9
mov dword [ebp - 0x664], edi
cmp dword [ebp - 0x58b8], 0
je 0x419047
cmp esi, 2
je 0x419325
mov ecx, dword [ebp - 0x57d0]
test ecx, ecx
jne 0x4192e1
mov eax, dword [ebp - 0x57dc]
inc eax
cmp edi, eax
jle 0x4192e1
test esi, esi
jne 0x4190f8
mov ecx, dword [ebp - 0x571c]
push 0xffffffffffffffff
call fcn.0040a070
test al, al
je 0x419316
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x64c]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 1
call fcn.004107b0
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x64c]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 2
call fcn.004107b0
mov ecx, dword [ebp - 0x571c]
push 0xffffffffffffffff
call fcn.0040a070
test al, al
jne 0x419081
inc esi
jmp 0x419010
cmp esi, 1
jne 0x419197
mov ecx, dword [ebp - 0x571c]
push esi
call fcn.0040a070
test al, al
je 0x419316
nop word [eax + eax]
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x648]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 1
call fcn.004107b0
movsd xmm0, qword [ebp - 0x575c]
lea eax, [ebp - 0x648]
mov ecx, dword [ebp - 0x5734]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x571c]
push dword [eax + 0x3914]
push 2
call fcn.004107b0
mov ecx, dword [ebp - 0x571c]
push 1
call fcn.0040a070
test al, al
jne 0x419120
inc esi
jmp 0x419010
cmp esi, 2
jne 0x419316
push ecx
mov ecx, dword [ebp - 0x571c]
call fcn.0040a540
xor esi, esi
mov dword [ebp - 0x5748], 0xffffffff
mov dword [ebp - 0x5724], esi
nop
mov ecx, dword [ebp - 0x5804]
test ecx, ecx
je 0x4193f5
mov eax, dword [ebp - 0x57a8]
cmp eax, dword [ebp - 0x57a4]
je 0x4193f5
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
divsd xmm0, qword [ebp - 0x59e0]
movsd qword [ebp - 0x573c], xmm0
call fcn.0042fd40
mov eax, dword [ebp - 0x57a8]
fsub qword [eax]
fstp qword [ebp - 0x5774]
movsd xmm0, qword [ebp - 0x5774]
comisd xmm0, xmmword [ebp - 0x573c]
jb 0x4193ef
movups xmm0, xmmword [eax]
xor esi, esi
mov dword [ebp - 0x5754], 0
xor edi, edi
movups xmmword [ebp - 0x89c], xmm0
movq xmm0, qword [eax + 0x10]
mov eax, esi
movq qword [ebp - 0x88c], xmm0
nop dword [eax + eax]
cmp dword [ebp - 0x894], eax
je 0x4193a9
cmp dword [ebp - 0x5800], 0
je 0x41936f
mov eax, dword [ebp - 0x571c]
lea ecx, [ebp - 0x890]
push ecx
lea ecx, [eax + 0x39ac]
add ecx, esi
call fcn.0041e720
imul eax, dword [ebp - 0x5724], 0x4430
mov ecx, dword [ebp - 0x571c]
add eax, 0x3914
add eax, ecx
add ecx, 0x39b8
push eax
add ecx, esi
call fcn.0041e810
mov edx, dword [ebp - 0x571c]
lea eax, [ebp - 0x890]
movsd xmm0, qword [ebp - 0x575c]
sub esp, 8
mov ecx, dword [ebp - 0x5734]
movsd qword [esp], xmm0
push eax
push dword [esi + edx + 0x3914]
lea ecx, [edi + ecx]
push 5
call fcn.004107b0
jmp 0x419389
mov eax, dword [ebp - 0x57dc]
add eax, 2
add eax, ecx
cmp edi, eax
jle 0x419316
test esi, esi
jne 0x4192f8
push 0xffffffffffffffff
jmp 0x4192fe
cmp esi, 1
jne 0x419309
push esi
mov ecx, dword [ebp - 0x571c]
call fcn.00407ae0
sub edi, dword [ebp - 0x57d0]
mov dword [ebp + esi*4 - 0x66c], edi
inc esi
cmp esi, 3
jl 0x419010
jmp 0x4191ac
mov esi, dword [ebp - 0x58bc]
inc esi
lea esi, [esi + esi*4]
add esi, esi
cmp edi, esi
jle 0x4191ac
nop dword [eax]
push ecx
mov ecx, dword [ebp - 0x571c]
call fcn.0040a3e0
test al, al
mov eax, dword [ebp - 0x57d4]
jne 0x41935e
test eax, eax
jle 0x4191ac
sub edi, eax
mov dword [ebp - 0x664], edi
cmp edi, esi
jg 0x419340
jmp 0x4191ac
mov ecx, dword [ebp - 0x571c]
push dword [ebp - 0x88c]
push dword [ebp - 0x890]
lea ecx, [esi + ecx]
call fcn.0040bbe0
cmp dword [ebp - 0x5744], 0
je 0x4193a3
mov eax, dword [ebp - 0x571c]
mov dword [esi + eax + 0x39a4], 2
mov eax, dword [ebp - 0x5754]
inc eax
sub edi, 0xffffff80
add esi, 0x4430
mov dword [ebp - 0x5754], eax
cmp edi, 0x100
jl 0x419250
push dword [ebp - 0x57a8]
lea eax, [ebp - 0x5770]
push eax
lea ecx, [ebp - 0x57a8]
call fcn.0041c550
mov eax, dword [ebp - 0x57a8]
cmp eax, dword [ebp - 0x57a4]
jne 0x4191f8
mov esi, dword [ebp - 0x5724]
mov ecx, dword [ebp - 0x571c]
imul edi, esi, 0x4430
mov dword [ebp - 0x5790], edi
lea ecx, [edi + ecx]
call fcn.0040bc60
test al, al
je 0x4199fa
mov eax, dword [ebp - 0x571c]
mov dword [edi + eax + 0x39a4], 1
mov eax, dword [ebp - 0x571c]
inc dword [edi + eax + 0x39a8]
cmp byte [ebp + esi - 0x5788], 0
je 0x419486
mov eax, dword [ebp - 0x571c]
lea edx, [ebp - 0x644]
movsd xmm0, qword [ebp - 0x575c]
sub esp, 8
mov ecx, esi
shl ecx, 7
add ecx, dword [ebp - 0x5734]
movsd qword [esp], xmm0
push edx
push dword [edi + eax + 0x3914]
push 2
call fcn.004107b0
cmp esi, 2
jae 0x41ab2d
mov byte [ebp + esi - 0x5788], 0
mov eax, dword [ebp - 0x571c]
mov ecx, dword [edi + eax + 0x3904]
mov esi, dword [edi + eax + 0x390c]
add dword [edi + eax + 0x39cc], ecx
mov eax, dword [ebp - 0x571c]
mov dword [ebp - 0x5770], ecx
mov dword [ebp - 0x5754], esi
mov dword [edi + eax + 0x3904], 0
mov eax, dword [ebp - 0x571c]
mov dword [edi + eax + 0x390c], 0
mov ecx, dword [ebp - 0x571c]
lea ecx, [edi + ecx]
call fcn.0040b010
test esi, esi
jle 0x419825
mov eax, dword [ebp - 0x571c]
add dword [edi + eax + 0x39d0], esi
cmp dword [ebp - 0x58c0], 0
je 0x419612
nop
mov eax, dword [ebp - 0x571c]
mov ecx, dword [edi + eax + 0x39ac]
cmp ecx, dword [edi + eax + 0x39b0]
je 0x4195b0
mov eax, dword [ecx]
mov edx, esi
cmp esi, eax
cmovge edx, eax
sub eax, edx
sub esi, edx
mov dword [ecx], eax
mov eax, dword [ebp - 0x5748]
mov dword [ebp - 0x5754], esi
cmp eax, dword [ebp - 0x5724]
jne 0x41955b
mov ecx, dword [ebp - 0x571c]
mov eax, dword [edi + ecx + 0x39b8]
mov eax, dword [eax]
cmp eax, dword [edi + ecx + 0x3914]
jne 0x41955b
sub dword [ebp - 0x57ec], edx
mov ecx, dword [ebp - 0x571c]
add ecx, 0x39ac
add ecx, edi
mov eax, dword [ecx]
cmp dword [eax], 0
jg 0x419599
push eax
lea eax, [ebp - 0x5738]
push eax
call fcn.0041e6a0
mov ecx, dword [ebp - 0x571c]
lea eax, [ebp - 0x574c]
add ecx, 0x39b8
add ecx, edi
push dword [ecx]
push eax
call fcn.0041e7e0
test esi, esi
jg 0x419500
jmp 0x419825
mov eax, dword [ebp - 0x57a8]
mov ecx, esi
mov edx, dword [ebp - 0x5724]
cmp eax, dword [ebp - 0x57a4]
je 0x419618
cmp dword [eax + 8], edx
je 0x419600
mov ecx, dword [eax + 0xc]
cmp esi, ecx
jle 0x4195f6
push eax
sub esi, ecx
lea eax, [ebp - 0x5738]
push eax
lea ecx, [ebp - 0x57a8]
mov dword [ebp - 0x5754], esi
call fcn.0041c550
test esi, esi
jg 0x4195b0
jmp 0x419825
sub ecx, esi
mov dword [eax + 0xc], ecx
jmp 0x419825
mov esi, ecx
mov dword [ebp - 0x5754], esi
test ecx, ecx
jle 0x419825
jmp 0x419618
mov edx, dword [ebp - 0x5724]
cmp dword [ebp - 0x5804], 0
je 0x419665
call fcn.0042fd40
mov ecx, dword [ebp - 0x571c]
mov eax, dword [ebp - 0x5724]
mov dword [ebp - 0x58dc], eax
lea eax, [ebp - 0x58d8]
push esi
lea ecx, [edi + ecx]
push eax
fstp qword [ebp - 0x58e4]
call fcn.0040ba90
lea eax, [ebp - 0x58e4]
push eax
lea ecx, [ebp - 0x57a8]
call fcn.0041c580
jmp 0x419825
xor ecx, ecx
mov dword [ebp - 0x5740], ecx
nop dword [eax]
cmp edx, ecx
je 0x419815
push dword [ebp - 0x5754]
imul edx, ecx, 0x4430
cmp dword [ebp - 0x5800], 0
mov dword [ebp - 0x574c], edx
je 0x4197c5
mov esi, dword [ebp - 0x571c]
lea eax, [ebp - 0x5a20]
push eax
lea ecx, [edi + esi]
call fcn.0040ba90
mov ecx, dword [ebp - 0x574c]
add esi, 0x39ac
push eax
add ecx, esi
call fcn.0041e720
mov ecx, dword [ebp - 0x571c]
mov esi, dword [ebp - 0x574c]
lea eax, [ecx + 0x3914]
add ecx, 0x39b8
add eax, edi
add ecx, esi
push eax
call fcn.0041e810
mov edx, dword [ebp - 0x571c]
lea eax, [esi + 0x39ac]
add eax, edx
cmp dword [ebp - 0x5744], 0
mov dword [ebp - 0x574c], eax
mov ecx, dword [eax + 4]
mov eax, dword [ecx - 8]
mov ecx, dword [ecx - 4]
mov dword [ebp - 0x57e8], ecx
mov ecx, dword [ebp - 0x5740]
mov dword [ebp - 0x57ec], eax
mov dword [ebp - 0x5748], ecx
je 0x419796
cmp dword [ebp - 0x576c], 0
jle 0x419796
cmp dword [ebp - 0x6d4], 0
jne 0x419796
test ecx, ecx
jne 0x419796
mov eax, dword [ebp - 0x57c0]
mov eax, dword [eax + 4]
mov dword [ebp - 0x5738], eax
mov eax, dword [eax + 0x39b0]
cmp eax, dword [edx + 0x39a8]
jne 0x419796
mov ecx, dword [ebp - 0x5738]
push dword [ebp - 0x574c]
add ecx, 0x39b4
call fcn.0041e6d0
mov eax, dword [ebp - 0x571c]
add eax, 0x39b8
push eax
mov eax, dword [ebp - 0x57c0]
mov ecx, dword [eax + 4]
add ecx, 0x39c0
call fcn.00405450
mov edx, dword [ebp - 0x571c]
mov ecx, dword [ebp - 0x5740]
mov eax, dword [ebp - 0x5754]
add dword [edi + edx + 0x39d4], eax
cmp dword [ebp - 0x5744], 0
mov edx, dword [ebp - 0x5724]
je 0x419815
mov eax, dword [ebp - 0x571c]
mov dword [eax + esi + 0x39a4], 2
jmp 0x419815
mov eax, dword [ebp - 0x571c]
lea ecx, [edi + eax]
lea esi, [eax + edx]
lea eax, [ebp - 0x5a18]
push eax
call fcn.0040ba90
mov ecx, esi
push dword [eax + 4]
push dword [eax]
call fcn.0040bbe0
cmp dword [ebp - 0x5744], 0
mov edx, dword [ebp - 0x5724]
je 0x41980f
mov eax, dword [ebp - 0x571c]
mov ecx, dword [ebp - 0x574c]
mov dword [eax + ecx + 0x39a4], 2
mov ecx, dword [ebp - 0x5740]
inc ecx
mov dword [ebp - 0x5740], ecx
cmp ecx, 2
jl 0x419670
cmp dword [ebp - 0x58c4], 0
je 0x41983b
cmp dword [ebp - 0x5770], 0
jne 0x4199f4
mov eax, dword [ebp - 0x5764]
mov esi, eax
mov ecx, dword [ebp - 0x571c]
test eax, eax
mov eax, 0xffffffff
cmove esi, eax
mov dword [ebp - 0x574c], esi
mov eax, dword [edi + ecx + 0x39ac]
cmp eax, dword [edi + ecx + 0x39b0]
je 0x4199f4
nop dword [eax]
mov ecx, dword [ebp - 0x571c]
add ecx, edi
mov eax, dword [ecx + 0x39b8]
mov eax, dword [eax]
cmp eax, dword [ecx + 0x3914]
jge 0x4199f4
test esi, esi
je 0x4199f4
cmp esi, 0xffffffff
je 0x4198bf
mov eax, dword [ecx + 0x39ac]
mov edx, dword [eax]
push dword [eax + 4]
cmp esi, edx
jl 0x4199df
sub esi, edx
push edx
mov dword [ebp - 0x574c], esi
call fcn.0040bbe0
jmp 0x41998b
mov eax, dword [ebp - 0x5750]
test eax, eax
jne 0x4198de
mov eax, dword [ecx + 0x39ac]
push dword [eax + 4]
push dword [eax]
call fcn.0040bbe0
jmp 0x41998b
cmp eax, 1
mov eax, dword [ecx + 0x39ac]
mov eax, dword [eax]
mov dword [ebp - 0x5740], eax
jne 0x419948
test eax, eax
jle 0x41998b
nop dword [eax]
mov esi, dword [ebp - 0x571c]
add esi, edi
mov ecx, esi
cmp eax, 2
jb 0x419919
push 2
lea eax, [ebp - 0x5a10]
jmp 0x419921
push 1
lea eax, [ebp - 0x5a28]
push eax
call fcn.0040ba90
mov ecx, esi
push dword [eax + 4]
push dword [eax]
call fcn.0040bbe0
mov eax, dword [ebp - 0x5740]
sub eax, 2
mov dword [ebp - 0x5740], eax
test eax, eax
jg 0x419900
jmp 0x419985
test eax, eax
jle 0x41998b
nop dword [eax]
mov esi, dword [ebp - 0x571c]
lea eax, [ebp - 0x5a08]
push 1
add esi, edi
push eax
mov ecx, esi
call fcn.0040ba90
mov ecx, esi
push dword [eax + 4]
push dword [eax]
call fcn.0040bbe0
mov eax, dword [ebp - 0x5740]
dec eax
mov dword [ebp - 0x5740], eax
test eax, eax
jg 0x419950
mov esi, dword [ebp - 0x574c]
mov ecx, dword [ebp - 0x571c]
lea eax, [ebp - 0x5770]
add ecx, 0x39ac
add ecx, edi
push dword [ecx]
push eax
call fcn.0041e6a0
mov ecx, dword [ebp - 0x571c]
lea eax, [ebp - 0x5738]
add ecx, 0x39b8
add ecx, edi
push dword [ecx]
push eax
call fcn.0041e7e0
mov ecx, dword [ebp - 0x571c]
mov eax, dword [edi + ecx + 0x39ac]
cmp eax, dword [edi + ecx + 0x39b0]
jne 0x419870
jmp 0x4199f4
push esi
call fcn.0040bbe0
mov eax, dword [ebp - 0x571c]
mov eax, dword [edi + eax + 0x39ac]
sub dword [eax], esi
mov esi, dword [ebp - 0x5724]
cmp dword [ebp - 0x5744], 0
je 0x419abd
cmp dword [ebp - 0x576c], 0
jle 0x419abd
cmp dword [ebp - 0x6d4], 0
jne 0x419abd
mov edx, dword [ebp - 0x571c]
lea eax, [ebp - 0x57c0]
lea esi, [eax + esi*8]
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov eax, dword [edi + edx + 0x39a8]
cmp eax, dword [ecx + 0x39b0]
jle 0x419ab7
mov ecx, dword [ebp - 0x5724]
mov eax, dword [ebp + ecx*4 - 0x596c]
mov dword [ebp - 0x5770], eax
cmp dword [ebp + ecx*8 - 0x57bc], eax
jbe 0x419a7e
mov edi, eax
mov ecx, esi
call fcn.0041c460
mov eax, dword [ebp - 0x5724]
cmp dword [ebp + eax*8 - 0x57bc], edi
ja 0x419a62
mov edi, dword [ebp - 0x5790]
mov eax, dword [ebp - 0x571c]
mov ecx, esi
add eax, edi
push eax
call fcn.0041c3b0
mov esi, dword [ebp - 0x5724]
mov ecx, esi
mov eax, dword [ebp - 0x5734]
shl ecx, 7
mov eax, dword [ecx + eax + 0x70]
mov eax, dword [eax + 4]
mov byte [eax + 0x10], 1
add ecx, dword [ebp - 0x5734]
call fcn.0040f340
jmp 0x419abd
mov esi, dword [ebp - 0x5724]
mov eax, dword [ebp - 0x571c]
cmp dword [edi + eax + 0x39a4], 0
je 0x419ddb
cmp dword [edi + eax + 0x398c], 0xffffffff
jne 0x419ddb
lea ecx, [esi + esi*8]
shl ecx, 2
mov dword [ebp - 0x5738], ecx
cmp dword [ebp + ecx - 0x6d4], 0
je 0x419dca
cmp dword [edi + eax], 4
je 0x419dca
mov dword [ebp - 0x5844], 0
mov dword [ebp - 0x5840], 0
mov dword [ebp - 0x583c], 0
mov byte [ebp - 4], 0x36
xor esi, esi
nop word [eax + eax]
mov eax, dword [ebp - 0x571c]
lea ecx, [ebp - 0x5844]
add eax, 0x2af0
add eax, edi
add eax, esi
push eax
call fcn.0041ba50
add esi, 0x1c
cmp esi, 0x380
jl 0x419b30
call dword [ebp - 0x57ac]
mov esi, dword [ebp - 0x571c]
xor ecx, ecx
mov dword [ebp - 0x5740], 0
mov eax, dword [edi + esi + 0x39b0]
mov edx, dword [edi + esi + 0x39ac]
sub eax, edx
sar eax, 3
test eax, eax
je 0x419bb7
mov eax, dword [edi + esi + 0x39b0]
mov esi, ecx
mov dword [ebp - 0x5770], eax
mov edi, eax
add esi, dword [edx + ecx*8]
mov eax, edi
sub eax, edx
inc ecx
sar eax, 3
cmp ecx, eax
jb 0x419b96
mov edi, dword [ebp - 0x5790]
mov dword [ebp - 0x5740], esi
mov esi, dword [ebp - 0x571c]
cmp dword [ebp - 0x5724], 1
mov edx, dword [ebp - 0x5738]
mov edx, dword [ebp + edx - 0x6d0]
jne 0x419c0b
cmp dword [ebp - 0x578c], 1
jne 0x419c0b
cmp dword [ebp - 0x5744], 0
je 0x419c0b
cmp edx, 9
jle 0x419c0b
mov eax, dword [esi + 0x7dd8]
imul eax, dword [ebp - 0x6cc]
mov ecx, dword [esi + 0x39a8]
imul ecx, dword [ebp - 0x6a8]
sub ecx, eax
mov eax, 9
cmp ecx, 2
cmovg edx, eax
push dword [ebp - 0x5724]
mov al, byte [edi + esi + 0x3968]
mov ecx, dword [edi + esi + 0x399c]
mov byte [ebp - 0x57b0], al
lea eax, [esi + 0x3990]
lea eax, [eax + edi]
movups xmm0, xmmword [edi + esi + 0xac0]
push edx
push eax
lea eax, [ebp - 0x5844]
push dword [ebp - 0x57f8]
push dword [ebp - 0x5740]
push dword [ebp - 0x57b0]
push eax
mov eax, dword [edi + esi + 0xad8]
push dword [edi + esi + 0x2ae4]
push dword [edi + esi + 0x2ae0]
test ecx, ecx
je 0x419cb7
sub esp, 0x1c
mov edx, esp
push dword [edi + esi + 0x2adc]
movups xmmword [edx], xmm0
movq xmm0, qword [edi + esi + 0xad0]
movq qword [edx + 0x10], xmm0
mov dword [edx + 0x18], eax
lea eax, [esi + 0x9d0]
add eax, edi
lea edx, [esi + 0x398c]
push eax
lea eax, [esi + 0x43b4]
add edx, edi
add eax, edi
push eax
push edx
lea edx, [esi + 0x396c]
add edx, edi
call fcn.0042c7d0
add esp, 0x50
jmp 0x419d01
sub esp, 0x1c
lea edx, [esi + 0x398c]
mov ecx, esp
add edx, edi
push dword [edi + esi + 0x2adc]
movups xmmword [ecx], xmm0
movq xmm0, qword [edi + esi + 0xad0]
movq qword [ecx + 0x10], xmm0
mov dword [ecx + 0x18], eax
lea eax, [esi + 0x9d0]
add eax, edi
lea ecx, [esi + 0x396c]
push eax
lea eax, [esi + 0x43b4]
add ecx, edi
add eax, edi
push eax
call fcn.0042c220
add esp, 0x4c
call dword [ebp - 0x57ac]
cmp dword [ebp - 0x5744], 0
je 0x419d75
cmp dword [ebp - 0x6d4], 0
jne 0x419d75
cmp dword [ebp - 0x578c], 1
mov esi, dword [ebp - 0x571c]
jne 0x419d55
mov ecx, dword [edi + esi + 0x39a8]
mov eax, dword [esi + 0x39a8]
imul ecx, dword [ebp - 0x6cc]
imul eax, dword [ebp - 0x6a8]
sub eax, ecx
cmp eax, 1
jle 0x419d55
mov ecx, dword [ebp - 0x57fc]
shr ecx, 2
jmp 0x419d5b
mov ecx, dword [ebp - 0x57fc]
mov eax, 0xaaaaaaab
mov dword [ebp - 0x57d8], ecx
mul ecx
shr edx, 1
add edx, ecx
mov dword [edi + esi + 0x3994], edx
jmp 0x419d88
mov eax, dword [ebp - 0x571c]
mov ecx, dword [ebp - 0x57f0]
mov dword [edi + eax + 0x3994], ecx
mov edx, dword [ebp - 0x571c]
cmp dword [edi + edx + 0x39a4], 2
jne 0x419db5
mov ecx, dword [edi + edx + 0x3994]
mov eax, 0
sub ecx, dword [edi + edx + 0x39e8]
cmovns eax, ecx
mov dword [edi + edx + 0x3994], eax
lea ecx, [ebp - 0x5844]
mov byte [ebp - 4], 0x28
call fcn.0041ba90
mov esi, dword [ebp - 0x5724]
mov eax, dword [ebp - 0x571c]
mov dword [edi + eax + 0x39a4], 0
inc esi
mov dword [ebp - 0x5724], esi
cmp esi, 2
jl 0x4191c0
mov edx, dword [ebp - 0x5748]
cmp edx, 0xffffffff
je 0x419e99
mov ecx, dword [ebp - 0x57ec]
test ecx, ecx
jle 0x419e99
cmp dword [ebp - 0x5744], 0
je 0x419e5e
cmp dword [ebp - 0x576c], 0
jle 0x419e5e
cmp dword [ebp - 0x6d4], 0
jne 0x419e5e
test edx, edx
jne 0x419e5e
mov eax, dword [ebp - 0x57c0]
mov esi, dword [ebp - 0x571c]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x39b0]
cmp eax, dword [esi + 0x39a8]
jne 0x419e5e
push dword [ebp - 0x57e8]
push ecx
push dword [esi + 0x3914]
mov ecx, dword [ebp - 0x5734]
call fcn.0040f5d0
jmp 0x419e99
movsd xmm0, qword [ebp - 0x575c]
lea ecx, [ebp - 0x57ec]
imul eax, edx, 0x4430
sub esp, 8
shl edx, 7
add edx, dword [ebp - 0x5734]
movsd qword [esp], xmm0
add eax, dword [ebp - 0x571c]
push ecx
mov ecx, edx
push dword [eax + 0x3914]
push 5
call fcn.004107b0
xor edi, edi
mov dword [ebp - 0x5748], edi
mov eax, dword [ebp - 0x571c]
cmp dword [edi + eax], 4
je 0x419f07
mov esi, dword [edi + eax + 0x39ac]
xor edx, edx
mov eax, dword [edi + eax + 0x39b0]
xor ecx, ecx
sub eax, esi
sar eax, 3
test eax, eax
je 0x419f07
mov eax, dword [ebp - 0x571c]
mov eax, dword [edi + eax + 0x39b0]
mov edi, eax
mov dword [ebp - 0x5770], eax
nop dword [eax]
add edx, dword [esi + ecx*8]
mov eax, edi
sub eax, esi
inc ecx
sar eax, 3
cmp ecx, eax
jb 0x419ee0
mov edi, dword [ebp - 0x5748]
cmp edx, 0x64
jl 0x419f07
mov eax, dword [ebp - 0x571c]
mov dword [edi + eax], 4
add edi, 0x4430
mov dword [ebp - 0x5748], edi
cmp edi, 0x8860
jl 0x419ea1
xor esi, esi
mov dword [ebp - 0x5724], esi
mov ecx, dword [ebp - 0x571c]
imul edi, esi, 0x4430
mov eax, dword [ecx + edi + 0x3994]
test eax, eax
jle 0x419f42
dec eax
mov dword [ecx + edi + 0x3994], eax
test esi, esi
je 0x419f55
mov eax, dword [ebp - 0x571c]
cmp dword [eax + 0x39a8], 1
je 0x419faa
cmp dword [ebp - 0x5744], 0
je 0x41a2e4
test esi, esi
mov esi, dword [ebp - 0x571c]
mov eax, dword [esi + 0x7dd8]
jne 0x41a2b4
dec eax
imul eax, dword [ebp - 0x6cc]
cdq
idiv dword [ebp - 0x578c]
mov ecx, eax
mov eax, dword [esi + 0x39a8]
dec eax
imul eax, dword [ebp - 0x6a8]
cdq
idiv dword [ebp - 0x578c]
cmp eax, ecx
jle 0x41a300
mov esi, dword [ebp - 0x5724]
inc esi
mov dword [ebp - 0x5724], esi
cmp esi, 2
jl 0x419f23
push 0
call fcn.0042f580
add esp, 4
cmp dword [ebp - 0x5744], 0
je 0x41a122
cmp dword [ebp - 0x576c], 0
jle 0x41a122
cmp dword [ebp - 0x6d4], 0
jne 0x41a122
cmp byte [ebp - 0x571d], 0
je 0x41a122
cmp dword [ebp - 0x57bc], 1
jbe 0x41a122
lea ecx, [ebp - 0x57c0]
mov dword [ebp - 0x5768], 0
call fcn.0041c360
mov ecx, dword [ebp - 0x5734]
call fcn.00410750
mov eax, dword [ebp - 0x57c0]
lea ecx, [ebp - 0x56ec]
mov eax, dword [eax + 4]
add eax, 8
push eax
call fcn.0041aeb0
mov byte [ebp - 4], 0x37
mov eax, dword [ebp - 0x57b8]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x39b0]
cmp eax, dword [ebp - 0x1d44]
jle 0x41a093
nop dword [eax + eax]
lea ecx, [ebp - 0x57b8]
call fcn.0041c360
mov ecx, dword [ebp - 0x5734]
lea ecx, [ecx + 0x80]
call fcn.00410750
mov eax, dword [ebp - 0x57b8]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x39b0]
cmp eax, dword [ebp - 0x1d44]
jg 0x41a060
mov ecx, dword [ebp - 0x571c]
lea eax, [ebp - 0x56ec]
push eax
call fcn.0041b5d0
mov edx, dword [ebp - 0x57b8]
mov eax, dword [edx + 4]
mov eax, dword [eax + 0x39b0]
cmp eax, dword [ebp - 0x1d44]
jne 0x41a101
mov ecx, dword [ebp - 0x571c]
cmp dword [ecx + 0x7dbc], 0xffffffff
je 0x41a0ef
nop dword [eax + eax]
push 1
call fcn.0042f960
mov ecx, dword [ebp - 0x571c]
add esp, 4
cmp dword [ecx + 0x7dbc], 0xffffffff
jne 0x41a0d0
mov edx, dword [ebp - 0x57b8]
mov eax, dword [edx + 4]
add ecx, 0x4430
add eax, 8
push eax
call fcn.0041b5d0
mov ecx, dword [ebp - 0x571c]
mov eax, dword [ecx + 0x3914]
mov dword [ecx + 0x7d44], eax
lea ecx, [ebp - 0x56ec]
mov byte [ebp - 4], 0x28
call fcn.0041b400
xor esi, esi
mov ecx, dword [ebp - 0x571c]
push dword [ebp - 0x5764]
mov dl, byte [ebp - 0x575d]
push dword [ebp - 0x57e0]
lea ecx, [esi + ecx]
call fcn.00413680
add esi, 0x4430
add esp, 8
cmp esi, 0x8860
jl 0x41a124
mov eax, dword [ebp - 0x5798]
test eax, eax
jle 0x41a19c
dec eax
lea ecx, [ebp - 0x884]
mov dword [ebp - 0x5798], eax
call fcn.0041e850
push eax
push 0x4771ec
push 0
push 0x4774ec
call fcn.004310f0
push 0
mov esi, eax
call fcn.00433740
add esp, 0xc
sub eax, esi
push eax
push 0
call fcn.004312e0
add esp, 0x10
call fcn.0042fe50
sub esp, 8
lea eax, [ebp - 0x20]
fstp qword [esp]
push str._.2ffps
push eax
call fcn.00406260
add esp, 0x10
lea eax, [ebp - 0x20]
push 0
push eax
push 0
push 0
push eax
call fcn.00431150
push 0
mov esi, eax
call fcn.00433960
add esp, 0xc
sub eax, esi
push eax
call fcn.00430500
push 0x3c
call fcn.0042f610
add esp, 0x14
call fcn.0042ff70
test al, al
jne 0x417f00
lea ecx, [ebp - 0x68c]
call fcn.00414bb0
lea ecx, [ebp - 0x5734]
call fcn.00420340
lea ecx, [ebp - 0x5838]
call fcn.004120d0
lea ecx, [ebp - 0x8c4]
call fcn.0041ab90
push 0x41c4a0
push 2
push 8
lea eax, [ebp - 0x57c0]
mov byte [ebp - 4], 0x1a
push eax
call fcn.0042e959
lea ecx, [ebp - 0x57a8]
call fcn.00403b40
push fcn.0041e920
push 2
push 0x18
lea eax, [ebp - 0x704]
mov byte [ebp - 4], 0x11
push eax
call fcn.0042e959
lea ecx, [ebp - 0x884]
call fcn.0041e920
lea ecx, [ebp - 0x571c]
call fcn.004203b0
lea ecx, [ebp - 0x824]
call fcn.00427700
push 0x41ab40
push 2
push 0x24
lea eax, [ebp - 0x6d4]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.0042e959
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042e28e
mov esp, ebp
pop ebp
ret
dec eax
imul eax, dword [ebp - 0x6cc]
cdq
idiv dword [ebp - 0x578c]
mov ecx, eax
mov eax, dword [esi + 0x39a8]
dec eax
imul eax, dword [ebp - 0x6a8]
cdq
idiv dword [ebp - 0x578c]
cmp ecx, eax
jge 0x419fa4
jmp 0x41a300
mov eax, dword [ebp - 0x571c]
test esi, esi
jne 0x41a2f7
cmp dword [eax + 0x4430], 4
jmp 0x41a2fa
cmp dword [eax], 4
je 0x419faa
movsd xmm0, qword [ebp - 0x575c]
movsd qword [ebp - 0x573c], xmm0
mov ecx, dword [ebp - 0x571c]
cmp dword [edi + ecx + 0x3994], 0
lea edx, [edi + ecx]
jg 0x41aa7e
cmp dword [edi + ecx + 0x398c], 0xffffffff
jne 0x41aa7e
mov eax, dword [edi + ecx + 0x396c]
cmp eax, dword [edi + ecx + 0x3970]
je 0x41aa7e
cmp dword [ebp - 0x5744], 0
je 0x41a361
cmp dword [ebp - 0x6d4], 0
mov eax, dword [ebp - 0x57d8]
je 0x41a367
mov eax, dword [ebp - 0x57f4]
mov dword [edx + 0x3994], eax
mov ecx, dword [ebp - 0x571c]
mov dword [ebp - 0x5770], ecx
mov edx, dword [edi + ecx + 0x396c]
mov eax, dword [edi + ecx + 0x3970]
sub eax, edx
sar eax, 2
mov esi, dword [edx]
cmp eax, 1
jbe 0x41a3c5
cmp esi, dword [edx + 4]
je 0x41a3c5
mov ecx, dword [edi + ecx + 0x3994]
mov eax, 0x2aaaaaab
shl ecx, 3
imul ecx
mov ecx, dword [ebp - 0x5770]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + ecx + 0x3994], eax
mov ecx, dword [ebp - 0x571c]
add ecx, 0x396c
lea eax, [ebp - 0x5770]
add ecx, edi
push dword [ecx]
push eax
call fcn.0041e7e0
cmp esi, 1
jne 0x41a48a
mov ecx, dword [ebp - 0x571c]
push 0xffffffffffffffff
lea ecx, [edi + ecx]
call fcn.0040a070
movsd xmm0, qword [ebp - 0x573c]
lea eax, [ebp - 0x64c]
addsd xmm0, qword [ebp - 0x5780]
mov edx, dword [ebp - 0x571c]
sub esp, 8
mov esi, dword [ebp - 0x5724]
mov ecx, dword [ebp - 0x5734]
shl esi, 7
movsd qword [esp], xmm0
push eax
push dword [edi + edx + 0x3914]
lea ecx, [ecx + esi]
movsd qword [ebp - 0x573c], xmm0
push 1
call fcn.004107b0
movsd xmm0, qword [ebp - 0x573c]
lea eax, [ebp - 0x64c]
addsd xmm0, qword [ebp - 0x5780]
mov edx, dword [ebp - 0x571c]
sub esp, 8
mov ecx, dword [ebp - 0x5734]
movsd qword [esp], xmm0
push eax
push dword [edi + edx + 0x3914]
lea ecx, [ecx + esi]
movsd qword [ebp - 0x573c], xmm0
push 2
call fcn.004107b0
jmp 0x41aa7e
cmp esi, 2
jne 0x41a539
mov ecx, dword [ebp - 0x571c]
push 1
lea ecx, [edi + ecx]
call fcn.0040a070
movsd xmm0, qword [ebp - 0x573c]
lea eax, [ebp - 0x648]
addsd xmm0, qword [ebp - 0x5780]
mov edx, dword [ebp - 0x571c]
sub esp, 8
mov esi, dword [ebp - 0x5724]
mov ecx, dword [ebp - 0x5734]
shl esi, 7
movsd qword [esp], xmm0
push eax
push dword [edi + edx + 0x3914]
lea ecx, [ecx + esi]
movsd qword [ebp - 0x573c], xmm0
push 1
call fcn.004107b0
movsd xmm0, qword [ebp - 0x573c]
lea eax, [ebp - 0x648]
addsd xmm0, qword [ebp - 0x5780]
mov edx, dword [ebp - 0x571c]
sub esp, 8
mov ecx, dword [ebp - 0x5734]
movsd qword [esp], xmm0
push eax
push dword [edi + edx + 0x3914]
lea ecx, [ecx + esi]
movsd qword [ebp - 0x573c], xmm0
push 2
call fcn.004107b0
jmp 0x41aa7e
cmp esi, 5
je 0x41ab18
cmp esi, 7
jne 0x41a5f1
mov ecx, dword [ebp - 0x571c]
push 1
lea ecx, [edi + ecx]
call fcn.0040a730
movsd xmm0, qword [ebp - 0x573c]
lea eax, [ebp - 0x640]
addsd xmm0, qword [ebp - 0x5780]
mov edx, dword [ebp - 0x571c]
sub esp, 8
mov esi, dword [ebp - 0x5724]
mov ecx, dword [ebp - 0x5734]
shl esi, 7
movsd qword [esp], xmm0
push eax
push dword [edi + edx + 0x3914]
lea ecx, [ecx + esi]
movsd qword [ebp - 0x573c], xmm0
push 1
call fcn.004107b0
movsd xmm0, qword [ebp - 0x573c]
lea eax, [ebp - 0x640]
addsd xmm0, qword [ebp - 0x5780]
mov edx, dword [ebp - 0x571c]
sub esp, 8
mov ecx, dword [ebp - 0x5734]
movsd qword [esp], xmm0
push eax
push dword [edi + edx + 0x3914]
lea ecx, [ecx + esi]
movsd qword [ebp - 0x573c], xmm0
push 2
call fcn.004107b0
jmp 0x41aa7e
cmp esi, 8
jne 0x41a6a0
mov ecx, dword [ebp - 0x571c]
push 3
lea ecx, [edi + ecx]
call fcn.0040a730
movsd xmm0, qword [ebp - 0x573c]
lea eax, [ebp - 0x63c]
addsd xmm0, qword [ebp - 0x5780]
mov edx, dword [ebp - 0x571c]
sub esp, 8
mov esi, dword [ebp - 0x5724]
mov ecx, dword [ebp - 0x5734]
shl esi, 7
movsd qword [esp], xmm0
push eax
push dword [edi + edx + 0x3914]
lea ecx, [ecx + esi]
movsd qword [ebp - 0x573c], xmm0
push 1
call fcn.004107b0
movsd xmm0, qword [ebp - 0x573c]
lea eax, [ebp - 0x63c]
addsd xmm0, qword [ebp - 0x5780]
mov edx, dword [ebp - 0x571c]
sub esp, 8
mov ecx, dword [ebp - 0x5734]
movsd qword [esp], xmm0
push eax
push dword [edi + edx + 0x3914]
lea ecx, [ecx + esi]
movsd qword [ebp - 0x573c], xmm0
push 2
call fcn.004107b0
jmp 0x41aa7e
cmp esi, 3
jne 0x41a76a
mov ecx, dword [ebp - 0x571c]
push 0xffffffffffffffff
lea ecx, [edi + ecx]
call fcn.0040a1e0
mov esi, dword [ebp - 0x5724]
shl esi, 7
mov dword [ebp - 0x5790], 6
nop dword [eax]
movsd xmm0, qword [ebp - 0x573c]
lea eax, [ebp - 0x64c]
addsd xmm0, qword [ebp - 0x5780]
mov edx, dword [ebp - 0x571c]
sub esp, 8
mov ecx, dword [ebp - 0x5734]
movsd qword [esp], xmm0
push eax
push dword [edi + edx + 0x3914]
lea ecx, [ecx + esi]
movsd qword [ebp - 0x573c], xmm0
push 1
call fcn.004107b0
movsd xmm0, qword [ebp - 0x573c]
lea eax, [ebp - 0x64c]
addsd xmm0, qword [ebp - 0x5780]
mov edx, dword [ebp - 0x571c]
sub esp, 8
mov ecx, dword [ebp - 0x5734]
movsd qword [esp], xmm0
push eax
push dword [edi + edx + 0x3914]
lea ecx, [ecx + esi]
movsd qword [ebp - 0x573c], xmm0
push 2
call fcn.004107b0
sub dword [ebp - 0x5790], 1
jne 0x41a6d0
jmp 0x41aa7e
cmp esi, 4
jne 0x41a83a
mov ecx, dword [ebp - 0x571c]
push 1
lea ecx, [edi + ecx]
call fcn.0040a1e0
mov esi, dword [ebp - 0x5724]
shl esi, 7
mov dword [ebp - 0x5790], 6
nop word [eax + eax]
movsd xmm0, qword [ebp - 0x573c]
lea eax, [ebp - 0x648]
addsd xmm0, qword [ebp - 0x5780]
mov edx, dword [ebp - 0x571c]
sub esp, 8
mov ecx, dword [ebp - 0x5734]
movsd qword [esp], xmm0
push eax
push dword [edi + edx + 0x3914]
lea ecx, [ecx + esi]
movsd qword [ebp - 0x573c], xmm0
push 1
call fcn.004107b0
movsd xmm0, qword [ebp - 0x573c]
lea eax, [ebp - 0x648]
addsd xmm0, qword [ebp - 0x5780]
mov edx, dword [ebp - 0x571c]
sub esp, 8
mov ecx, dword [ebp - 0x5734]
movsd qword [esp], xmm0
push eax
push dword [edi + edx + 0x3914]
lea ecx, [ecx + esi]
movsd qword [ebp - 0x573c], xmm0
push 2
call fcn.004107b0
sub dword [ebp - 0x5790], 1
jne 0x41a7a0
jmp 0x41aa7e
cmp esi, 6
je 0x41aab9
cmp esi, 9
jne 0x41a8f4
mov ecx, dword [ebp - 0x571c]
lea ecx, [edi + ecx]
call fcn.0040aee0
movsd xmm0, qword [ebp - 0x573c]
lea eax, [ebp - 0x634]
addsd xmm0, qword [ebp - 0x5780]
mov edx, dword [ebp - 0x571c]
sub esp, 8
mov esi, dword [ebp - 0x5724]
mov ecx, dword [ebp - 0x5734]
shl esi, 7
movsd qword [esp], xmm0
push eax
mov eax, dword [edi + edx + 0x3914]
inc eax
movsd qword [ebp - 0x573c], xmm0
push eax
lea ecx, [ecx + esi]
push 1
call fcn.004107b0
movsd xmm0, qword [ebp - 0x573c]
lea eax, [ebp - 0x634]
addsd xmm0, qword [ebp - 0x5780]
mov edx, dword [ebp - 0x571c]
sub esp, 8
mov ecx, dword [ebp - 0x5734]
movsd qword [esp], xmm0
push eax
mov eax, dword [edi + edx + 0x3914]
lea ecx, [ecx + esi]
inc eax
movsd qword [ebp - 0x573c], xmm0
push eax
push 2
call fcn.004107b0
jmp 0x41aa7e
cmp esi, 0xa
jne 0x41a9b1
cmp dword [ebp - 0x5778], 1
mov ecx, dword [ebp - 0x571c]
lea ecx, [edi + ecx]
jne 0x41a916
call fcn.0040ad00
jmp 0x41a91b
call fcn.0040ab10
movsd xmm0, qword [ebp - 0x573c]
lea eax, [ebp - 0x638]
addsd xmm0, qword [ebp - 0x5780]
mov edx, dword [ebp - 0x571c]
sub esp, 8
mov esi, dword [ebp - 0x5724]
mov ecx, dword [ebp - 0x5734]
shl esi, 7
movsd qword [esp], xmm0
push eax
push dword [edi + edx + 0x3914]
lea ecx, [ecx + esi]
movsd qword [ebp - 0x573c], xmm0
push 1
call fcn.004107b0
movsd xmm0, qword [ebp - 0x573c]
lea eax, [ebp - 0x638]
addsd xmm0, qword [ebp - 0x5780]
mov edx, dword [ebp - 0x571c]
sub esp, 8
mov ecx, dword [ebp - 0x5734]
movsd qword [esp], xmm0
push eax
push dword [edi + edx + 0x3914]
lea ecx, [ecx + esi]
movsd qword [ebp - 0x573c], xmm0
push 2
call fcn.004107b0
jmp 0x41aa7e
cmp esi, 0xb
jne 0x41aa68
cmp byte [0x48f5b8], 0
je 0x41aa7e
mov ecx, dword [ebp - 0x571c]
lea ecx, [edi + ecx]
call fcn.0040a940
movsd xmm0, qword [ebp - 0x573c]
lea eax, [ebp - 0x630]
addsd xmm0, qword [ebp - 0x5780]
mov edx, dword [ebp - 0x571c]
sub esp, 8
mov esi, dword [ebp - 0x5724]
mov ecx, dword [ebp - 0x5734]
shl esi, 7
movsd qword [esp], xmm0
push eax
push dword [edi + edx + 0x3914]
lea ecx, [ecx + esi]
movsd qword [ebp - 0x573c], xmm0
push 1
call fcn.004107b0
movsd xmm0, qword [ebp - 0x573c]
lea eax, [ebp - 0x630]
addsd xmm0, qword [ebp - 0x5780]
mov edx, dword [ebp - 0x571c]
sub esp, 8
mov ecx, dword [ebp - 0x5734]
movsd qword [esp], xmm0
push eax
push dword [edi + edx + 0x3914]
lea ecx, [ecx + esi]
movsd qword [ebp - 0x573c], xmm0
push 2
call fcn.004107b0
jmp 0x41aa7e
cmp esi, 0xc
jne 0x41aa7e
mov eax, dword [ebp - 0x571c]
mov dword [edi + eax + 0x39a4], 1
mov ecx, dword [ebp - 0x571c]
cmp dword [edi + ecx + 0x398c], 0xffffffff
jne 0x419fa4
cmp dword [edi + ecx + 0x3994], 0
jne 0x419fa4
mov eax, dword [edi + ecx + 0x396c]
cmp eax, dword [edi + ecx + 0x3970]
jne 0x41a310
jmp 0x419fa4
mov ecx, dword [ebp - 0x571c]
add ecx, edi
push ecx
call fcn.0040a540
movsd xmm0, qword [ebp - 0x573c]
lea edx, [ebp - 0x644]
addsd xmm0, qword [ebp - 0x5780]
mov eax, dword [ebp - 0x571c]
sub esp, 8
mov esi, dword [ebp - 0x5724]
mov ecx, esi
shl ecx, 7
add ecx, dword [ebp - 0x5734]
movsd qword [esp], xmm0
push edx
push dword [edi + eax + 0x3914]
push 1
call fcn.004107b0
mov byte [ebp + esi - 0x5788], 1
jmp 0x419faa
mov ecx, dword [ebp - 0x571c]
add ecx, edi
push ecx
call fcn.0040a3e0
jmp 0x41aac7
call fcn.0043c5ff
call fcn.0042e87e
int3