Function at 0x404330
Capabilities:
Check for software breakpoints
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50566f
mov eax, dword fs:[0]
push eax
sub esp, 0xa98
mov eax, dword [0x564690]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, ecx
mov dword [ebp - 0xa64], ebx
mov eax, dword [ebx + 0x78]
mov dword [ebp - 0xaa4], ebx
cmp dword [eax - 0xc], 0
je 0x405760
add eax, 0xfffffff0
push eax
call fcn.00405870
add eax, 0x10
add esp, 4
mov dword [ebp - 0xa6c], eax
push dword [ebx + 0x4c]
mov dword [ebp - 4], 0
push ecx
mov ecx, esp
push str.f5cdcfc3ded1c7caf3
call fcn.00401b70
lea eax, [ebp - 0xa58]
push eax
call fcn.0048cdc0
add esp, 8
push dword [eax]
lea ecx, [ebp - 0xa6c]
mov byte [ebp - 4], 1
call fcn.004078e0
mov edx, dword [ebp - 0xa58]
add edx, 0xfffffff0
or ebx, 0xffffffff
mov byte [ebp - 4], 0
lea ecx, [edx + 0xc]
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4043ee
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0xa80]
push eax
call fcn.0048c710
add esp, 4
mov esi, eax
push 0x518588
lea ecx, [ebp - 0xa68]
mov byte [ebp - 4], 2
call fcn.00401b70
push 0x518580
push eax
lea eax, [ebp - 0xa5c]
push eax
mov byte [ebp - 4], 3
call fcn.004029e0
push esi
push eax
lea eax, [ebp - 0xa58]
push eax
mov byte [ebp - 4], 4
call fcn.00402920
add esp, 0x18
mov eax, dword [eax]
lea ecx, [ebp - 0xa6c]
push dword [eax - 0xc]
mov byte [ebp - 4], 5
push eax
call fcn.00402ce0
mov edx, dword [ebp - 0xa58]
add edx, 0xfffffff0
mov byte [ebp - 4], 4
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404476
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa5c]
add edx, 0xfffffff0
mov byte [ebp - 4], 3
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404499
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa68]
add edx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4044bc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa80]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4044df
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5641c0]
mov ecx, 0x5641c0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa78], eax
lea eax, [ebp - 0xa78]
push eax
lea eax, [ebp - 0xa6c]
push eax
lea eax, [ebp - 0xa74]
push eax
mov byte [ebp - 4], 6
call fcn.0040f830
add esp, 0xc
mov edi, dword [0x565ae0]
mov eax, edi
imul eax, edi
cdq
mov ecx, 0xf
idiv ecx
mov byte [ebp - 4], 7
cmp edx, 3
jne 0x4045ac
mov eax, edi
cdq
xor ecx, ecx
sub eax, edx
sar eax, 1
mov esi, 0xc2
mov dword [ebp - 0xa68], ecx
mov dword [ebp - 0xa5c], eax
lea esp, [esp]
test eax, eax
jle 0x4045a1
mov eax, edi
cdq
and edx, 3
lea edi, [edx + eax]
mov eax, dword [ebp - 0xa5c]
sar edi, 2
xor edx, edx
mov dword [ebp - 0xa58], eax
mov edi, edi
test edi, edi
jle 0x40458a
mov eax, edx
mov ecx, edi
add esi, eax
dec eax
dec ecx
jne 0x404578
mov eax, dword [ebp - 0xa58]
mov ecx, dword [ebp - 0xa68]
add edx, ecx
dec eax
mov dword [ebp - 0xa58], eax
jne 0x404570
mov eax, dword [ebp - 0xa5c]
mov edi, dword [0x565ae0]
inc ecx
mov dword [ebp - 0xa68], ecx
cmp ecx, esi
jl 0x404550
lea eax, [ebp - 0xa58]
push eax
call fcn.0040d2b0
mov ecx, dword [eax]
xor eax, eax
add esp, 4
test ecx, ecx
setne al
test eax, eax
jne 0x4045d2
push 0x80004005
call fcn.00402ec0
mov eax, dword [ebp - 0xa74]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4045fe
test dx, dx
je 0x4045fa
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4045fe
add eax, 4
add ecx, 4
test dx, dx
jne 0x4045d8
xor eax, eax
jmp 0x404603
sbb eax, eax
or eax, 1
mov edx, dword [ebp - 0xa58]
test eax, eax
sete byte [ebp - 0xa5d]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40462b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0xa5d], 0
je 0x4047fd
call fcn.0040a380
test al, al
jne 0x40467f
mov esi, dword [0x565ae0]
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x64
sub esi, ecx
xor ecx, ecx
lea eax, [esi + 0x63]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004e3b54
push eax
call fcn.004e5c83
add esp, 8
lea eax, [ebp - 0xa78]
push eax
push ecx
mov ecx, esp
push str.cde6ebede5cffbfae1dbfeeaeffaebdbfce2d1c6fafafedcebfffbebfdfad1
call fcn.00401b70
lea eax, [ebp - 0xa80]
push eax
call fcn.0048cdc0
add esp, 8
mov esi, eax
mov edx, dword [0x5641c0]
mov ecx, 0x5641c0
mov byte [ebp - 4], 8
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0xa58], eax
push esi
lea eax, [ebp - 0xa58]
push eax
lea eax, [ebp - 0xa68]
push eax
mov byte [ebp - 4], 9
call fcn.00465fd0
add esp, 0xc
push eax
lea eax, [ebp - 0xa5c]
push eax
mov byte [ebp - 4], 0xa
call fcn.00465fd0
add esp, 0xc
mov ecx, dword [ebp - 0xa64]
push eax
mov byte [ebp - 4], 0xb
call fcn.00409200
mov edx, dword [ebp - 0xa5c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404721
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa68]
add edx, 0xfffffff0
mov byte [ebp - 4], 9
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404744
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa58]
add edx, 0xfffffff0
mov byte [ebp - 4], 8
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404767
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa80]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
mov byte [ebp - 4], 7
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40478a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa74]
add edx, 0xfffffff0
mov byte [ebp - 4], 6
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4047ad
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa78]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
mov byte [ebp - 4], 0
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4047d0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa6c]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x405760
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x405760
mov eax, dword [ebp - 0xa74]
cmp dword [eax - 0xc], 0
jne 0x404925
call fcn.0040a1d0
test al, al
jne 0x404870
movd xmm4, dword [0x565ae0]
movsd xmm3, qword [0x518d08]
movsd xmm6, qword [0x518d10]
movsd xmm5, qword [0x518d00]
xorps xmm2, xmm2
cvtdq2pd xmm4, xmm4
lea ecx, [ecx]
addsd xmm2, xmm3
movapd xmm0, xmm2
mulsd xmm0, xmm2
comisd xmm0, xmm4
jbe 0x40485a
subsd xmm2, xmm3
divsd xmm3, xmm6
movapd xmm1, xmm2
mulsd xmm1, xmm2
movapd xmm0, xmm4
subsd xmm0, xmm1
comisd xmm0, xmm5
ja 0x404840
push ecx
mov ecx, esp
push str.cde6ebede5cffbfae1dbfeeaeffaebdbfce2d1fdfafcc4fde1e0d1ebe3fefaf7
call fcn.00401b70
lea eax, [ebp - 0xa68]
push eax
call fcn.0048cdc0
add esp, 8
mov esi, eax
mov edx, dword [0x5641c0]
mov ecx, 0x5641c0
mov byte [ebp - 4], 0xc
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0xa58], eax
push esi
lea eax, [ebp - 0xa58]
push eax
lea eax, [ebp - 0xa5c]
push eax
mov byte [ebp - 4], 0xd
call fcn.00465fd0
add esp, 0xc
mov ecx, dword [ebp - 0xa64]
push eax
mov byte [ebp - 4], 0xe
call fcn.00409200
mov edx, dword [ebp - 0xa5c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xd
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4048f7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa58]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xc
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40491a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa68]
jmp 0x40476d
mov esi, dword [0x565ae0]
mov ecx, 0xe
lea eax, [esi + 1]
imul eax, esi
cdq
idiv ecx
cmp edx, 0xd
jne 0x4049ae
xor esi, esi
call fcn.004e5b54
movd xmm0, eax
cvtdq2pd xmm0, xmm0
inc esi
movsd qword [ebp + esi*8 - 0x950], xmm0
cmp esi, 0xcd
jb 0x404940
xor ecx, ecx
mov eax, 0xcc
cmp ecx, eax
jge 0x40499f
lea ebx, [ebx]
movsd xmm0, qword [ebp + eax*8 - 0x948]
movsd xmm1, qword [ebp + eax*8 - 0x950]
comisd xmm0, xmm1
jbe 0x40499a
movsd qword [ebp + eax*8 - 0x948], xmm1
movsd qword [ebp + eax*8 - 0x950], xmm0
dec eax
cmp eax, ecx
jg 0x404970
inc ecx
cmp ecx, 0xcd
jl 0x404961
mov esi, dword [0x565ae0]
lea eax, [esi + 1]
imul eax, esi
cdq
mov ecx, 0x18
idiv ecx
mov byte [ebp - 4], 0xf
cmp edx, 7
jne 0x404a00
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x64
sub esi, ecx
xor ecx, ecx
lea eax, [esi + 0x7b]
mov esi, 4
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004e3b54
add esp, 4
push eax
call fcn.004e5c83
add esp, 4
push 3
push dword [ebp - 0xa74]
lea eax, [ebp - 0x9e0]
lea ecx, [ebp - 0x9e4]
mov dword [ebp - 0x9e4], eax
call fcn.004073f0
mov edx, dword [ebp - 0x9e4]
mov dword [ebp - 0x94c], 0xf
mov dword [ebp - 0x950], 0
mov byte [ebp - 0x960], 0
cmp byte [edx], 0
mov byte [ebp - 4], 0x10
jne 0x404a4d
xor ecx, ecx
jmp 0x404a5b
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x404a52
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x960]
call fcn.00401430
lea ecx, [ebp - 0xa54]
mov byte [ebp - 4], 0x11
call fcn.00466bc0
push 0
lea ecx, [ebp - 0xaa0]
mov byte [ebp - 4], 0x12
call fcn.0046a060
push 1
lea eax, [ebp - 0xaa0]
push eax
lea eax, [ebp - 0x960]
push eax
lea ecx, [ebp - 0xa54]
mov byte [ebp - 4], 0x13
call fcn.004683a0
test al, al
mov eax, dword [0x5641c0]
jne 0x404c37
push ecx
mov esi, esp
mov ecx, 0x5641c0
mov dword [ebp - 0xa88], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.cde6ebede5cffbfae1dbfeeaeffaebdbfce2d1feeffcfdebd1ebfcfce1fc
mov byte [ebp - 4], 0x14
test eax, 0xffff0000
jne 0x404af7
movzx edi, ax
push 0
push edi
call fcn.00402e50
add esp, 8
test eax, eax
je 0x404b05
push edi
push eax
mov ecx, esi
call fcn.00407600
jmp 0x404b05
push 0x3c
push str.cde6ebede5cffbfae1dbfeeaeffaebdbfce2d1feeffcfdebd1ebfcfce1fc
mov ecx, esi
call fcn.00409890
lea eax, [ebp - 0xa70]
push eax
mov byte [ebp - 4], 0x13
call fcn.0048cdc0
add esp, 8
mov esi, eax
mov edx, dword [0x5641c0]
mov ecx, 0x5641c0
mov byte [ebp - 4], 0x15
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0xa58], eax
push esi
lea eax, [ebp - 0xa58]
push eax
lea eax, [ebp - 0xa5c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00465fd0
add esp, 0xc
mov ecx, dword [ebp - 0xa64]
push eax
mov byte [ebp - 4], 0x17
call fcn.00409200
mov edx, dword [ebp - 0xa5c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x16
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404b83
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa58]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x15
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404ba6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa70]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x13
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404bc9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0xaa0]
mov byte [ebp - 4], 0x12
call fcn.0046a300
lea ecx, [ebp - 0xa54]
call fcn.00402530
cmp dword [ebp - 0x94c], 0x10
jb 0x404bfa
push dword [ebp - 0x960]
call fcn.004e48b8
add esp, 4
mov eax, dword [ebp - 0x9e4]
lea ecx, [ebp - 0x9e0]
mov byte [ebp - 0x960], 0
mov dword [ebp - 0x950], 0
mov dword [ebp - 0x94c], 0xf
cmp eax, ecx
je 0x40478a
push eax
call fcn.004e5bc5
add esp, 4
jmp 0x40478a
mov ecx, 0x5641c0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa5c], eax
mov eax, str._L_update_low_ver
shr eax, 0x10
mov byte [ebp - 4], 0x18
mov dword [ebp - 0xa7c], eax
test eax, eax
jne 0x404c83
mov edi, str._L_update_low_ver
movzx esi, di
push eax
push esi
call fcn.00402e50
add esp, 8
test eax, eax
je 0x404c93
push esi
push eax
lea ecx, [ebp - 0xa5c]
call fcn.00407600
jmp 0x404c93
push str._L_update_low_ver
lea ecx, [ebp - 0xa5c]
call fcn.004026b0
lea eax, [ebp - 0xa5c]
push eax
lea eax, [ebp - 0xa58]
push eax
mov byte [ebp - 4], 0x19
call fcn.0048e610
add esp, 8
mov edi, dword [eax]
mov eax, dword [0x5641c0]
mov ecx, 0x5641c0
mov byte [ebp - 4], 0x1a
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0xa70], esi
mov byte [ebp - 4], 0x1b
test edi, edi
je 0x404cfa
test edi, 0xffff0000
jne 0x404cfa
movzx edi, di
push 0
push edi
call fcn.00402e50
add esp, 8
test eax, eax
je 0x404d0c
push edi
push eax
lea ecx, [ebp - 0xa70]
call fcn.00407540
jmp 0x404d06
push edi
lea ecx, [ebp - 0xa70]
call fcn.00402620
mov esi, dword [ebp - 0xa70]
push esi
lea ecx, [ebp - 0xaa0]
mov byte [ebp - 4], 0x1c
call fcn.0046a590
mov ecx, eax
call fcn.0046b5e0
test al, al
sete byte [ebp - 0xa5d]
add esi, 0xfffffff0
mov byte [ebp - 4], 0x1a
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404d49
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa58]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x19
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404d6c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa5c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x13
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404d8f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0xa5d], 0
jne 0x404bc9
mov eax, dword [0x5641c0]
mov ecx, 0x5641c0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa58], eax
cmp dword [ebp - 0xa7c], 0
mov byte [ebp - 4], 0x1d
jne 0x404de5
mov eax, str._L_update_low_ver
movzx esi, ax
push 0
push esi
call fcn.00402e50
add esp, 8
test eax, eax
je 0x404df5
push esi
push eax
lea ecx, [ebp - 0xa58]
call fcn.00407600
jmp 0x404df5
push str._L_update_low_ver
lea ecx, [ebp - 0xa58]
call fcn.004026b0
lea eax, [ebp - 0xa58]
push eax
lea eax, [ebp - 0xa90]
push eax
mov byte [ebp - 4], 0x1e
call fcn.0048e610
add esp, 8
mov edi, dword [eax]
mov eax, dword [0x5641c0]
mov ecx, 0x5641c0
mov byte [ebp - 4], 0x1f
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0xa5c], esi
mov byte [ebp - 4], 0x20
test edi, edi
je 0x404e5c
test edi, 0xffff0000
jne 0x404e5c
movzx edi, di
push 0
push edi
call fcn.00402e50
add esp, 8
test eax, eax
je 0x404e6e
push edi
push eax
lea ecx, [ebp - 0xa5c]
call fcn.00407540
jmp 0x404e68
push edi
lea ecx, [ebp - 0xa5c]
call fcn.00402620
mov esi, dword [ebp - 0xa5c]
push esi
lea ecx, [ebp - 0xaa0]
mov byte [ebp - 4], 0x21
call fcn.0046a590
mov ecx, eax
call fcn.0041c3f0
mov edx, dword [0x5641c0]
mov ecx, 0x5641c0
mov dword [ebp - 0xa7c], eax
call dword [edx + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0xa70], edi
mov eax, dword [ebp - 0xa7c]
mov byte [ebp - 4], 0x22
test eax, eax
je 0x404ee3
test eax, 0xffff0000
jne 0x404ee3
movzx eax, ax
push 0
push eax
mov dword [ebp - 0xa7c], eax
call fcn.00402e50
add esp, 8
test eax, eax
je 0x404ef5
push dword [ebp - 0xa7c]
lea ecx, [ebp - 0xa70]
push eax
call fcn.00407600
jmp 0x404eef
push eax
lea ecx, [ebp - 0xa70]
call fcn.004026b0
mov edi, dword [ebp - 0xa70]
add esi, 0xfffffff0
mov byte [ebp - 4], 0x24
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404f12
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa90]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x25
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404f35
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa58]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x26
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404f58
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [edi - 0xc], 0
jne 0x404fee
mov edx, dword [0x565ae0]
lea ecx, [edx + 1]
lea eax, [edx + 2]
imul eax, ecx
imul eax, edx
cdq
mov ecx, 0x11
idiv ecx
cmp edx, 0xe
jne 0x404fcd
mov eax, dword [str.7m4Mm]
mov dword [ebp - 0xa88], eax
mov ax, word [0x51872c]
mov word [ebp - 0xa84], ax
lea eax, [ebp - 0xa88]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404fa2
sub eax, edx
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004e3b54
add esp, 4
push eax
call fcn.004e5c83
add esp, 4
add edi, 0xfffffff0
mov byte [ebp - 4], 0x13
lea eax, [edi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404bc9
mov ecx, dword [edi]
push edi
jmp 0x404bc4
push str.update_high_ver
lea ecx, [ebp - 0xaa0]
call fcn.0046a590
mov ecx, eax
call fcn.0046b5e0
test al, al
jne 0x4050bf
call fcn.0040a380
test al, al
jne 0x40509e
mov eax, dword [0x565ae0]
cdq
xor ecx, ecx
sub eax, edx
sar eax, 1
mov esi, 0x91
mov dword [ebp - 0xa64], ecx
mov dword [ebp - 0xa5c], eax
test eax, eax
jle 0x405093
mov eax, dword [0x565ae0]
cdq
and edx, 3
lea ecx, [edx + eax]
mov eax, dword [ebp - 0xa5c]
sar ecx, 2
mov dword [ebp - 0xa90], ecx
xor edx, edx
mov dword [ebp - 0xa58], eax
mov edi, edi
test ecx, ecx
jle 0x405078
mov eax, edx
add esi, eax
dec eax
dec ecx
jne 0x405066
mov ecx, dword [ebp - 0xa90]
mov eax, dword [ebp - 0xa58]
add edx, dword [ebp - 0xa64]
dec eax
mov dword [ebp - 0xa58], eax
jne 0x405060
mov ecx, dword [ebp - 0xa64]
mov eax, dword [ebp - 0xa5c]
inc ecx
mov dword [ebp - 0xa64], ecx
cmp ecx, esi
jl 0x405037
add edi, 0xfffffff0
mov byte [ebp - 4], 0x13
lea eax, [edi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404bc9
mov ecx, dword [edi]
push edi
jmp 0x404bc4
push str.update_high_ver
lea ecx, [ebp - 0xaa0]
call fcn.0046a590
mov ecx, eax
call fcn.0041c3f0
push eax
lea ecx, [ebp - 0xa68]
call fcn.00401ae0
mov eax, dword [ebp - 0xa68]
mov byte [ebp - 4], 0x27
cmp dword [eax - 0xc], 0
jne 0x405130
lea edx, [eax - 0x10]
mov byte [ebp - 4], 0x26
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40510f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov byte [ebp - 4], 0x13
lea eax, [edi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404bc9
mov ecx, dword [edi]
push edi
jmp 0x404bc4
push str._L_download_url
lea ecx, [ebp - 0xa5c]
call fcn.00401ae0
lea eax, [ebp - 0xa5c]
push eax
lea eax, [ebp - 0xa88]
push eax
mov byte [ebp - 4], 0x28
call fcn.0048e610
add esp, 8
push dword [eax]
lea ecx, [ebp - 0xa7c]
mov byte [ebp - 4], 0x29
call fcn.00401a50
push dword [eax]
lea ecx, [ebp - 0xaa0]
mov byte [ebp - 4], 0x2a
call fcn.0046a590
mov ecx, eax
call fcn.0046b5e0
mov edx, dword [ebp - 0xa7c]
test al, al
sete byte [ebp - 0xa5d]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x29
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4051af
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa88]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x28
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4051d2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa5c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x27
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4051f5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0xa5d], 0
je 0x405242
mov edx, dword [ebp - 0xa68]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x26
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x405221
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov byte [ebp - 4], 0x13
lea eax, [edi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404bc9
mov ecx, dword [edi]
push edi
jmp 0x404bc4
push str._L_download_url
lea ecx, [ebp - 0xa58]
call fcn.00401ae0
lea eax, [ebp - 0xa58]
push eax
lea eax, [ebp - 0xa90]
push eax
mov byte [ebp - 4], 0x2b
call fcn.0048e610
add esp, 8
push dword [eax]
lea ecx, [ebp - 0xa88]
mov byte [ebp - 4], 0x2c
call fcn.00401a50
push dword [eax]
lea ecx, [ebp - 0xaa0]
mov byte [ebp - 4], 0x2d
call fcn.0046a590
mov ecx, eax
call fcn.0041c3f0
push eax
lea ecx, [ebp - 0xa8c]
call fcn.00401ae0
mov edx, dword [ebp - 0xa88]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x2f
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4052c4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa90]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x30
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4052e7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa58]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x31
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x405308
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0xa8c]
cmp dword [eax - 0xc], 0
je 0x4056e0
mov eax, dword [ebp - 0xa68]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0xa7c], esp
mov esi, esp
push eax
call fcn.00405870
add eax, 0x10
add esp, 4
mov dword [esi], eax
push ecx
add edi, 0xfffffff0
mov esi, esp
push edi
mov byte [ebp - 4], 0x32
call fcn.00405870
mov edi, dword [ebp - 0xa64]
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov ecx, edi
mov byte [ebp - 4], 0x31
call fcn.00409950
test al, al
je 0x4056e0
lea eax, [ebp - 0xa8c]
push 0x518754
push eax
call fcn.00402860
add esp, 8
test al, al
jne 0x40577c
lea eax, [ebp - 0xa8c]
push 0x51875c
push eax
call fcn.00402860
add esp, 8
test al, al
jne 0x40577c
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21a]
push eax
call fcn.004e6690
add esp, 0xc
lea eax, [ebp - 0x21c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x40545a
push ecx
mov ecx, esp
push str.cde6ebede5cffbfae1dbfeeaeffaebdbfce2d1c9ebfadaebe3fedeeffae6d1
call fcn.00401b70
lea eax, [ebp - 0xa5c]
push eax
call fcn.0048cdc0
add esp, 8
mov esi, eax
mov edx, dword [0x5641c0]
mov ecx, 0x5641c0
mov byte [ebp - 4], 0x36
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0xa64], eax
push esi
lea eax, [ebp - 0xa64]
push eax
lea eax, [ebp - 0xa7c]
push eax
mov byte [ebp - 4], 0x37
call fcn.00465fd0
add esp, 0xc
mov byte [ebp - 4], 0x38
push eax
mov ecx, edi
call fcn.00409200
lea ecx, [ebp - 0xa7c]
call fcn.00401fa0
lea ecx, [ebp - 0xa64]
call fcn.00401fa0
lea ecx, [ebp - 0xa5c]
jmp 0x4056db
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0xa80]
call fcn.00401b70
mov eax, dword [ebp - 0xa80]
lea ecx, [ebp - 0xa80]
mov eax, dword [eax - 0xc]
dec eax
push eax
mov byte [ebp - 4], 0x39
call fcn.00405c00
movzx eax, ax
cmp eax, 0x5c
je 0x4054e7
push str._L__
lea ecx, [ebp - 0xa64]
call fcn.00401b70
lea eax, [ebp - 0xa64]
push eax
lea eax, [ebp - 0xa88]
push eax
mov byte [ebp - 4], 0x3a
call fcn.0048e610
add esp, 8
mov eax, dword [eax]
lea ecx, [ebp - 0xa80]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x3b
push eax
call fcn.00402ce0
lea ecx, [ebp - 0xa88]
call fcn.00401fa0
lea ecx, [ebp - 0xa64]
mov byte [ebp - 4], 0x39
call fcn.00401fa0
mov eax, dword [ebp - 0xa80]
add eax, 0xfffffff0
push eax
call fcn.00405870
add eax, 0x10
add esp, 4
mov dword [ebp - 0xa64], eax
lea eax, [ebp - 0xa88]
push eax
mov byte [ebp - 4], 0x3c
call fcn.0048c710
add esp, 4
mov eax, dword [eax]
lea ecx, [ebp - 0xa80]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x3d
push eax
call fcn.00402ce0
lea ecx, [ebp - 0xa88]
mov byte [ebp - 4], 0x3c
call fcn.00401fa0
lea eax, [ebp - 0xa80]
push eax
lea eax, [ebp - 0xa8c]
push eax
call fcn.00412230
add esp, 8
test al, al
jne 0x405655
push ecx
mov ecx, esp
push str.cde6ebede5cffbfae1dbfeeaeffaebdbfce2d1c6fafafedae1cce7e0effcf7c8e7e2ebdcebfffbebfdfa
call fcn.00401b70
lea eax, [ebp - 0xa90]
push eax
call fcn.0048cdc0
add esp, 8
mov esi, eax
mov edx, dword [0x5641c0]
mov ecx, 0x5641c0
mov byte [ebp - 4], 0x3e
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0xa58], eax
push esi
lea eax, [ebp - 0xa58]
push eax
lea eax, [ebp - 0xa88]
push eax
mov byte [ebp - 4], 0x3f
call fcn.00465fd0
add esp, 0xc
push eax
mov ecx, edi
mov byte [ebp - 4], 0x40
call fcn.00409200
lea ecx, [ebp - 0xa88]
call fcn.00401fa0
lea ecx, [ebp - 0xa58]
call fcn.00401fa0
lea ecx, [ebp - 0xa90]
call fcn.00401fa0
mov ecx, dword [0x565ae0]
mov eax, ecx
imul eax, ecx
imul eax, ecx
cdq
mov esi, 0x14
idiv esi
cmp edx, 2
jne 0x4056ca
movsd xmm3, qword [0x518d08]
movsd xmm6, qword [0x518d10]
movsd xmm5, qword [0x518d00]
movd xmm4, ecx
xorps xmm2, xmm2
cvtdq2pd xmm4, xmm4
lea ebx, [ebx]
addsd xmm2, xmm3
movapd xmm0, xmm2
mulsd xmm0, xmm2
comisd xmm0, xmm4
jbe 0x40563a
subsd xmm2, xmm3
divsd xmm3, xmm6
movapd xmm1, xmm2
mulsd xmm1, xmm2
movapd xmm0, xmm4
subsd xmm0, xmm1
comisd xmm0, xmm5
ja 0x405620
jmp 0x4056ca
call fcn.0040a330
test al, al
jne 0x40568b
xor edx, edx
mov dword [ebp - 0xa58], edx
lea esi, [ebp - 0x2e0]
lea esp, [esp]
xor ecx, ecx
inc ecx
inc esi
cmp ecx, 0xe
jl 0x405672
mov edx, dword [ebp - 0xa58]
inc edx
mov dword [ebp - 0xa58], edx
cmp edx, 0xe
jl 0x405670
lea eax, [ebp - 0xa64]
push eax
lea eax, [ebp - 0xa80]
push eax
mov ecx, edi
call fcn.00407b20
call fcn.0040a160
test al, al
jne 0x4056ca
push 4
call fcn.004e48e7
add esp, 4
mov esi, eax
call fcn.004e5b54
mov dword [esi], eax
push esi
mov dword [0x565ae0], eax
call fcn.004e48b8
add esp, 4
lea ecx, [ebp - 0xa64]
call fcn.00401fa0
lea ecx, [ebp - 0xa80]
call fcn.00401fa0
lea ecx, [ebp - 0xa8c]
call fcn.00401fa0
lea ecx, [ebp - 0xa68]
call fcn.00401fa0
lea ecx, [ebp - 0xa70]
call fcn.00401fa0
lea ecx, [ebp - 0xaa0]
mov byte [ebp - 4], 0x12
call fcn.0046a300
lea ecx, [ebp - 0xa54]
call fcn.00402530
lea ecx, [ebp - 0x960]
call fcn.0041da80
mov eax, dword [ebp - 0x9e4]
lea ecx, [ebp - 0x9e0]
cmp eax, ecx
je 0x40573f
push eax
call fcn.004e5bc5
add esp, 4
lea ecx, [ebp - 0xa74]
call fcn.00401fa0
lea ecx, [ebp - 0xa78]
call fcn.00401fa0
lea ecx, [ebp - 0xa6c]
call fcn.00401fa0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004e50b4
mov esp, ebp
pop ebp
ret
push ecx
mov ecx, esp
push str.cde6ebede5cffbfae1dbfeeaeffaebdbfce2d1fbfce2d1e0efd1e8e1fcd1fbfeeaeffaeb
call fcn.00401b70
lea eax, [ebp - 0xa5c]
push eax
call fcn.0048cdc0
add esp, 8
mov esi, eax
mov edx, dword [0x5641c0]
mov ecx, 0x5641c0
mov byte [ebp - 4], 0x33
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0xa64], eax
push esi
lea eax, [ebp - 0xa64]
push eax
lea eax, [ebp - 0xa7c]
push eax
mov byte [ebp - 4], 0x34
call fcn.00465fd0
add esp, 0xc
mov byte [ebp - 4], 0x35
jmp 0x405431