Function at 0x403d70
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ff9ad
mov eax, dword fs:[0]
push eax
sub esp, 0x39c
mov eax, dword [0x559680]
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 - 0x380], ebx
mov eax, dword [ebx + 0x78]
mov dword [ebp - 0x398], ebx
cmp dword [eax - 0xc], 0
je 0x404bb3
add eax, 0xfffffff0
push eax
call fcn.00404d60
add eax, 0x10
add esp, 4
mov dword [ebp - 0x360], eax
push dword [ebx + 0x4c]
mov dword [ebp - 4], 0
push ecx
mov ecx, esp
push str.61595b574a45535e67
call fcn.00401b70
lea eax, [ebp - 0x354]
push eax
call fcn.00487560
add esp, 8
push dword [eax]
lea ecx, [ebp - 0x360]
mov byte [ebp - 4], 1
call fcn.00406d70
mov edx, dword [ebp - 0x354]
add edx, 0xfffffff0
or edi, 0xffffffff
mov byte [ebp - 4], 0
lea ecx, [edx + 0xc]
mov eax, edi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x403e2e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x370]
push eax
call fcn.004870b0
add esp, 4
mov esi, eax
push 0x50dd30
lea ecx, [ebp - 0x36c]
mov byte [ebp - 4], 2
call fcn.00401b70
push 0x50dd28
push eax
lea eax, [ebp - 0x358]
push eax
mov byte [ebp - 4], 3
call fcn.004029e0
push esi
push eax
lea eax, [ebp - 0x354]
push eax
mov byte [ebp - 4], 4
call fcn.00402920
add esp, 0x18
mov eax, dword [eax]
lea ecx, [ebp - 0x360]
push dword [eax - 0xc]
mov byte [ebp - 4], 5
push eax
call fcn.00402ce0
mov edx, dword [ebp - 0x354]
add edx, 0xfffffff0
mov byte [ebp - 4], 4
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403eb6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x358]
add edx, 0xfffffff0
mov byte [ebp - 4], 3
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403ed9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x36c]
add edx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403efc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x370]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403f1f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5591b8]
mov ecx, 0x5591b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x368], eax
lea eax, [ebp - 0x368]
push eax
lea eax, [ebp - 0x360]
push eax
lea eax, [ebp - 0x364]
push eax
mov byte [ebp - 4], 6
call fcn.0040e330
lea eax, [ebp - 0x354]
push eax
mov byte [ebp - 4], 7
call fcn.0040c2e0
push eax
lea eax, [ebp - 0x364]
push eax
call fcn.00402800
mov esi, dword [ebp - 0x354]
add esi, 0xfffffff0
add esp, 0x18
mov byte [ebp - 0x381], al
lea ecx, [esi + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403f9e
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov al, byte [ebp - 0x381]
test al, al
je 0x404140
mov ecx, dword [0x55aac0]
mov esi, 0x17
lea eax, [ecx + 1]
imul eax, ecx
cdq
idiv esi
cmp edx, 0xe
jne 0x403fc6
dec ecx
mov dword [0x55aac0], ecx
lea eax, [ebp - 0x368]
push eax
push ecx
mov ecx, esp
push str.59727f79715b6f6e754f6a7e7b6e7f4f687645526e6e6a487f6b6f7f696e45
call fcn.00401b70
lea eax, [ebp - 0x370]
push eax
call fcn.00487560
add esp, 8
mov esi, eax
mov edx, dword [0x5591b8]
mov ecx, 0x5591b8
mov byte [ebp - 4], 8
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x358], eax
push esi
lea eax, [ebp - 0x358]
push eax
lea eax, [ebp - 0x36c]
push eax
mov byte [ebp - 4], 9
call fcn.00462200
add esp, 0xc
push eax
lea eax, [ebp - 0x354]
push eax
mov byte [ebp - 4], 0xa
call fcn.00462200
add esp, 0xc
push eax
mov ecx, ebx
mov byte [ebp - 4], 0xb
call fcn.00408a30
mov edx, dword [ebp - 0x354]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404064
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x36c]
add edx, 0xfffffff0
mov byte [ebp - 4], 9
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404087
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x358]
add edx, 0xfffffff0
mov byte [ebp - 4], 8
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4040aa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x370]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
mov byte [ebp - 4], 7
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4040cd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x364]
add edx, 0xfffffff0
mov byte [ebp - 4], 6
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4040f0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x368]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
mov byte [ebp - 4], 0
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404113
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x360]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x404bb3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x404bb3
mov eax, dword [ebp - 0x364]
cmp dword [eax - 0xc], 0
jne 0x404217
call fcn.00409950
test al, al
jne 0x404166
lea eax, [ebp - 0x2e0]
push eax
call dword [sym.imp.KERNEL32.dll_GetTimeZoneInformation]
push ecx
mov ecx, esp
push str.59727f79715b6f6e754f6a7e7b6e7f4f687645696e6850697574457f776a6e63
call fcn.00401b70
lea eax, [ebp - 0x36c]
push eax
call fcn.00487560
add esp, 8
mov esi, eax
mov edx, dword [0x5591b8]
mov ecx, 0x5591b8
mov byte [ebp - 4], 0xc
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x358], eax
push esi
lea eax, [ebp - 0x358]
push eax
lea eax, [ebp - 0x354]
push eax
mov byte [ebp - 4], 0xd
call fcn.00462200
add esp, 0xc
push eax
mov ecx, ebx
mov byte [ebp - 4], 0xe
call fcn.00408a30
mov edx, dword [ebp - 0x354]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xd
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4041e9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x358]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xc
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40420c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x36c]
jmp 0x4040b0
lea ecx, [ebp - 0x2b4]
push 3
mov dword [ebp - 0x2b8], ecx
push eax
lea ecx, [ebp - 0x2b8]
mov byte [ebp - 4], 0xf
call fcn.00406880
push dword [ebp - 0x2b8]
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 0x10
call fcn.00401000
lea ecx, [ebp - 0x350]
mov byte [ebp - 4], 0x11
call fcn.00462be0
push 0
lea ecx, [ebp - 0x394]
mov byte [ebp - 4], 0x12
call fcn.00466080
push 1
lea eax, [ebp - 0x394]
push eax
lea eax, [ebp - 0x234]
push eax
lea ecx, [ebp - 0x350]
mov byte [ebp - 4], 0x13
call fcn.004643c0
test al, al
jne 0x4043a1
push ecx
mov ecx, esp
push str.59727f79715b6f6e754f6a7e7b6e7f4f6876456a7b68697f457f68687568
call fcn.00401b70
lea eax, [ebp - 0x378]
push eax
call fcn.00487560
add esp, 8
mov esi, eax
mov edx, dword [0x5591b8]
mov ecx, 0x5591b8
mov byte [ebp - 4], 0x14
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x358], eax
push esi
lea eax, [ebp - 0x358]
push eax
lea eax, [ebp - 0x354]
push eax
mov byte [ebp - 4], 0x15
call fcn.00462200
add esp, 0xc
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x16
call fcn.00408a30
mov edx, dword [ebp - 0x354]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x15
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404314
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x358]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x14
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404337
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x378]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x13
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40435a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x394]
mov byte [ebp - 4], 0x12
call fcn.00466320
lea ecx, [ebp - 0x350]
call fcn.00402530
lea ecx, [ebp - 0x234]
call fcn.0041bef0
mov eax, dword [ebp - 0x2b8]
lea ecx, [ebp - 0x2b4]
cmp eax, ecx
je 0x4040cd
push eax
call fcn.004e0005
add esp, 4
jmp 0x4040cd
push str._L_update_low_ver
lea ecx, [ebp - 0x358]
call fcn.00401ae0
lea eax, [ebp - 0x358]
push eax
lea eax, [ebp - 0x354]
push eax
mov byte [ebp - 4], 0x17
call fcn.00488de0
add esp, 8
push dword [eax]
lea ecx, [ebp - 0x378]
mov byte [ebp - 4], 0x18
call fcn.00401a50
push dword [eax]
lea ecx, [ebp - 0x394]
mov byte [ebp - 4], 0x19
call fcn.004665b0
mov ecx, eax
call fcn.004675f0
mov edx, dword [ebp - 0x378]
test al, al
sete bl
add edx, 0xfffffff0
mov byte [ebp - 4], 0x18
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40441c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x354]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x17
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40443f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x358]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x13
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x404460
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test bl, bl
jne 0x4045ee
push str._L_update_low_ver
lea ecx, [ebp - 0x358]
call fcn.00401ae0
lea eax, [ebp - 0x358]
push eax
lea eax, [ebp - 0x354]
push eax
mov byte [ebp - 4], 0x1a
call fcn.00488de0
add esp, 8
push dword [eax]
lea ecx, [ebp - 0x378]
mov byte [ebp - 4], 0x1b
call fcn.00401a50
push dword [eax]
lea ecx, [ebp - 0x394]
mov byte [ebp - 4], 0x1c
call fcn.004665b0
mov ecx, eax
call fcn.00466ee0
push eax
lea ecx, [ebp - 0x374]
call fcn.00401ae0
lea ecx, [ebp - 0x378]
call fcn.00401fa0
lea ecx, [ebp - 0x354]
call fcn.00401fa0
lea ecx, [ebp - 0x358]
mov byte [ebp - 4], 0x20
call fcn.00401fa0
mov eax, dword [ebp - 0x374]
cmp dword [eax - 0xc], 0
je 0x4045e3
push str.update_high_ver
lea ecx, [ebp - 0x394]
call fcn.004665b0
mov ecx, eax
call fcn.004675f0
test al, al
je 0x4045e3
push str.update_high_ver
lea ecx, [ebp - 0x394]
call fcn.004665b0
mov ecx, eax
call fcn.00466ee0
push eax
lea ecx, [ebp - 0x370]
call fcn.00401ae0
mov eax, dword [ebp - 0x370]
mov byte [ebp - 4], 0x21
cmp dword [eax - 0xc], 0
jne 0x404635
mov edi, dword [0x55aac0]
mov eax, edi
imul eax, edi
cdq
mov ecx, 0xb
idiv ecx
mov dword [ebp - 0x354], edi
cmp edx, 2
jne 0x4045d8
mov eax, edi
cdq
sub eax, edx
lea esi, [ecx + 0x4c]
xor ecx, ecx
mov ebx, eax
sar ebx, 1
mov dword [ebp - 0x358], ecx
mov dword [ebp - 0x378], ebx
lea ebx, [ebx]
test ebx, ebx
jle 0x4045cd
mov eax, edi
cdq
and edx, 3
lea edi, [edx + eax]
sar edi, 2
xor edx, edx
test edi, edi
jle 0x4045bc
mov eax, edx
mov ecx, edi
lea ebx, [ebx]
add esi, eax
dec eax
dec ecx
jne 0x4045b0
mov ecx, dword [ebp - 0x358]
add edx, ecx
dec ebx
jne 0x4045a2
mov ebx, dword [ebp - 0x378]
mov edi, dword [ebp - 0x354]
inc ecx
mov dword [ebp - 0x358], ecx
cmp ecx, esi
jl 0x404590
lea ecx, [ebp - 0x370]
call fcn.00401fa0
lea ecx, [ebp - 0x374]
call fcn.00401fa0
lea ecx, [ebp - 0x394]
mov byte [ebp - 4], 0x12
call fcn.00466320
lea ecx, [ebp - 0x350]
call fcn.00402530
lea ecx, [ebp - 0x234]
call fcn.0041bef0
mov eax, dword [ebp - 0x2b8]
lea ecx, [ebp - 0x2b4]
cmp eax, ecx
je 0x404b92
push eax
call fcn.004e0005
add esp, 4
jmp 0x404b92
push str._L_download_url
lea ecx, [ebp - 0x358]
call fcn.00401ae0
lea eax, [ebp - 0x358]
push eax
lea eax, [ebp - 0x354]
push eax
mov byte [ebp - 4], 0x22
call fcn.00488de0
add esp, 8
push dword [eax]
lea ecx, [ebp - 0x378]
mov byte [ebp - 4], 0x23
call fcn.00401a50
push dword [eax]
lea ecx, [ebp - 0x394]
mov byte [ebp - 4], 0x24
call fcn.004665b0
mov ecx, eax
call fcn.004675f0
test al, al
lea ecx, [ebp - 0x378]
sete bl
call fcn.00401fa0
lea ecx, [ebp - 0x354]
call fcn.00401fa0
lea ecx, [ebp - 0x358]
mov byte [ebp - 4], 0x21
call fcn.00401fa0
test bl, bl
jne 0x4045d8
push str._L_download_url
lea ecx, [ebp - 0x358]
call fcn.00401ae0
lea eax, [ebp - 0x358]
push eax
lea eax, [ebp - 0x39c]
push eax
mov byte [ebp - 4], 0x25
call fcn.00488de0
add esp, 8
push dword [eax]
lea ecx, [ebp - 0x378]
mov byte [ebp - 4], 0x26
call fcn.00401a50
push dword [eax]
lea ecx, [ebp - 0x394]
mov byte [ebp - 4], 0x27
call fcn.004665b0
mov ecx, eax
call fcn.00466ee0
push eax
lea ecx, [ebp - 0x37c]
call fcn.00401ae0
lea ecx, [ebp - 0x378]
call fcn.00401fa0
lea ecx, [ebp - 0x39c]
call fcn.00401fa0
lea ecx, [ebp - 0x358]
mov byte [ebp - 4], 0x2b
call fcn.00401fa0
mov eax, dword [ebp - 0x37c]
cmp dword [eax - 0xc], 0
je 0x404896
mov eax, dword [ebp - 0x370]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x35c], esp
mov esi, esp
push eax
call fcn.00404d60
add eax, 0x10
add esp, 4
mov dword [esi], eax
mov eax, dword [ebp - 0x374]
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
mov byte [ebp - 4], 0x2c
call fcn.00404d60
mov ebx, dword [ebp - 0x380]
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov ecx, ebx
mov byte [ebp - 4], 0x2b
call fcn.004092f0
test al, al
je 0x404896
lea eax, [ebp - 0x37c]
push 0x50def4
push eax
call fcn.00402860
add esp, 8
test al, al
jne 0x404bcf
lea eax, [ebp - 0x37c]
push 0x50defc
push eax
call fcn.00402860
add esp, 8
test al, al
jne 0x404bcf
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21a]
push eax
call fcn.004e0ad0
add esp, 0xc
lea eax, [ebp - 0x21c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x4048fe
push ecx
mov ecx, esp
push str.59727f79715b6f6e754f6a7e7b6e7f4f6876455d7f6e4e7f776a4a7b6e7245
call fcn.00401b70
lea eax, [ebp - 0x35c]
push eax
call fcn.00487560
add esp, 8
mov esi, eax
mov edx, dword [0x5591b8]
mov ecx, 0x5591b8
mov byte [ebp - 4], 0x30
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x354], eax
push esi
lea eax, [ebp - 0x354]
push eax
lea eax, [ebp - 0x380]
push eax
mov byte [ebp - 4], 0x31
call fcn.00462200
add esp, 0xc
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x32
call fcn.00408a30
lea ecx, [ebp - 0x380]
call fcn.00401fa0
lea ecx, [ebp - 0x354]
call fcn.00401fa0
lea ecx, [ebp - 0x35c]
call fcn.00401fa0
lea ecx, [ebp - 0x37c]
call fcn.00401fa0
lea ecx, [ebp - 0x370]
call fcn.00401fa0
lea ecx, [ebp - 0x374]
call fcn.00401fa0
lea ecx, [ebp - 0x394]
mov byte [ebp - 4], 0x12
call fcn.00466320
lea ecx, [ebp - 0x350]
call fcn.00402530
lea ecx, [ebp - 0x234]
call fcn.0041bef0
mov eax, dword [ebp - 0x2b8]
lea ecx, [ebp - 0x2b4]
cmp eax, ecx
je 0x404b92
push eax
call fcn.004e0005
add esp, 4
jmp 0x404b92
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x36c]
call fcn.00401b70
mov eax, dword [0x55aac0]
imul eax, eax
cdq
mov ecx, 0x18
idiv ecx
mov byte [ebp - 4], 0x33
cmp edx, 0x13
jne 0x40497b
mov eax, dword [0x50e028]
movq xmm0, qword [str.5bEqHs7NhsV]
mov dword [ebp - 0x3a0], eax
lea eax, [ebp - 0x3a8]
movq qword [ebp - 0x3a8], xmm0
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404950
sub eax, edx
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004ddf94
add esp, 4
push eax
call fcn.004e00c3
add esp, 4
mov eax, dword [ebp - 0x36c]
lea ecx, [ebp - 0x36c]
mov eax, dword [eax - 0xc]
dec eax
push eax
call fcn.004050f0
movzx eax, ax
cmp eax, 0x5c
je 0x4049f2
push str._L__
lea ecx, [ebp - 0x354]
call fcn.00401b70
lea eax, [ebp - 0x354]
push eax
lea eax, [ebp - 0x35c]
push eax
mov byte [ebp - 4], 0x34
call fcn.00488de0
add esp, 8
mov eax, dword [eax]
lea ecx, [ebp - 0x36c]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x35
push eax
call fcn.00402ce0
lea ecx, [ebp - 0x35c]
call fcn.00401fa0
lea ecx, [ebp - 0x354]
mov byte [ebp - 4], 0x33
call fcn.00401fa0
mov eax, dword [ebp - 0x36c]
add eax, 0xfffffff0
push eax
call fcn.00404d60
add eax, 0x10
add esp, 4
mov dword [ebp - 0x358], eax
lea eax, [ebp - 0x35c]
push eax
mov byte [ebp - 4], 0x36
call fcn.004870b0
add esp, 4
mov eax, dword [eax]
lea ecx, [ebp - 0x36c]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x37
push eax
call fcn.00402ce0
lea ecx, [ebp - 0x35c]
mov byte [ebp - 4], 0x36
call fcn.00401fa0
lea eax, [ebp - 0x36c]
push eax
lea eax, [ebp - 0x37c]
push eax
call fcn.00410cb0
add esp, 8
test al, al
jne 0x404af9
push ecx
mov ecx, esp
push str.59727f79715b6f6e754f6a7e7b6e7f4f687645526e6e6a4e755873747b68635c73767f487f6b6f7f696e
call fcn.00401b70
lea eax, [ebp - 0x380]
push eax
call fcn.00487560
add esp, 8
mov esi, eax
mov edx, dword [0x5591b8]
mov ecx, 0x5591b8
mov byte [ebp - 4], 0x38
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x354], eax
push esi
lea eax, [ebp - 0x354]
push eax
lea eax, [ebp - 0x35c]
push eax
mov byte [ebp - 4], 0x39
call fcn.00462200
add esp, 0xc
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x3a
call fcn.00408a30
lea ecx, [ebp - 0x35c]
call fcn.00401fa0
lea ecx, [ebp - 0x354]
call fcn.00401fa0
lea ecx, [ebp - 0x380]
call fcn.00401fa0
lea ecx, [ebp - 0x358]
call fcn.00401fa0
lea ecx, [ebp - 0x36c]
jmp 0x404891
lea eax, [ebp - 0x358]
push eax
lea eax, [ebp - 0x36c]
push eax
mov ecx, ebx
call fcn.00406fb0
lea ecx, [ebp - 0x358]
call fcn.00401fa0
lea ecx, [ebp - 0x36c]
call fcn.00401fa0
lea ecx, [ebp - 0x37c]
call fcn.00401fa0
lea ecx, [ebp - 0x370]
call fcn.00401fa0
lea ecx, [ebp - 0x374]
call fcn.00401fa0
lea ecx, [ebp - 0x394]
mov byte [ebp - 4], 0x12
call fcn.00466320
lea ecx, [ebp - 0x350]
call fcn.00402530
lea ecx, [ebp - 0x234]
call fcn.0041bef0
mov eax, dword [ebp - 0x2b8]
lea ecx, [ebp - 0x2b4]
cmp eax, ecx
je 0x404b83
push eax
call fcn.004e0005
add esp, 4
call fcn.00409ab0
test al, al
jne 0x404b92
dec dword [0x55aac0]
lea ecx, [ebp - 0x364]
call fcn.00401fa0
lea ecx, [ebp - 0x368]
call fcn.00401fa0
lea ecx, [ebp - 0x360]
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.004df4f4
mov esp, ebp
pop ebp
ret
mov esi, dword [0x55aac0]
mov ecx, 6
lea eax, [esi + 1]
imul eax, esi
cdq
idiv ecx
cmp edx, 3
jne 0x404c47
mov eax, 0x2aaaaaab
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
xor edi, edi
lea ecx, [eax + eax*2]
add ecx, ecx
mov eax, esi
sub eax, ecx
cmp eax, 0xa6
je 0x404c41
jmp 0x404c10
mov eax, esi
or eax, 0xffffff61
add esi, eax
mov eax, esi
imul eax, esi
inc edi
cmp edi, eax
jg 0x404c41
mov eax, 0x2aaaaaab
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
add ecx, ecx
mov eax, esi
sub eax, ecx
cmp eax, 0xa6
jne 0x404c10
mov dword [0x55aac0], edi
push ecx
mov ecx, esp
push str.59727f79715b6f6e754f6a7e7b6e7f4f6876456f687645747b457c7568456f6a7e7b6e7f
call fcn.00401b70
lea eax, [ebp - 0x380]
push eax
call fcn.00487560
add esp, 8
mov esi, eax
mov edx, dword [0x5591b8]
mov ecx, 0x5591b8
mov byte [ebp - 4], 0x2d
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x354], eax
push esi
lea eax, [ebp - 0x354]
push eax
lea eax, [ebp - 0x35c]
push eax
mov byte [ebp - 4], 0x2e
call fcn.00462200
add esp, 0xc
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x2f
call fcn.00408a30
lea ecx, [ebp - 0x35c]
call fcn.00401fa0
lea ecx, [ebp - 0x354]
call fcn.00401fa0
lea ecx, [ebp - 0x380]
jmp 0x404891