Function at 0x403f20
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4bcf1d
mov eax, dword fs:[0]
push eax
sub esp, 0x968
mov eax, dword [0x515e20]
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 - 0x92c], ebx
mov dword [ebp - 0x974], ebx
call fcn.00409800
test al, al
jne 0x403f7a
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_PeekNamedPipe]
mov eax, dword [ebx + 0x78]
cmp dword [eax - 0xc], 0
je 0x4048d9
add eax, 0xfffffff0
push eax
call fcn.00404f90
add eax, 0x10
add esp, 4
mov dword [ebp - 0x938], eax
mov dword [ebp - 4], 0
call fcn.00409710
test al, al
jne 0x403fce
mov eax, 0x67
mov esi, 0xfb
test esi, esi
je 0x403fc7
cdq
idiv esi
mov ecx, esi
mov eax, ecx
mov esi, edx
test ecx, ecx
jne 0x403fb6
add eax, esi
mov dword [0x517280], eax
push dword [ebx + 0x4c]
push ecx
mov ecx, esp
push str.9fa7a5a9b4bbada099
call fcn.00401c40
lea eax, [ebp - 0x930]
push eax
call fcn.00446a00
add esp, 8
push dword [eax]
lea ecx, [ebp - 0x938]
mov byte [ebp - 4], 1
call fcn.00406df0
mov edx, dword [ebp - 0x930]
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 0x404024
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x928]
push eax
call fcn.00446190
add esp, 4
mov esi, eax
push 0x4d288c
lea ecx, [ebp - 0x954]
mov byte [ebp - 4], 2
call fcn.00401c40
push 0x4d2884
push eax
lea eax, [ebp - 0x944]
push eax
mov byte [ebp - 4], 3
call fcn.00402ae0
push esi
push eax
lea eax, [ebp - 0x930]
push eax
mov byte [ebp - 4], 4
call fcn.00402a20
add esp, 0x18
mov eax, dword [eax]
lea ecx, [ebp - 0x938]
push dword [eax - 0xc]
mov byte [ebp - 4], 5
push eax
call fcn.00402ea0
mov edx, dword [ebp - 0x930]
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 0x4040ac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x944]
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 0x4040cf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x954]
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 0x4040f2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x928]
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 0x404115
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5159f8]
mov ecx, 0x5159f8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x93c], eax
lea eax, [ebp - 0x93c]
push eax
lea eax, [ebp - 0x938]
push eax
lea eax, [ebp - 0x940]
push eax
mov byte [ebp - 4], 6
call fcn.0041b4d0
lea eax, [ebp - 0x930]
push eax
mov byte [ebp - 4], 7
call fcn.00418d20
push eax
lea eax, [ebp - 0x940]
push eax
call fcn.004028a0
mov esi, dword [ebp - 0x930]
add esi, 0xfffffff0
add esp, 0x18
mov byte [ebp - 0x95d], al
lea ecx, [esi + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404194
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov al, byte [ebp - 0x95d]
test al, al
je 0x40433b
mov eax, dword [0x517280]
imul eax, eax
cdq
mov ecx, 6
idiv ecx
mov eax, dword [0x517310]
mov ecx, 0x44a61caf
cmp edx, 5
cmove eax, ecx
mov dword [0x517310], eax
lea eax, [ebp - 0x93c]
push eax
push ecx
mov ecx, esp
push str.a78c81878fa591908bb19480859081b19688bbac909094b6819591819790bb
call fcn.00401c40
lea eax, [ebp - 0x944]
push eax
call fcn.00446a00
add esp, 8
mov esi, eax
mov edx, dword [0x5159f8]
mov ecx, 0x5159f8
mov byte [ebp - 4], 8
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x928], eax
push esi
lea eax, [ebp - 0x928]
push eax
lea eax, [ebp - 0x930]
push eax
mov byte [ebp - 4], 9
call fcn.0042fa40
add esp, 0xc
push eax
lea eax, [ebp - 0x92c]
push eax
mov byte [ebp - 4], 0xa
call fcn.0042fa40
add esp, 0xc
push eax
mov ecx, ebx
mov byte [ebp - 4], 0xb
call fcn.004086a0
mov edx, dword [ebp - 0x92c]
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 0x40425f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x930]
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 0x404282
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x928]
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 0x4042a5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x944]
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 0x4042c8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x940]
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 0x4042eb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x93c]
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 0x40430e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x938]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x4048d9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4048d9
mov eax, dword [ebp - 0x940]
cmp dword [eax - 0xc], 0
jne 0x4043fc
push ecx
mov ecx, esp
push str.a78c81878fa591908bb19480859081b19688bb979096ae978b8abb818994909d
call fcn.00401c40
lea eax, [ebp - 0x930]
push eax
call fcn.00446a00
add esp, 8
mov esi, eax
mov edx, dword [0x5159f8]
mov ecx, 0x5159f8
mov byte [ebp - 4], 0xc
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x928], eax
push esi
lea eax, [ebp - 0x928]
push eax
lea eax, [ebp - 0x92c]
push eax
mov byte [ebp - 4], 0xd
call fcn.0042fa40
add esp, 0xc
push eax
mov ecx, ebx
mov byte [ebp - 4], 0xe
call fcn.004086a0
mov edx, dword [ebp - 0x92c]
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 0x4043ce
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x928]
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 0x4043f1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x930]
jmp 0x4042ab
lea ecx, [ebp - 0x8b0]
push 3
mov dword [ebp - 0x8b4], ecx
push eax
lea ecx, [ebp - 0x8b4]
mov byte [ebp - 4], 0xf
call fcn.00406900
push dword [ebp - 0x8b4]
lea ecx, [ebp - 0x830]
mov byte [ebp - 4], 0x10
call fcn.00401000
lea ecx, [ebp - 0x924]
mov byte [ebp - 4], 0x11
call fcn.00430310
push 0
lea ecx, [ebp - 0x970]
mov byte [ebp - 4], 0x12
call fcn.00434340
push 1
lea eax, [ebp - 0x970]
push eax
lea eax, [ebp - 0x830]
push eax
lea ecx, [ebp - 0x924]
mov byte [ebp - 4], 0x13
call fcn.00432680
test al, al
jne 0x404629
mov ecx, dword [0x517280]
mov esi, 0x18
lea eax, [ecx + 1]
imul eax, ecx
cdq
idiv esi
cmp edx, 7
jne 0x4044f2
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x930], eax
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x944], eax
xor ebx, ebx
mov eax, ecx
and ecx, 0x80000001
jns 0x4044c1
dec ecx
or ecx, 0xfffffffe
inc ecx
mov dword [ebp - 0x928], ecx
lea edx, [ebp - 0x57]
lea ebx, [ebx]
mov cl, al
mov eax, dword [0x517280]
sub cl, bl
inc ebx
mov word [edx - 1], 0
mov byte [edx + 1], 0
lea edx, [edx + 6]
cmp ebx, 0xb
jl 0x4044d0
mov ebx, dword [ebp - 0x92c]
push ecx
mov ecx, esp
push str.a78c81878fa591908bb19480859081b19688bb9485969781bb8196968b96
call fcn.00401c40
lea eax, [ebp - 0x930]
push eax
call fcn.00446a00
add esp, 8
mov esi, eax
mov edx, dword [0x5159f8]
mov ecx, 0x5159f8
mov byte [ebp - 4], 0x14
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x928], eax
push esi
lea eax, [ebp - 0x928]
push eax
lea eax, [ebp - 0x92c]
push eax
mov byte [ebp - 4], 0x15
call fcn.0042fa40
add esp, 0xc
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x16
call fcn.004086a0
mov edx, dword [ebp - 0x92c]
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 0x404575
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x928]
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 0x404598
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x930]
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 0x4045bb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x970]
mov byte [ebp - 4], 0x12
call fcn.004345e0
lea ecx, [ebp - 0x924]
call fcn.00402590
cmp dword [ebp - 0x81c], 0x10
jb 0x4045ec
push dword [ebp - 0x830]
call fcn.0049da8e
add esp, 4
mov eax, dword [ebp - 0x8b4]
lea ecx, [ebp - 0x8b0]
mov dword [ebp - 0x81c], 0xf
mov dword [ebp - 0x820], 0
mov byte [ebp - 0x830], 0
cmp eax, ecx
je 0x4042c8
push eax
call fcn.0049eda5
add esp, 4
jmp 0x4042c8
push str._L_update_low_ver
lea ecx, [ebp - 0x928]
call fcn.00401bb0
lea eax, [ebp - 0x928]
push eax
lea eax, [ebp - 0x944]
push eax
mov byte [ebp - 4], 0x17
call fcn.00447d60
add esp, 8
push dword [eax]
lea ecx, [ebp - 0x930]
mov byte [ebp - 4], 0x18
call fcn.00401b20
push dword [eax]
lea ecx, [ebp - 0x970]
mov byte [ebp - 4], 0x19
call fcn.00434870
mov ecx, eax
call fcn.004359b0
mov edx, dword [ebp - 0x930]
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 0x4046a4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x944]
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 0x4046c7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x928]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x13
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x4046e8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test bl, bl
je 0x404718
call fcn.00409920
test al, al
jne 0x40487a
call fcn.0049ed34
mov ecx, dword [0x517280]
cmp ecx, eax
jne 0x40487a
dec ecx
mov dword [0x517280], ecx
jmp 0x40487a
push str._L_update_low_ver
lea ecx, [ebp - 0x954]
call fcn.00401bb0
lea eax, [ebp - 0x954]
push eax
lea eax, [ebp - 0x934]
push eax
mov byte [ebp - 4], 0x1a
call fcn.00447d60
add esp, 8
push dword [eax]
lea ecx, [ebp - 0x958]
mov byte [ebp - 4], 0x1b
call fcn.00401b20
push dword [eax]
lea ecx, [ebp - 0x970]
mov byte [ebp - 4], 0x1c
call fcn.00434870
mov ecx, eax
call fcn.00435260
push eax
lea ecx, [ebp - 0x948]
call fcn.00401bb0
lea ecx, [ebp - 0x958]
call fcn.00402090
lea ecx, [ebp - 0x934]
call fcn.00402090
lea ecx, [ebp - 0x954]
mov byte [ebp - 4], 0x20
call fcn.00402090
call fcn.004097a0
test al, al
jne 0x404835
xor ecx, ecx
mov dword [ebp - 0x928], ecx
lea esi, [ebp - 0x818]
jmp 0x4047c0
xor eax, eax
mov dword [ebp - 0x944], eax
mov dword [ebp - 0x930], esi
mov edi, edi
mov esi, dword [0x517280]
lea ebx, [eax + 1]
mov eax, esi
cdq
inc ecx
idiv ecx
mov eax, esi
mov ecx, esi
sub ecx, dword [ebp - 0x928]
mov esi, dword [ebp - 0x930]
mov edi, edx
cdq
imul edi, ecx
idiv ebx
add edi, eax
sub edi, dword [ebp - 0x944]
push edi
push 0x4d1b10
call fcn.0049f507
mov ecx, dword [ebp - 0x928]
mov eax, ebx
add esi, 4
add esp, 8
mov dword [ebp - 0x944], eax
mov dword [ebp - 0x930], esi
cmp eax, 0xd
jl 0x4047d0
inc ecx
mov dword [ebp - 0x928], ecx
cmp ecx, 0x19
jl 0x4047c0
mov eax, dword [ebp - 0x948]
cmp dword [eax - 0xc], 0
jne 0x4048f5
call fcn.00409770
test al, al
jne 0x40486f
push 4
call fcn.0049dabd
add esp, 4
mov esi, eax
call fcn.0049ed34
mov dword [esi], eax
push esi
mov dword [0x517280], eax
call fcn.0049da8e
add esp, 4
lea ecx, [ebp - 0x948]
call fcn.00402090
lea ecx, [ebp - 0x970]
mov byte [ebp - 4], 0x12
call fcn.004345e0
lea ecx, [ebp - 0x924]
call fcn.00402590
lea ecx, [ebp - 0x830]
call fcn.00401060
mov eax, dword [ebp - 0x8b4]
lea ecx, [ebp - 0x8b0]
cmp eax, ecx
je 0x4048b8
push eax
call fcn.0049eda5
add esp, 4
lea ecx, [ebp - 0x940]
call fcn.00402090
lea ecx, [ebp - 0x93c]
call fcn.00402090
lea ecx, [ebp - 0x938]
call fcn.00402090
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.0049e294
mov esp, ebp
pop ebp
ret
push str.update_high_ver
lea ecx, [ebp - 0x970]
call fcn.00434870
mov ecx, eax
call fcn.004359b0
test al, al
je 0x40486f
push str.update_high_ver
lea ecx, [ebp - 0x970]
call fcn.00434870
mov ecx, eax
call fcn.00435260
push eax
lea ecx, [ebp - 0x94c]
call fcn.00401bb0
mov eax, dword [ebp - 0x94c]
mov byte [ebp - 4], 0x21
cmp dword [eax - 0xc], 0
je 0x404e8b
push str._L_download_url
lea ecx, [ebp - 0x930]
call fcn.00401bb0
lea eax, [ebp - 0x930]
push eax
lea eax, [ebp - 0x958]
push eax
mov byte [ebp - 4], 0x22
call fcn.00447d60
add esp, 8
push dword [eax]
lea ecx, [ebp - 0x934]
mov byte [ebp - 4], 0x23
call fcn.00401b20
push dword [eax]
lea ecx, [ebp - 0x970]
mov byte [ebp - 4], 0x24
call fcn.00434870
mov ecx, eax
call fcn.004359b0
test al, al
lea ecx, [ebp - 0x934]
sete bl
call fcn.00402090
lea ecx, [ebp - 0x958]
call fcn.00402090
lea ecx, [ebp - 0x930]
mov byte [ebp - 4], 0x21
call fcn.00402090
test bl, bl
jne 0x404e8b
push str._L_download_url
lea ecx, [ebp - 0x930]
call fcn.00401bb0
lea eax, [ebp - 0x930]
push eax
lea eax, [ebp - 0x958]
push eax
mov byte [ebp - 4], 0x25
call fcn.00447d60
add esp, 8
push dword [eax]
lea ecx, [ebp - 0x934]
mov byte [ebp - 4], 0x26
call fcn.00401b20
push dword [eax]
lea ecx, [ebp - 0x970]
mov byte [ebp - 4], 0x27
call fcn.00434870
mov ecx, eax
call fcn.00435260
push eax
lea ecx, [ebp - 0x950]
call fcn.00401bb0
lea ecx, [ebp - 0x934]
call fcn.00402090
lea ecx, [ebp - 0x958]
call fcn.00402090
lea ecx, [ebp - 0x930]
mov byte [ebp - 4], 0x2b
call fcn.00402090
mov eax, dword [ebp - 0x950]
cmp dword [eax - 0xc], 0
je 0x404e80
mov eax, dword [ebp - 0x94c]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x944], esp
mov esi, esp
push eax
call fcn.00404f90
add eax, 0x10
add esp, 4
mov dword [esi], eax
mov eax, dword [ebp - 0x948]
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
mov byte [ebp - 4], 0x2c
call fcn.00404f90
mov edi, dword [ebp - 0x92c]
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov ecx, edi
mov byte [ebp - 4], 0x2b
call fcn.00408f90
test al, al
je 0x404e80
lea eax, [ebp - 0x950]
push 0x4d2a54
push eax
call fcn.00402900
add esp, 8
test al, al
jne 0x404e9b
lea eax, [ebp - 0x950]
push 0x4d2a5c
push eax
call fcn.00402900
add esp, 8
test al, al
jne 0x404e9b
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x260], ax
lea eax, [ebp - 0x25e]
push eax
call fcn.0049f660
add esp, 0xc
lea eax, [ebp - 0x260]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x404c04
call fcn.00410dd0
test al, al
jne 0x404b83
mov edx, dword [0x517280]
xor ecx, ecx
lea esp, [esp]
mov eax, dword [ebp + ecx*4 - 0x304]
add eax, dword [ebp + ecx*4 - 0x2f0]
add ecx, 6
add eax, dword [ebp + ecx*4 - 0x30c]
add eax, dword [ebp + ecx*4 - 0x310]
add eax, dword [ebp + ecx*4 - 0x314]
add eax, dword [ebp + ecx*4 - 0x318]
imul eax, eax, 0xc3
add edx, eax
mov dword [0x517280], edx
cmp ecx, 0x2ac
jb 0x404b40
push ecx
mov ecx, esp
push str.a78c81878fa591908bb19480859081b19688bba38190b0818994b485908cbb
call fcn.00401c40
lea eax, [ebp - 0x954]
push eax
call fcn.00446a00
add esp, 8
mov esi, eax
mov edx, dword [0x5159f8]
mov ecx, 0x5159f8
mov byte [ebp - 4], 0x30
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x92c], eax
push esi
lea eax, [ebp - 0x92c]
push eax
lea eax, [ebp - 0x944]
push eax
mov byte [ebp - 4], 0x31
call fcn.0042fa40
add esp, 0xc
mov byte [ebp - 4], 0x32
push eax
mov ecx, edi
call fcn.004086a0
lea ecx, [ebp - 0x944]
call fcn.00402090
lea ecx, [ebp - 0x92c]
call fcn.00402090
lea ecx, [ebp - 0x954]
jmp 0x404e7b
lea eax, [ebp - 0x260]
push eax
lea ecx, [ebp - 0x95c]
call fcn.00401c40
mov byte [ebp - 4], 0x33
call fcn.00409770
mov ebx, 4
test al, al
jne 0x404c67
mov esi, dword [0x517280]
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 + 0x2f4]
mul ebx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0049d210
add esp, 4
push eax
call fcn.0049ee63
add esp, 4
mov eax, dword [ebp - 0x95c]
lea ecx, [ebp - 0x95c]
mov eax, dword [eax - 0xc]
dec eax
push eax
call fcn.00405320
movzx eax, ax
cmp eax, 0x5c
je 0x404cde
push str._L__
lea ecx, [ebp - 0x92c]
call fcn.00401c40
lea eax, [ebp - 0x92c]
push eax
lea eax, [ebp - 0x934]
push eax
mov byte [ebp - 4], 0x34
call fcn.00447d60
add esp, 8
mov eax, dword [eax]
lea ecx, [ebp - 0x95c]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x35
push eax
call fcn.00402ea0
lea ecx, [ebp - 0x934]
call fcn.00402090
lea ecx, [ebp - 0x92c]
mov byte [ebp - 4], 0x33
call fcn.00402090
mov eax, dword [ebp - 0x95c]
add eax, 0xfffffff0
push eax
call fcn.00404f90
add eax, 0x10
add esp, 4
mov dword [ebp - 0x928], eax
lea eax, [ebp - 0x934]
push eax
mov byte [ebp - 4], 0x36
call fcn.00446190
add esp, 4
mov eax, dword [eax]
lea ecx, [ebp - 0x95c]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x37
push eax
call fcn.00402ea0
lea ecx, [ebp - 0x934]
mov byte [ebp - 4], 0x36
call fcn.00402090
mov esi, dword [0x517280]
lea ecx, [esi + 1]
lea eax, [esi + 2]
imul eax, ecx
imul eax, esi
cdq
mov ecx, 6
idiv ecx
cmp edx, 2
jne 0x404d85
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]
mul ebx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0049d210
add esp, 4
push eax
call fcn.0049ee63
add esp, 4
lea eax, [ebp - 0x95c]
push eax
lea eax, [ebp - 0x950]
push eax
call fcn.0041deb0
add esp, 8
test al, al
jne 0x404e2b
call fcn.004098d0
push ecx
mov ecx, esp
push str.a78c81878fa591908bb19480859081b19688bbac909094b08ba68d8a85969da28d8881b6819591819790
call fcn.00401c40
lea eax, [ebp - 0x958]
push eax
call fcn.00446a00
add esp, 8
mov esi, eax
mov edx, dword [0x5159f8]
mov ecx, 0x5159f8
mov byte [ebp - 4], 0x38
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x92c], eax
push esi
lea eax, [ebp - 0x92c]
push eax
lea eax, [ebp - 0x934]
push eax
mov byte [ebp - 4], 0x39
call fcn.0042fa40
add esp, 0xc
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3a
call fcn.004086a0
lea ecx, [ebp - 0x934]
call fcn.00402090
lea ecx, [ebp - 0x92c]
call fcn.00402090
lea ecx, [ebp - 0x958]
call fcn.00402090
jmp 0x404e6a
call fcn.00409940
test al, al
jne 0x404e55
push 4
call fcn.0049dabd
add esp, 4
mov esi, eax
call fcn.0049ed34
mov dword [esi], eax
push esi
mov dword [0x517280], eax
call fcn.0049da8e
add esp, 4
lea eax, [ebp - 0x928]
push eax
lea eax, [ebp - 0x95c]
push eax
mov ecx, edi
call fcn.00407030
lea ecx, [ebp - 0x928]
call fcn.00402090
lea ecx, [ebp - 0x95c]
call fcn.00402090
lea ecx, [ebp - 0x950]
call fcn.00402090
lea ecx, [ebp - 0x94c]
call fcn.00402090
jmp 0x40486f
push ecx
mov ecx, esp
push str.a78c81878fa591908bb19480859081b19688bb919688bb8a85bb828b96bb919480859081
call fcn.00401c40
lea eax, [ebp - 0x954]
push eax
call fcn.00446a00
add esp, 8
mov esi, eax
mov edx, dword [0x5159f8]
mov ecx, 0x5159f8
mov byte [ebp - 4], 0x2d
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x92c], eax
push esi
lea eax, [ebp - 0x92c]
push eax
lea eax, [ebp - 0x944]
push eax
mov byte [ebp - 4], 0x2e
call fcn.0042fa40
add esp, 0xc
mov byte [ebp - 4], 0x2f
jmp 0x404bdb