Function at 0x4f39c0
Capabilities:
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x585b32
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x114c
call fcn.005591d0
mov eax, dword [0x5e95e0]
xor eax, esp
mov dword [esp + 0x1148], eax
push ebx
push esi
push edi
mov eax, dword [0x5e95e0]
xor eax, esp
push eax
lea eax, [esp + 0x1160]
mov dword fs:[0], eax
push 0x5beb1c
lea eax, [esp + 0x38]
push 0x5f21f0
push eax
call fcn.00401ba0
add esp, 0xc
mov ecx, dword [ebp + 8]
xor ebx, ebx
mov dword [esp + 0x1168], ebx
mov eax, dword [eax]
push ecx
push eax
lea edx, [esp + 0x134]
push edx
call fcn.004f6690
mov byte [esp + 0x1168], 2
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4f3a61
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x86c]
push ecx
call fcn.004f53d0
lea edx, [esp + 0x44]
push edx
mov byte [esp + 0x116c], 3
call fcn.004ef830
lea esi, [esp + 0x424]
mov byte [esp + 0x1168], 4
call fcn.004f0fe0
lea esi, [esp + 0x4e4]
mov byte [esp + 0x1168], 5
call fcn.004f17e0
lea eax, [esp + 0x8cc]
push eax
mov byte [esp + 0x116c], 6
call fcn.004f23d0
push 0x10b
lea ecx, [esp + 0x390]
push ecx
mov byte [esp + 0x1170], 7
call fcn.004f6080
mov dword [esp + method.CDlgOptionStart.virtual_0], vtable.CDlgOptionStart.0
mov dword [esp + 0x408], ebx
mov dword [esp + 0x40c], ebx
mov dword [esp + 0x410], ebx
mov dword [esp + 0x414], ebx
mov dword [esp + 0x41c], ebx
mov dword [esp + 0x404], ebx
lea esi, [esp + 0x594]
mov byte [esp + 0x1168], 8
call fcn.004f13c0
lea edx, [esp + 0x784]
push edx
mov byte [esp + 0x116c], 9
call fcn.004f1b00
push 0x111
lea eax, [esp + 0x230]
push eax
mov byte [esp + 0x1170], 0xa
call fcn.004f6080
mov dword [esp + method.CDlgOptionAd.virtual_0], vtable.CDlgOptionAd.0
mov dword [esp + 0x2a8], ebx
mov dword [esp + 0x2ac], ebx
mov dword [esp + 0x2b0], ebx
mov dword [esp + 0x2b4], ebx
mov dword [esp + 0x2b8], ebx
mov dword [esp + 0x2bc], ebx
mov dword [esp + 0x2c0], ebx
mov dword [esp + 0x2a4], ebx
push 0x116
lea ecx, [esp + 0xc18]
push ecx
mov byte [esp + 0x1170], 0xb
call fcn.004f6080
mov dword [esp + 0xc14], 0x5be8fc
mov dword [esp + 0xc8c], ebx
lea edx, [esp + 0x9a4]
push edx
mov byte [esp + 0x116c], 0xc
call fcn.004f0890
lea eax, [esp + 0x62c]
push eax
mov byte [esp + 0x116c], 0xd
call fcn.004372f0
lea ecx, [esp + 0xadc]
push ecx
mov byte [esp + 0x116c], 0xe
call fcn.00519890
lea edx, [esp + 0x8c0]
mov byte [esp + 0x1168], 0xf
push 0xc
mov dword [esp + 0x1ec], edx
call fcn.005308cb
lea ecx, [esp + 0x48]
mov dword [esp + 0x18], eax
mov dword [eax], ecx
mov dword [eax + 4], ebx
mov dword [eax + 8], 1
mov eax, dword [esp + 0x1fc]
add esp, 4
cmp eax, ebx
mov dword [esp + 0x10], eax
jge 0x4f3c45
jmp fcn.00530cad
lea edi, [eax + 1]
lea esi, [esp + 0x1f0]
call fcn.00459ef0
mov edx, dword [esp + 0x1f4]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 0xc
mov dword [edx + ecx*4], eax
call fcn.005308cb
lea edx, [esp + 0x390]
mov dword [esp + 0x18], eax
mov dword [eax], edx
mov dword [eax + 4], ebx
mov dword [eax + 8], 1
mov eax, dword [esp + 0x1fc]
add esp, 4
cmp eax, ebx
mov dword [esp + 0x10], eax
jge 0x4f3c9b
jmp fcn.00530cad
lea edi, [eax + 1]
lea esi, [esp + 0x1f0]
call fcn.00459ef0
mov eax, dword [esp + 0x1f4]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push 0xc
mov dword [eax + edx*4], ecx
call fcn.005308cb
lea ecx, [esp + 0x598]
mov dword [esp + 0x18], eax
mov dword [eax], ecx
mov dword [eax + 4], ebx
mov dword [eax + 8], 1
mov eax, dword [esp + 0x1fc]
add esp, 4
cmp eax, ebx
mov dword [esp + 0x10], eax
jge 0x4f3cf1
jmp fcn.00530cad
lea edi, [eax + 1]
lea esi, [esp + 0x1f0]
call fcn.00459ef0
mov edx, dword [esp + 0x1f4]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 0xc
mov dword [edx + ecx*4], eax
call fcn.005308cb
lea edx, [esp + 0x8d0]
mov dword [esp + 0x18], eax
mov dword [eax], edx
mov dword [eax + 4], ebx
mov dword [eax + 8], 1
mov eax, dword [esp + 0x1fc]
add esp, 4
cmp eax, ebx
mov dword [esp + 0x10], eax
jge 0x4f3d47
jmp fcn.00530cad
lea edi, [eax + 1]
lea esi, [esp + 0x1f0]
call fcn.00459ef0
mov eax, dword [esp + 0x1f4]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push 0xc
mov dword [eax + edx*4], ecx
call fcn.005308cb
lea ecx, [esp + 0x428]
mov dword [esp + 0x18], eax
mov dword [eax], ecx
mov dword [eax + 4], ebx
mov dword [eax + 8], 1
mov eax, dword [esp + 0x1fc]
add esp, 4
cmp eax, ebx
mov dword [esp + 0x10], eax
jge 0x4f3d9d
jmp fcn.00530cad
lea edi, [eax + 1]
lea esi, [esp + 0x1f0]
call fcn.00459ef0
mov edx, dword [esp + 0x1f4]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 0xc
mov dword [edx + ecx*4], eax
call fcn.005308cb
lea edx, [esp + 0x4e8]
mov dword [esp + 0x18], eax
mov dword [eax], edx
mov dword [eax + 4], ebx
mov dword [eax + 8], 1
mov eax, dword [esp + 0x1fc]
add esp, 4
cmp eax, ebx
mov dword [esp + 0x10], eax
jge 0x4f3df3
jmp fcn.00530cad
lea edi, [eax + 1]
lea esi, [esp + 0x1f0]
call fcn.00459ef0
mov eax, dword [esp + 0x1f4]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push 0xc
mov dword [eax + edx*4], ecx
call fcn.005308cb
lea ecx, [esp + 0x230]
mov dword [esp + 0x18], eax
mov dword [eax], ecx
mov dword [eax + 4], ebx
mov dword [eax + 8], 1
mov eax, dword [esp + 0x1fc]
add esp, 4
cmp eax, ebx
mov dword [esp + 0x10], eax
jge 0x4f3e49
jmp fcn.00530cad
lea edi, [eax + 1]
lea esi, [esp + 0x1f0]
call fcn.00459ef0
mov edx, dword [esp + 0x1f4]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 0xc
mov dword [edx + ecx*4], eax
call fcn.005308cb
lea edx, [esp + 0x788]
mov dword [esp + 0x18], eax
mov dword [eax], edx
mov dword [eax + 4], ebx
mov dword [eax + 8], 1
mov eax, dword [esp + 0x1fc]
add esp, 4
cmp eax, ebx
mov dword [esp + 0x10], eax
jge 0x4f3e9f
jmp fcn.00530cad
lea edi, [eax + 1]
lea esi, [esp + 0x1f0]
call fcn.00459ef0
mov eax, dword [esp + 0x1f4]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push 0xc
mov dword [eax + edx*4], ecx
call fcn.005308cb
lea ecx, [esp + 0xc18]
mov dword [esp + 0x18], eax
mov dword [eax], ecx
mov dword [eax + 4], ebx
mov dword [eax + 8], 1
mov eax, dword [esp + 0x1fc]
add esp, 4
cmp eax, ebx
mov dword [esp + 0x10], eax
jge 0x4f3ef5
jmp fcn.00530cad
lea edi, [eax + 1]
lea esi, [esp + 0x1f0]
call fcn.00459ef0
mov edx, dword [esp + 0x1f4]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 0xc
mov dword [edx + ecx*4], eax
call fcn.005308cb
lea edx, [esp + 0x9a8]
mov dword [esp + 0x18], eax
mov dword [eax], edx
mov dword [eax + 4], ebx
mov dword [eax + 8], 1
mov eax, dword [esp + 0x1fc]
add esp, 4
cmp eax, ebx
mov dword [esp + 0x10], eax
jge 0x4f3f4b
jmp fcn.00530cad
lea edi, [eax + 1]
lea esi, [esp + 0x1f0]
call fcn.00459ef0
mov eax, dword [esp + 0x1f4]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push 0xc
mov dword [eax + edx*4], ecx
call fcn.005308cb
lea ecx, [esp + 0x630]
mov dword [esp + 0x18], eax
mov dword [eax], ecx
mov dword [eax + 4], ebx
mov dword [eax + 8], 1
mov eax, dword [esp + 0x1fc]
add esp, 4
cmp eax, ebx
mov dword [esp + 0x10], eax
jge 0x4f3fa1
jmp fcn.00530cad
lea edi, [eax + 1]
lea esi, [esp + 0x1f0]
call fcn.00459ef0
mov edx, dword [esp + 0x1f4]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 0xc
mov dword [edx + ecx*4], eax
call fcn.005308cb
lea edx, [esp + 0xae0]
mov dword [esp + 0x18], eax
mov dword [eax], edx
mov dword [eax + 4], ebx
mov dword [eax + 8], 1
mov eax, dword [esp + 0x1fc]
add esp, 4
cmp eax, ebx
mov dword [esp + 0x10], eax
jge 0x4f3ff7
jmp fcn.00530cad
lea edi, [eax + 1]
lea esi, [esp + 0x1f0]
call fcn.00459ef0
mov eax, dword [esp + 0x1f4]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov dword [eax + edx*4], ecx
mov eax, dword [0x5f2c24]
mov ecx, dword [eax + 0x404]
mov dword [0x5f2370], ecx
lea ecx, [esp + 0x12c]
call fcn.004f6b30
cmp eax, 1
jne 0x4f525f
cmp dword [esp + 0xbc], ebx
je 0x4f4606
push str.HomeURL
mov ebx, 0x5f2b28
call fcn.00472e00
mov esi, eax
test esi, esi
mov dword [esp + 0x10], esi
jge 0x4f40a8
mov esi, dword [0x5f2b34]
lea ecx, [esi + 1]
push 0x5f2b2c
mov dword [esp + 0x14], esi
call fcn.0041cff0
test esi, esi
jl 0x4f3c40
cmp esi, dword [0x5f2b34]
jge 0x4f3c40
lea eax, [esi + esi*2]
shl eax, 4
add eax, dword [0x5f2b30]
push str.HomeURL
lea ecx, [eax + 4]
call fcn.004021d0
lea ecx, [esp + 0x1c]
call fcn.00538d38
mov byte [esp + 0x1168], 0x10
call fcn.00530e1f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4f40d3
push 0x80004005
call fcn.00401f70
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
push 0x595e1c
lea ecx, [esp + 0x40]
mov byte [esp + 0x116c], 0x11
call fcn.00402390
push eax
lea ebx, [esp + 0x20]
lea edi, [esp + 0xfc]
mov byte [esp + 0x116c], 0x12
call fcn.00460250
mov byte [esp + 0x116c], 0x11
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4f413d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test esi, esi
jl 0x4f3c40
cmp esi, dword [0x5f2b34]
jge 0x4f3c40
mov ecx, dword [0x5f2b30]
lea eax, [esi + esi*2]
shl eax, 4
push 0xffffffffffffffff
push 0
lea ecx, [eax + ecx + 8]
mov dword [esp + 0x1c], eax
call fcn.00538df7
cmp esi, dword [0x5f2b34]
jge 0x4f3c40
mov edx, dword [0x5f2b30]
mov eax, dword [esp + 0x14]
push 0xffffffffffffffff
push 0
lea ecx, [eax + edx + 0x1c]
call fcn.00538df7
mov ecx, dword [esp + 0x24]
xor esi, esi
test ecx, ecx
jle 0x4f4302
nop
test esi, esi
jl 0x4f3c40
cmp esi, ecx
jge 0x4f3c40
mov ecx, dword [esp + 0x20]
lea ebx, [ecx + esi*4]
call fcn.00409830
mov edi, eax
call fcn.004098b0
mov ecx, dword [esp + 0x24]
cmp esi, ecx
jge 0x4f3c40
mov edx, dword [esp + 0x20]
lea eax, [edx + esi*4]
mov edx, dword [eax]
cmp dword [edx - 0xc], 0
je 0x4f42f7
push eax
lea ecx, [esp + 0x1c]
call fcn.00402310
cmp esi, dword [esp + 0x24]
jge 0x4f3c40
mov eax, dword [esp + 0x20]
lea edi, [eax + esi*4]
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
jl 0x4f4280
push 0x59e9b0
push eax
call fcn.00552eeb
add esp, 8
test eax, eax
je 0x4f4280
sub eax, dword [edi]
sar eax, 1
mov edx, eax
js 0x4f4280
cmp esi, dword [esp + 0x24]
jge 0x4f3c40
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + esi*4]
mov eax, dword [eax - 0xc]
lea ecx, [ecx + esi*4]
sub eax, edx
sub eax, 2
push eax
lea edx, [esp + 0x34]
push edx
call fcn.00401a60
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x116c], 0x13
call fcn.00402310
mov byte [esp + 0x1168], 0x11
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4f4280
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x59e9b8
push 0x598c6c
lea ecx, [esp + 0x20]
push ecx
call fcn.0041cd10
mov ebx, dword [esp + 0x10]
cmp ebx, dword [0x5f2b34]
jge 0x4f3c40
mov edx, dword [0x5f2b30]
mov edi, dword [esp + 0x14]
mov eax, dword [edi + edx + 0x10]
lea ecx, [edi + edx + 8]
lea edx, [esp + 0x18]
push edx
push eax
call fcn.00539068
cmp esi, dword [esp + 0x24]
jge 0x4f3c40
cmp ebx, dword [0x5f2b34]
mov eax, dword [esp + 0x20]
lea edx, [eax + esi*4]
jge 0x4f3c40
mov ecx, dword [0x5f2b30]
mov eax, dword [edi + ecx + 0x24]
lea ecx, [edi + ecx + 0x1c]
push edx
push eax
call fcn.00539068
mov ecx, dword [esp + 0x24]
add esi, 1
cmp esi, ecx
jl 0x4f41a0
call fcn.0041b920
mov byte [esp + 0x1168], 0x10
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4f432f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1168], 0xf
call fcn.00538dd6
mov eax, dword [esp + 0xe0]
cmp eax, dword [esp + 0xc0]
je 0x4f435e
push eax
mov edi, 0x5bcf20
call fcn.004f32b0
add esp, 4
mov eax, dword [esp + 0xe4]
cmp eax, dword [esp + 0xc4]
je 0x4f437c
push eax
mov edi, 0x5bcf28
call fcn.004f32b0
add esp, 4
mov eax, dword [esp + 0xe8]
cmp eax, dword [esp + 0xc8]
je 0x4f439a
push eax
mov edi, 0x59e36c
call fcn.004f32b0
add esp, 4
mov ecx, dword [esp + 0x100]
mov edx, dword [0x5f238c]
push ecx
push edx
call fcn.005522fc
add esp, 8
test eax, eax
je 0x4f43e1
lea eax, [esp + 0x100]
push eax
mov ecx, 0x5f238c
call fcn.00402310
mov ecx, dword [0x5f2620]
mov eax, dword [ecx + 0x568c]
mov edx, dword [eax + 0x20]
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [esp + 0x110]
mov edx, dword [0x5f28b0]
mov eax, dword [esp + 0xec]
push ecx
push edx
mov dword [0x5f2360], eax
call fcn.005522fc
add esp, 8
test eax, eax
je 0x4f441f
lea eax, [esp + 0x110]
push eax
mov ecx, 0x5f28b0
call fcn.00402310
call fcn.00489d90
mov eax, dword [esp + 0x114]
lea ecx, [eax - 0xa]
cmp ecx, 0x3de
ja 0x4f4447
mov edx, dword [0x5f2c24]
lea eax, [eax + eax*4]
add eax, eax
mov dword [0x5f235c], eax
mov dword [edx + 0x3e4], eax
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x124]
mov dword [0x5f22a4], eax
mov eax, dword [esp + 0x108]
test eax, eax
mov dword [0x5f22a8], ecx
mov dword [0x5f2390], eax
je 0x4f4477
call fcn.0046b600
jmp 0x4f447c
call fcn.0046b2a0
mov eax, dword [esp + 0x11c]
cmp dword [0x5f2368], eax
je 0x4f44a7
mov edx, dword [0x5f2620]
push 0
mov dword [0x5f2368], eax
mov eax, dword [edx + 0x3834]
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [esp + 0x118]
mov eax, dword [esp + 0xd4]
mov esi, dword [esp + 0xdc]
xor edx, edx
cmp dword [esp + 0x120], edx
mov dword [0x5f2280], ecx
mov ecx, dword [esp + 0xd8]
sete dl
push ecx
push eax
push esi
mov dword [0x5f2a64], eax
mov dword [0x5f2a68], ecx
mov dword [0x5f2a6c], esi
mov dword [0x5f223c], edx
call fcn.004e0e10
mov eax, dword [esp + 0xd8]
mov ecx, dword [0x5f286c]
add esp, 0xc
push eax
push ecx
call fcn.005522fc
add esp, 8
test eax, eax
je 0x4f456a
mov edx, dword [esp + 0xcc]
mov eax, dword [edx - 0xc]
xor ecx, ecx
add eax, 2
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.005308fb
add esp, 4
test eax, eax
je 0x4f456a
mov edx, dword [esp + 0xcc]
mov esi, eax
movzx ecx, word [edx]
mov word [esi], cx
add edx, 2
add esi, 2
test cx, cx
jne 0x4f4545
push 0
push eax
mov eax, dword [0x5f2630]
push 0x4ad
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov ecx, dword [esp + 0xf0]
mov edx, dword [0x5f288c]
push ecx
push edx
call fcn.005522fc
add esp, 8
test eax, eax
je 0x4f4597
lea eax, [esp + 0xf0]
push eax
mov ecx, 0x5f288c
call fcn.00402310
mov ecx, dword [esp + 0xd0]
mov edx, dword [0x5f2890]
push ecx
push edx
call fcn.005522fc
add esp, 8
test eax, eax
je 0x4f45c4
lea eax, [esp + 0xd0]
push eax
mov ecx, 0x5f2890
call fcn.00402310
mov ecx, dword [0x5f2a60]
cmp ecx, dword [esp + 0xfc]
jne 0x4f45ed
mov edx, dword [esp + 0xf4]
mov eax, dword [0x5f287c]
push edx
push eax
call fcn.005522fc
add esp, 8
test eax, eax
je 0x4f4604
mov ecx, dword [esp + 0xfc]
push ecx
lea ecx, [esp + 0xf8]
call fcn.004f36e0
add esp, 4
xor ebx, ebx
cmp dword [esp + 0x49c], ebx
je 0x4f4766
mov eax, dword [esp + 0x4a0]
mov edx, dword [0x5f2c24]
mov dword [0x5f2278], eax
mov dword [edx + 0x3ec], eax
mov eax, dword [esp + 0x4a8]
mov ecx, dword [esp + 0x4ac]
mov edx, dword [0x5f2c24]
mov dword [0x5f2338], eax
mov eax, dword [esp + 0x4b0]
mov dword [0x5f2340], eax
mov dword [0x5f233c], ecx
mov dword [edx + 0x3e8], eax
mov eax, dword [esp + 0x4b4]
mov dword [0x5f278c], eax
mov eax, dword [esp + 0x4b8]
cmp dword [0x5f22c0], eax
je 0x4f4688
mov ecx, dword [0x5f2c24]
mov dword [0x5f22c0], eax
mov dword [ecx + 0x3f8], eax
mov eax, dword [esp + 0x4d8]
cmp dword [0x5f2284], eax
je 0x4f46a8
mov edx, dword [0x5f2c24]
mov dword [0x5f2284], eax
mov dword [edx + 0x418], eax
mov eax, dword [esp + 0x4bc]
mov ecx, dword [0x5f2c24]
mov dword [0x5f2370], eax
mov dword [ecx + 0x404], eax
mov eax, dword [esp + 0x4dc]
mov edx, dword [0x5f2c24]
mov dword [0x5f22f4], eax
mov dword [edx + 0x40c], eax
mov eax, dword [0x5f2620]
mov ecx, dword [eax + 0x15b4]
push ebx
push ebx
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [esp + 0x4a4]
mov edx, dword [0x5f2c24]
mov dword [0x5f2364], eax
mov dword [edx + 0x3dc], eax
mov eax, dword [esp + 0x4cc]
mov ecx, dword [0x5f2c24]
mov dword [0x5f22e8], eax
mov dword [ecx + 0x408], eax
mov eax, dword [esp + 0x4c8]
mov edx, dword [0x5f2c24]
mov dword [0x5f22f0], eax
mov dword [edx + 0x414], eax
mov eax, dword [esp + 0x4c0]
mov ecx, dword [esp + 0x4c4]
mov edx, dword [esp + 0x4d0]
mov dword [0x5f22c8], eax
mov eax, dword [esp + 0x4d4]
mov dword [0x5f22c4], ecx
mov dword [0x5f27ac], edx
mov dword [0x5f27b0], eax
cmp dword [esp + 0x404], ebx
je 0x4f4911
mov eax, dword [esp + 0x418]
mov ecx, dword [esp + 0x410]
mov edx, dword [esp + 0x414]
mov dword [0x5f2374], eax
mov eax, dword [esp + 0x408]
cmp dword [0x5f2264], eax
mov dword [0x5f226c], ecx
mov ecx, dword [esp + 0x41c]
mov dword [0x5f2270], edx
mov dword [0x5f2ca0], ecx
je 0x4f4904
cmp eax, ebx
je 0x4f4865
call fcn.00462930
test eax, eax
je 0x4f4817
push ebx
push 0x132
lea ecx, [esp + 0x714]
call fcn.0053b652
mov esi, vtable.CDlg360Warn.0
mov dword [esp + 0x70c], esi
lea ecx, [esp + 0x70c]
mov byte [esp + 0x1168], 0x14
call fcn.0053bd19
mov byte [esp + 0x1168], 0xf
lea ecx, [esp + 0x70c]
mov dword [esp + 0x70c], esi
call fcn.0053b5c7
push str.TangoBrowser
lea ecx, [esp + 0x44]
call fcn.00402390
mov byte [esp + 0x1168], 0x15
mov edx, dword [0x5f21f0]
mov ecx, dword [0x5f2864]
push edx
push ecx
push eax
call fcn.004b7970
mov byte [esp + 0x1174], 0xf
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
add esp, 0xc
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x4f48eb
push ebx
push 0x26
lea ecx, [esp + 0xf54]
push ecx
push ebx
mov word [esp + 0xf5c], bx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x4f48a8
lea edi, [esp + 0xf4c]
add edi, 0xfffffffe
lea ecx, [ecx]
mov ax, word [edi + 2]
add edi, 2
cmp ax, bx
jne 0x4f4890
mov ecx, 0x10
mov esi, str.internet_exploreriexplore.exe
rep movsd dword es:[edi], dword [esi]
push str.TangoBrowser
lea ecx, [esp + 0x3c]
call fcn.00402390
lea edx, [esp + 0xf4c]
push edx
push eax
mov byte [esp + 0x1170], 0x16
call fcn.004b8d90
mov byte [esp + 0x1170], 0xf
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
add esp, 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4f48f7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x408]
mov dword [0x5f2264], ecx
mov edx, dword [esp + 0x40c]
mov dword [0x5f2268], edx
cmp dword [esp + 0x60c], ebx
je 0x4f49b5
cmp dword [0x5f2378], ebx
mov eax, dword [esp + 0x614]
jne 0x4f493b
cmp eax, ebx
je 0x4f493b
mov dword [0x5f2380], 1
mov ecx, dword [esp + 0x618]
lea edx, [esp + 0x610]
mov dword [0x5f2274], ecx
push edx
mov ecx, 0x5f237c
mov dword [0x5f2378], eax
call fcn.00402310
mov eax, dword [esp + 0x61c]
mov edx, dword [esp + 0x628]
mov ecx, dword [esp + 0x620]
push edx
mov dword [0x5f22dc], eax
mov eax, dword [esp + 0x628]
push eax
push str._d:_d
push 0x5f28c4
mov dword [0x5f28c8], ecx
call fcn.00405480
mov ecx, dword [0x5f2620]
add esp, 0x10
or eax, 0xffffffff
mov dword [ecx + 0x8a8c], eax
mov edx, dword [0x5f2620]
mov dword [edx + 0x8a90], eax
cmp dword [esp + 0x55c], ebx
je 0x4f4aef
mov eax, dword [esp + 0x560]
mov ecx, dword [esp + 0x570]
mov edx, dword [esp + 0x564]
mov dword [0x5f228c], eax
mov eax, dword [esp + 0x568]
mov dword [0x5f2358], eax
mov eax, dword [esp + 0x574]
cmp dword [0x5f2324], eax
mov dword [0x5f22b0], ecx
mov ecx, dword [esp + 0x56c]
mov dword [0x5f22b4], edx
mov dword [0x5f232c], ecx
jne 0x4f4a1f
mov edx, dword [0x5f2328]
cmp edx, dword [esp + 0x578]
je 0x4f4a3e
mov eax, dword [0x5f2620]
mov ecx, dword [eax + 0xaf4]
mov edi, dword [sym.imp.USER32.dll_InvalidateRect]
push ebx
push ebx
push ecx
call edi
mov eax, dword [esp + 0x574]
jmp 0x4f4a44
mov edi, dword [sym.imp.USER32.dll_InvalidateRect]
mov edx, dword [0x5f2c24]
mov dword [0x5f2324], eax
mov dword [edx + 0x3f0], eax
mov eax, dword [esp + 0x578]
mov ecx, dword [esp + 0x57c]
mov edx, dword [esp + 0x58c]
mov dword [0x5f2328], eax
mov eax, dword [esp + 0x588]
cmp dword [0x5f227c], eax
mov dword [0x5f22b8], ecx
mov dword [0x5f22d0], edx
je 0x4f4ab2
mov esi, dword [0x5f2620]
push eax
add esi, 0xad4
mov dword [0x5f227c], eax
call fcn.004acc30
mov eax, dword [0x5f2620]
mov ecx, dword [eax + 0xaf4]
push 1
push ebx
push ecx
call edi
mov eax, dword [esp + 0x580]
cmp dword [0x5f22bc], eax
je 0x4f4ae2
mov dword [0x5f22bc], eax
mov eax, dword [0x5f2620]
call fcn.00479ed0
mov edx, dword [0x5f2620]
mov eax, dword [edx + 0xaf4]
push 1
push ebx
push eax
call edi
mov ecx, dword [esp + 0x590]
mov dword [0x5f27b4], ecx
cmp dword [esp + 0x944], ebx
je 0x4f4b05
mov edx, dword [esp + 0x99c]
mov dword [0x5f28d0], edx
cmp dword [esp + 0x7fc], ebx
je 0x4f4b67
mov eax, dword [esp + 0x800]
mov ecx, dword [0x5f2c24]
mov dword [0x5f222c], eax
mov dword [ecx + 0x3cc], eax
mov eax, dword [esp + 0x808]
cmp eax, 2
jge 0x4f4b39
mov eax, 2
jmp 0x4f4b43
cmp eax, 0x64
jle 0x4f4b4a
mov eax, 0x64
mov dword [esp + 0x808], eax
mov edx, dword [0x5f2c24]
mov dword [0x5f28c0], eax
mov eax, dword [esp + 0x804]
mov dword [0x5f2238], eax
mov dword [edx + 0x3d0], eax
cmp dword [esp + 0x2a4], ebx
je 0x4f50c0
mov eax, dword [esp + 0x2c0]
mov ecx, dword [0x5f2c24]
mov dword [0x5f25f8], eax
mov dword [ecx + 0x3f4], eax
mov eax, dword [esp + 0x2c4]
mov edx, dword [0x5f2c24]
mov dword [0x5f25fc], eax
mov dword [edx + 0x3fc], eax
xor eax, eax
cmp dword [0x5f2478], 1
sete al
cmp dword [esp + 0x2a8], eax
je 0x4f4bcc
mov ecx, dword [0x5f2620]
mov ecx, dword [ecx + 0x568c]
xor edi, edi
call fcn.004dcda0
xor edx, edx
cmp dword [0x5f247c], 1
sete dl
cmp dword [esp + 0x2ac], edx
je 0x4f4bf6
mov eax, dword [0x5f2620]
mov ecx, dword [eax + 0x568c]
mov edi, 1
call fcn.004dcda0
xor ecx, ecx
cmp dword [0x5f2480], 1
sete cl
cmp dword [esp + 0x2b0], ecx
je 0x4f4d27
mov edi, dword [0x5f2620]
mov eax, dword [edi + 0x568c]
mov ecx, dword [eax + 0x2ac]
cmp ecx, ebx
jl 0x4f4c76
mov edx, dword [eax + 0x284]
cmp ecx, edx
jge 0x4f4c3c
mov edx, dword [eax + 0x280]
lea eax, [edx + ecx*4]
mov eax, dword [eax]
jmp 0x4f4c57
sub ecx, edx
js 0x4f4c55
cmp ecx, dword [eax + 0x298]
jge 0x4f4c55
mov eax, dword [eax + 0x294]
lea eax, [eax + ecx*4]
mov eax, dword [eax]
jmp 0x4f4c57
xor eax, eax
mov ecx, dword [eax]
cmp ecx, ebx
jne 0x4f4c64
mov eax, dword [eax + 4]
mov esi, eax
jmp 0x4f4c78
cmp ecx, 3
jne 0x4f4c70
mov eax, dword [eax + 4]
mov esi, eax
jmp 0x4f4c78
xor eax, eax
mov esi, eax
jmp 0x4f4c78
xor esi, esi
cmp dword [0x5f25f8], ebx
je 0x4f4c90
lea ecx, [edi + 0x9544]
mov eax, 0x5bb110
call fcn.004c4910
mov eax, 1
cmp dword [0x5f2480], eax
jne 0x4f4ca2
mov eax, 2
cmp esi, ebx
mov dword [0x5f2480], eax
je 0x4f4d08
mov ebx, dword [esi + 0x44]
mov edi, 0x5f27f8
call fcn.004d2ec0
test eax, eax
jl 0x4f4d06
push 0x30
lea ecx, [esp + 0x330]
push 0
push ecx
call fcn.00557890
add esp, 0xc
lea eax, [esp + 0x32c]
mov ecx, edi
mov dword [esp + 0x32c], 0x12
mov dword [esp + 0x330], 1
mov dword [esp + 0x338], ebx
mov dword [esp + 0x34c], 2
call fcn.004d3030
xor ebx, ebx
push 0x5f2458
call fcn.0045cfd0
mov edx, dword [0x5f2620]
mov eax, dword [edx + 0x4d0c]
push ebx
push ebx
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
xor ecx, ecx
cmp dword [0x5f2484], 1
sete cl
cmp dword [esp + 0x2b4], ecx
je 0x4f4e58
mov edi, dword [0x5f2620]
mov eax, dword [edi + 0x568c]
mov ecx, dword [eax + 0x2ac]
cmp ecx, ebx
jl 0x4f4da7
mov edx, dword [eax + 0x284]
cmp ecx, edx
jge 0x4f4d6d
mov edx, dword [eax + 0x280]
lea eax, [edx + ecx*4]
mov eax, dword [eax]
jmp 0x4f4d88
sub ecx, edx
js 0x4f4d86
cmp ecx, dword [eax + 0x298]
jge 0x4f4d86
mov eax, dword [eax + 0x294]
lea eax, [eax + ecx*4]
mov eax, dword [eax]
jmp 0x4f4d88
xor eax, eax
mov ecx, dword [eax]
cmp ecx, ebx
jne 0x4f4d95
mov eax, dword [eax + 4]
mov esi, eax
jmp 0x4f4da9
cmp ecx, 3
jne 0x4f4da1
mov eax, dword [eax + 4]
mov esi, eax
jmp 0x4f4da9
xor eax, eax
mov esi, eax
jmp 0x4f4da9
xor esi, esi
cmp dword [0x5f25f8], ebx
je 0x4f4dc1
lea ecx, [edi + 0x9544]
mov eax, 0x5bb110
call fcn.004c4910
mov eax, 1
cmp dword [0x5f2484], eax
jne 0x4f4dd3
mov eax, 2
cmp esi, ebx
mov dword [0x5f2484], eax
je 0x4f4e39
mov ebx, dword [esi + 0x44]
mov edi, 0x5f27f8
call fcn.004d2ec0
test eax, eax
jl 0x4f4e37
push 0x30
lea ecx, [esp + 0x2d0]
push 0
push ecx
call fcn.00557890
add esp, 0xc
lea eax, [esp + 0x2cc]
mov ecx, edi
mov dword [esp + 0x2cc], 0x12
mov dword [esp + 0x2d0], 1
mov dword [esp + 0x2d8], ebx
mov dword [esp + 0x2ec], 3
call fcn.004d3030
xor ebx, ebx
push 0x5f2458
call fcn.0045cfd0
mov edx, dword [0x5f2620]
mov eax, dword [edx + 0x4d0c]
push ebx
push ebx
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
xor ecx, ecx
cmp dword [0x5f248c], 2
sete cl
cmp dword [esp + 0x2b8], ecx
je 0x4f4f89
mov edi, dword [0x5f2620]
mov eax, dword [edi + 0x568c]
mov ecx, dword [eax + 0x2ac]
cmp ecx, ebx
jl 0x4f4ed8
mov edx, dword [eax + 0x284]
cmp ecx, edx
jge 0x4f4e9e
mov edx, dword [eax + 0x280]
lea eax, [edx + ecx*4]
mov eax, dword [eax]
jmp 0x4f4eb9
sub ecx, edx
js 0x4f4eb7
cmp ecx, dword [eax + 0x298]
jge 0x4f4eb7
mov eax, dword [eax + 0x294]
lea eax, [eax + ecx*4]
mov eax, dword [eax]
jmp 0x4f4eb9
xor eax, eax
mov ecx, dword [eax]
cmp ecx, ebx
jne 0x4f4ec6
mov eax, dword [eax + 4]
mov esi, eax
jmp 0x4f4eda
cmp ecx, 3
jne 0x4f4ed2
mov eax, dword [eax + 4]
mov esi, eax
jmp 0x4f4eda
xor eax, eax
mov esi, eax
jmp 0x4f4eda
xor esi, esi
cmp dword [0x5f25f8], ebx
je 0x4f4ef2
lea ecx, [edi + 0x9544]
mov eax, 0x5bb110
call fcn.004c4910
mov eax, 1
cmp dword [0x5f248c], eax
jne 0x4f4f04
mov eax, 2
cmp esi, ebx
mov dword [0x5f248c], eax
je 0x4f4f6a
mov ebx, dword [esi + 0x44]
mov edi, 0x5f27f8
call fcn.004d2ec0
test eax, eax
jl 0x4f4f68
push 0x30
lea ecx, [esp + 0x300]
push 0
push ecx
call fcn.00557890
add esp, 0xc
lea eax, [esp + 0x2fc]
mov ecx, edi
mov dword [esp + 0x2fc], 0x12
mov dword [esp + 0x300], 1
mov dword [esp + 0x308], ebx
mov dword [esp + 0x31c], 5
call fcn.004d3030
xor ebx, ebx
push 0x5f2458
call fcn.0045cfd0
mov edx, dword [0x5f2620]
mov eax, dword [edx + 0x4d0c]
push ebx
push ebx
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
xor ecx, ecx
cmp dword [0x5f2488], 2
sete cl
cmp dword [esp + 0x2bc], ecx
je 0x4f50c0
mov edi, dword [0x5f2620]
mov eax, dword [edi + 0x568c]
mov ecx, dword [eax + 0x2ac]
cmp ecx, ebx
jl 0x4f5009
mov edx, dword [eax + 0x284]
cmp ecx, edx
jge 0x4f4fcf
mov edx, dword [eax + 0x280]
lea eax, [edx + ecx*4]
mov eax, dword [eax]
jmp 0x4f4fea
sub ecx, edx
js 0x4f4fe8
cmp ecx, dword [eax + 0x298]
jge 0x4f4fe8
mov eax, dword [eax + 0x294]
lea eax, [eax + ecx*4]
mov eax, dword [eax]
jmp 0x4f4fea
xor eax, eax
mov ecx, dword [eax]
cmp ecx, ebx
jne 0x4f4ff7
mov eax, dword [eax + 4]
mov esi, eax
jmp 0x4f500b
cmp ecx, 3
jne 0x4f5003
mov eax, dword [eax + 4]
mov esi, eax
jmp 0x4f500b
xor eax, eax
mov esi, eax
jmp 0x4f500b
xor esi, esi
cmp dword [0x5f25f8], ebx
je 0x4f5023
lea ecx, [edi + 0x9544]
mov eax, 0x5bb110
call fcn.004c4910
mov eax, 1
cmp dword [0x5f2488], eax
jne 0x4f5035
mov eax, 2
cmp esi, ebx
mov dword [0x5f27a0], ebx
mov dword [0x5f2488], eax
je 0x4f50a1
mov ebx, dword [esi + 0x44]
mov edi, 0x5f27f8
call fcn.004d2ec0
test eax, eax
jl 0x4f509f
push 0x30
lea ecx, [esp + 0x360]
push 0
push ecx
call fcn.00557890
add esp, 0xc
lea eax, [esp + 0x35c]
mov ecx, edi
mov dword [esp + 0x35c], 0x12
mov dword [esp + 0x360], 1
mov dword [esp + 0x368], ebx
mov dword [esp + 0x37c], 4
call fcn.004d3030
xor ebx, ebx
push 0x5f2458
call fcn.0045cfd0
mov edx, dword [0x5f2620]
mov eax, dword [edx + 0x4d0c]
push ebx
push ebx
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp dword [esp + 0xc8c], ebx
je 0x4f5126
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea ecx, [esp + 0xc90]
push ecx
lea edx, [esp + 0xdc0]
push edx
push str.ShowUserName
push str.config
call esi
lea eax, [esp + 0xc90]
push eax
lea ecx, [esp + 0xe88]
push ecx
push str.ShowGroupName
push str.config
call esi
mov ecx, dword [0x5f2620]
mov eax, dword [ecx + 0x7584]
cmp eax, ebx
je 0x4f5126
mov edx, dword [ecx + 0x7588]
mov eax, dword [eax + 0x34]
push edx
call eax
add esp, 4
cmp dword [esp + 0xacc], ebx
je 0x4f5149
mov ecx, dword [esp + 0xad0]
mov edx, dword [esp + 0xad4]
mov dword [0x5f2230], ecx
mov dword [0x5f2234], edx
cmp dword [esp + 0x6b4], ebx
je 0x4f523d
lea eax, [esp + 0x6a4]
push eax
mov ecx, 0x5f2cc4
call fcn.00402310
mov ecx, dword [esp + 0x6b0]
lea edx, [esp + 0x6a8]
push 0x59f6b8
push edx
mov dword [0x5f2cd0], ecx
call fcn.0040dd60
add esp, 8
test al, al
je 0x4f519d
mov dword [0x5f2cd4], 1
jmp 0x4f5230
lea eax, [esp + 0x6a8]
push 0x59b55c
push eax
call fcn.0040dd60
add esp, 8
test al, al
je 0x4f51c2
mov dword [0x5f2cd4], 2
jmp 0x4f5230
lea ecx, [esp + 0x6a8]
push 0x59b5c4
push ecx
call fcn.0040dd60
add esp, 8
test al, al
je 0x4f51e7
mov dword [0x5f2cd4], 3
jmp 0x4f5230
lea edx, [esp + 0x6a8]
push 0x59b62c
push edx
call fcn.0040dd60
add esp, 8
test al, al
je 0x4f520c
mov dword [0x5f2cd4], 4
jmp 0x4f5230
lea eax, [esp + 0x6a8]
push str.FlashGet
push eax
call fcn.0040dd60
add esp, 8
neg al
sbb eax, eax
and eax, 3
add eax, 2
mov dword [0x5f2cd4], eax
mov ecx, dword [esp + 0x6ac]
mov dword [0x5f2cc8], ecx
cmp dword [esp + 0xb54], ebx
je 0x4f525f
mov edx, dword [esp + 0xb58]
mov eax, dword [esp + 0xb60]
mov dword [0x5f2cd8], edx
mov dword [0x5f2cdc], eax
lea ecx, [esp + 0xadc]
mov byte [esp + 0x1168], 0xe
call fcn.00519930
lea ecx, [esp + 0x62c]
mov byte [esp + 0x1168], 0xd
call fcn.00437400
lea ecx, [esp + 0x9a4]
mov byte [esp + 0x1168], 0xc
call fcn.004f0920
lea ecx, [esp + 0xc14]
mov byte [esp + 0x1168], 0xb
call fcn.004f2d40
lea ecx, [esp + 0x22c]
mov byte [esp + 0x1168], 0xa
call fcn.004f0590
lea ecx, [esp + 0x784]
mov byte [esp + 0x1168], 9
call fcn.004f1bd0
lea ecx, [esp + 0x594]
mov byte [esp + 0x1168], 8
call fcn.004f1450
lea ecx, [esp + 0x38c]
mov byte [esp + 0x1168], 7
call fcn.004f2a60
lea ecx, [esp + 0x8cc]
mov byte [esp + 0x1168], 6
call fcn.004f2470
lea ecx, [esp + 0x4e4]
mov byte [esp + 0x1168], 5
call fcn.004f1870
lea ecx, [esp + 0x424]
mov byte [esp + 0x1168], 4
call fcn.004f1080
lea ecx, [esp + 0x44]
mov byte [esp + 0x1168], 3
call fcn.004efa00
lea ecx, [esp + 0x86c]
mov byte [esp + 0x1168], 2
call fcn.004f5480
lea ecx, [esp + 0x12c]
mov dword [esp + 0x1168], 0xffffffff
call fcn.004f67c0
mov ecx, dword [esp + 0x1160]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1148]
xor ecx, esp
call fcn.00552101
mov esp, ebp
pop ebp
ret