Function at 0x403970
Capabilities:
Create shortcut via ishelllink

Disassembly:
sub esp, 0x664
mov eax, dword [0x43d120]
mov ecx, dword [0x43c0c0]
mov dword [esp + 0x660], eax
mov eax, dword [0x43c0b8]
push ebx
push ebp
push esi
mov esi, dword [0x43c0b0]
push edi
lea edi, [eax + esi]
mov eax, 0x49f13bb3
imul edi, edi, 0x17928
imul ecx
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub edi, ecx
mov ecx, dword [str._r_____r____]
mov eax, 0x49f13bb3
imul ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x43c0ac]
sub edi, eax
imul edx, edx, 0x94046
mov eax, ecx
imul eax, eax, 0x8386f
add edi, edx
mov edx, dword [0x43c0b4]
add edi, eax
mov eax, 0x7c32ca05
imul edx
sar edx, 0xf
add edi, edx
mov ebx, edx
mov eax, 0x3e565a5f
imul ecx
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
shr ebx, 0x1f
mov eax, 0x3e565a5f
imul esi
add ebx, edi
sub ebx, ecx
mov ecx, dword [0x43c0bc]
sar edx, 0xe
imul ecx, ecx, 0xff3e
mov eax, edx
shr eax, 0x1f
add ebx, edx
add eax, ebx
mov ebx, dword [esp + 0x680]
add eax, ecx
mov dword [0x43c0cc], eax
mov byte [ebx], 0
mov edi, dword [0x43c0bc]
mov esi, dword [0x43c0b8]
mov ecx, dword [0x43c0b0]
mov eax, 0x15b86ecf
imul esi
mov ebp, edi
sub ebp, ecx
imul ebp, ebp, 0xff3e
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add ebp, edx
add eax, ebp
mov ebp, eax
mov eax, 0x15b86ecf
imul ecx
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, dword [0x43c0b4]
sub ebp, eax
mov eax, 0x15b86ecf
imul ecx
imul ecx, ecx, 0x106d5
sar edx, 0xd
add ebp, edx
mov eax, edx
shr eax, 0x1f
add eax, ebp
mov ebp, eax
mov eax, 0x49f13bb3
imul dword [0x43c0c0]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x43c0c8]
sub ebp, eax
imul edx, edx, 0x8386f
mov eax, esi
imul eax, eax, 0x107d6
add ebp, edx
add ebp, eax
mov eax, dword [esp + 0x68c]
test eax, eax
lea ecx, [ecx + ebp + 0x79ea]
mov dword [0x43c0c8], ecx
je 0x403afb
mov byte [eax], 0
mov edi, dword [0x43c0bc]
mov esi, dword [0x43c0b8]
mov eax, dword [esp + 0x690]
test eax, eax
je 0x403b18
mov dword [eax], 0
mov edi, dword [0x43c0bc]
mov esi, dword [0x43c0b8]
mov ecx, dword [str._r_____r____]
imul edi, edi, 0x796
mov edx, dword [0x43c0b0]
lea ebp, [ecx + edx]
mov eax, 0x49f13bb3
imul ebp, ebp, 0x17928
imul dword [0x43c0c8]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0x49f13bb3
imul dword [0x43c0c0]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x43c0c4]
sub ebp, eax
imul edx, edx, 0x8386f
add ebp, edx
mov eax, 0x7c32ca05
imul esi
sar edx, 0xf
add ebp, edx
mov eax, edx
shr eax, 0x1f
add eax, ebp
mov edx, esi
imul edx, edx, 0x107d6
add eax, edx
sub eax, edi
mov ebp, eax
mov eax, 0x3e565a5f
imul ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0x4030a4dd
imul esi
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add ebp, edx
lea edx, [ecx + ebp - 0x107d6]
push 0
mov dword [0x43c0c4], edx
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [esp + 0x10]
push eax
push 0x435e00
push 1
push 0
push 0x435e10
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov esi, eax
test esi, esi
jl 0x404a73
mov esi, dword [str._r_____r____]
mov ecx, dword [0x43c0b0]
mov edx, dword [0x43c0bc]
mov eax, dword [0x43c0c4]
lea edi, [esi + ecx]
imul eax, eax, 0xdd94
mov ecx, dword [0x43c0c0]
imul edi, edi, 0x17928
add edx, ecx
imul edx, edx, 0xff3e
add edi, edx
add edi, eax
mov eax, 0x49f13bb3
imul ecx
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub edi, ecx
mov ecx, dword [0x43c0ac]
mov eax, 0x49f13bb3
imul ecx
imul ecx, ecx, 0x94045
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x3e565a5f
imul esi
mov eax, dword [esp + 0x10]
add edi, ecx
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x43c0cc]
imul edx, edx, 0x106d4
sub edi, ecx
sub edi, edx
lea edx, [esp + 0x14]
push edx
sub edi, 0xff3e
push 0x435e50
mov dword [0x43c0c0], edi
mov ecx, dword [eax]
push eax
call dword [ecx]
mov esi, eax
test esi, esi
jl 0x404a69
mov ecx, dword [0x43c0ac]
mov eax, dword [0x43c0c8]
mov esi, dword [0x43c0b0]
mov edx, dword [0x43c0b8]
lea edi, [eax + ecx]
imul ecx, ecx, 0x8386f
add edx, esi
imul edi, edi, 0x107d6
imul edx, edx, 0x17928
add edi, edx
mov edx, dword [0x43c0c0]
mov eax, 0x49f13bb3
imul edx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [str._r_____r____]
sub edi, eax
mov eax, 0x49f13bb3
imul edx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
add edi, ecx
mov ecx, dword [0x43c0c4]
mov eax, 0x7c32ca05
imul ecx
sar edx, 0xf
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0x3e565a5f
imul esi
sub edi, ecx
mov ecx, dword [0x43c0bc]
sar edx, 0xe
imul ecx, ecx, 0xff3e
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x43c0cc]
push 0x104
sub edi, eax
lea eax, [esp + 0x124]
push eax
add edi, edx
lea edx, [ecx + edi + 0x107ce]
mov ecx, dword [esp + 0x684]
push 0xffffffffffffffff
push ecx
push 0
push 0
mov dword [0x43c0bc], edx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, dword [0x43c0b8]
mov edx, dword [0x43c0b0]
lea edi, [ecx + edx]
mov eax, 0x49f13bb3
imul edi, edi, 0x17928
imul ecx
sar edx, 0xe
mov esi, dword [0x43c0ac]
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x43c0c0]
sub edi, eax
mov eax, 0x49f13bb3
imul edx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, esi
imul edx, edx, 0xb4759
sub edi, eax
add edi, edx
mov eax, 0x3e565a5f
imul ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x3e565a5f
imul esi
mov eax, dword [str._r_____r____]
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x43c0bc]
imul edx, edx, 0xff3e
add ecx, eax
add ecx, edi
lea eax, [edx + ecx - 0x107d6]
push 0x22
mov dword [0x43c0b8], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x124]
push edx
push eax
call dword [ecx + 0x14]
mov esi, eax
test esi, esi
jl 0x404a5f
mov edx, dword [esp + 0x678]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
push 3
push edx
push eax
call dword [ecx + 0x4c]
mov edx, dword [0x43c0c0]
mov edi, dword [0x43c0b0]
mov ecx, dword [0x43c0bc]
mov esi, eax
lea ebp, [ecx + edi]
imul ecx, ecx, 0x7f9f
mov eax, 0x49f13bb3
imul ebp, ebp, 0xbc94
imul edx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, dword [0x43c0ac]
mov edx, eax
imul edx, edx, 0x83eb
add ebp, edx
add ebp, ecx
mov ecx, dword [0x43c0c8]
add ecx, eax
imul ecx, ecx, 0x8386f
mov eax, 0x7c32ca05
imul edi
sar edx, 0xf
lea ecx, [ecx + ebp*2 - 0x17928]
add ecx, edx
mov edi, edx
shr edi, 0x1f
add edi, ecx
mov ecx, dword [str._r_____r____]
mov eax, 0x3e565a5f
imul ecx
mov ecx, dword [0x43c0b4]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x4030a4dd
imul ecx
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub edi, ecx
test esi, esi
mov dword [0x43c0b4], edi
jl 0x404a5f
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
push 2
lea ecx, [esp + 0x534]
push ecx
push 0x104
push ebx
push eax
call dword [edx + 0xc]
mov ecx, dword [0x43c0c0]
mov esi, eax
mov eax, 0x49f13bb3
imul ecx
mov eax, dword [0x43c0ac]
sar edx, 0xe
imul eax, eax, 0x862b1
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
mov edx, dword [0x43c0b0]
add ecx, edx
imul ecx, ecx, 0x17928
add ecx, eax
mov ebx, dword [0x43c0b8]
mov eax, 0x49f13bb3
imul dword [0x43c0b4]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edi, dword [0x43c0bc]
mov edx, ebx
imul edx, edx, 0x106d4
sub ecx, eax
add ecx, edx
mov eax, 0x3e565a5f
imul dword [str._r_____r____]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, edi
imul edx, edx, 0x1fe7c
sub ecx, eax
add ecx, edx
sub ecx, ebp
sub ecx, 0x17928
test esi, esi
mov dword [0x43c0b0], ecx
jl 0x404a5f
mov eax, dword [esp + 0x684]
test eax, eax
je 0x40424e
lea edx, [eax + 1]
mov dword [esp + 0x18], edx
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x403fb3
sub eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
je 0x40424e
sub ebx, edi
imul edi, edi, 0xff3e
lea esi, [ebx + ecx + 1]
mov ecx, dword [0x43c0ac]
imul esi, esi, 0x17928
mov eax, 0x49f13bb3
imul ecx
imul ecx, ecx, 0x94045
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
add esi, ecx
mov ecx, dword [0x43c0c4]
mov eax, 0x3e565a5f
imul ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
mov eax, 0x4030a4dd
imul dword [0x43c0c0]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add esi, edi
add esi, edx
add eax, esi
sub eax, ebp
add eax, ecx
push 0x104
mov dword [0x43c0ac], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
push eax
call dword [ecx + 0x28]
mov ebp, dword [esp + 0x684]
mov esi, eax
mov edi, ebp
lea eax, [esp + 0x20]
lea esp, [esp]
mov dl, byte [eax]
mov bl, byte [edi]
mov cl, dl
cmp dl, bl
jne 0x404088
test cl, cl
je 0x404084
mov dl, byte [eax + 1]
mov bl, byte [edi + 1]
mov cl, dl
cmp dl, bl
jne 0x404088
add eax, 2
add edi, 2
test cl, cl
jne 0x404060
xor eax, eax
jmp 0x40408d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40423c
mov eax, dword [0x43c0b0]
mov ecx, dword [0x43c0b8]
lea esi, [ecx + eax]
mov ecx, dword [0x43c0c8]
imul esi, esi, 0x17928
mov eax, 0x15b86ecf
imul ecx
sar edx, 0xd
add esi, edx
mov edi, edx
mov edx, dword [0x43c0c4]
mov eax, 0x49f13bb3
imul edx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x43c0c0]
shr edi, 0x1f
add edi, esi
sub edi, eax
mov eax, 0x49f13bb3
imul edx
sar edx, 0xe
mov eax, edx
mov esi, dword [0x43c0bc]
shr eax, 0x1f
imul esi, esi, 0xff3e
add eax, edx
mov edx, dword [0x43c0ac]
imul edx, edx, 0x94045
sub edi, eax
add edi, edx
mov eax, 0x3e565a5f
imul ecx
mov ecx, dword [0x43c0cc]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
add esi, ecx
mov ecx, dword [str._r_____r____]
sub edi, eax
mov eax, 0x4030a4dd
imul ecx
mov eax, dword [esp + 0x10]
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add esi, edi
lea edx, [ecx + esi - 0x84107]
push ebp
mov dword [str._r_____r____], edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x2c]
mov esi, eax
test esi, esi
jne 0x40423c
mov esi, dword [0x43c0b0]
mov edx, dword [0x43c0b8]
mov ecx, dword [0x43c0c0]
lea edi, [edx + esi]
mov eax, 0x49f13bb3
imul edi, edi, 0x17928
imul ecx
mov ecx, dword [str._r_____r____]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x49f13bb3
imul ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x43c0ac]
sub edi, eax
imul edx, edx, 0x94046
mov eax, ecx
imul eax, eax, 0x8386f
add edi, edx
mov edx, dword [0x43c0b4]
add edi, eax
mov eax, 0x7c32ca05
imul edx
sar edx, 0xf
mov ebx, edx
add edi, edx
mov eax, 0x3e565a5f
imul ecx
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0x3e565a5f
imul esi
shr ebx, 0x1f
add ebx, edi
sub ebx, ecx
mov ecx, dword [0x43c0bc]
imul ecx, ecx, 0xff3e
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add ebx, edx
add eax, ebx
add eax, ecx
push 1
mov dword [0x43c0cc], eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
lea ecx, [esp + 0x124]
push ecx
push eax
call dword [edx + 0x18]
mov esi, eax
mov eax, dword [esp + 0x690]
test eax, eax
je 0x40423c
mov dword [eax], 1
mov ecx, dword [0x43c0b0]
mov edi, dword [0x43c0bc]
mov ebx, dword [0x43c0b8]
mov eax, 0x15b86ecf
imul ebx
mov ebp, edi
sub ebp, ecx
imul ebp, ebp, 0xff3e
sar edx, 0xd
add ebp, edx
mov eax, edx
shr eax, 0x1f
add eax, ebp
mov ebp, eax
mov eax, 0x15b86ecf
imul ecx
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0x15b86ecf
imul dword [0x43c0b4]
sar edx, 0xd
add ebp, edx
mov eax, edx
shr eax, 0x1f
add eax, ebp
mov ebp, eax
mov eax, 0x49f13bb3
imul dword [0x43c0c0]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x43c0c8]
sub ebp, eax
imul edx, edx, 0x8386f
mov eax, ebx
imul eax, eax, 0x107d6
add ebp, edx
add ebp, eax
mov eax, dword [0x43c0b4]
imul eax, eax, 0x106d5
lea edx, [eax + ebp + 0x79ea]
mov eax, dword [esp + 0x684]
test eax, eax
mov dword [0x43c0c8], edx
je 0x40430f
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
push 0x104
push eax
push ecx
call dword [edx + 0x28]
mov ecx, dword [0x43c0b0]
mov edi, dword [0x43c0bc]
mov ebx, dword [0x43c0b8]
mov esi, eax
mov edx, dword [esp + 0x68c]
test edx, edx
je 0x40433e
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
push 0x104
push edx
push eax
call dword [ecx + 0x20]
mov ecx, dword [0x43c0b0]
mov edi, dword [0x43c0bc]
mov ebx, dword [0x43c0b8]
mov esi, eax
mov ebp, dword [str._r_____r____]
imul edi, edi, 0x796
add ecx, ebp
imul ecx, ecx, 0x17928
mov eax, 0x49f13bb3
imul dword [0x43c0c8]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, 0x49f13bb3
imul dword [0x43c0c0]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x43c0c4]
sub ecx, eax
imul edx, edx, 0x8386f
add ecx, edx
mov eax, 0x7c32ca05
imul ebx
sar edx, 0xf
add ecx, edx
mov eax, edx
shr eax, 0x1f
add eax, ecx
mov ecx, ebx
imul ecx, ecx, 0x107d6
add eax, ecx
sub eax, edi
mov ecx, eax
mov eax, 0x3e565a5f
imul ebp
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, 0x4030a4dd
imul ebx
mov ebx, dword [esp + 0x688]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add ecx, edx
test ebx, ebx
lea ecx, [eax + ecx - 0x107d6]
mov dword [0x43c0c4], ecx
je 0x404a5f
push 0
push ebx
call fcn.00416873
add esp, 8
cmp eax, 0xffffffff
je 0x404a5f
mov ecx, dword [0x43c0c0]
mov esi, dword [str._r_____r____]
mov edx, dword [0x43c0b0]
mov eax, dword [0x43c0bc]
add eax, ecx
lea edi, [esi + edx]
imul eax, eax, 0xff3e
mov edx, dword [0x43c0c4]
imul edi, edi, 0x17928
add edi, eax
imul edx, edx, 0xdd94
add edi, edx
mov eax, 0x49f13bb3
imul ecx
mov ecx, dword [0x43c0ac]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x49f13bb3
imul ecx
imul ecx, ecx, 0x94045
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x3e565a5f
imul esi
add edi, ecx
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x43c0cc]
imul edx, edx, 0x106d4
sub edi, ecx
sub edi, edx
sub edi, 0xff3e
mov dword [0x43c0c0], edi
lea edx, [esp + 0x18]
push edx
xor eax, eax
push pe_nt_image_headers32
mov ecx, 0x40
lea edi, [esp + 0x28]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x28]
push edx
push eax
call dword [ecx + 0x40]
test eax, eax
jne 0x40488c
lea eax, [esp + 0x20]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4044d1
sub eax, edx
mov dword [esp + 0x1c], eax
je 0x40488c
mov ecx, dword [0x43c0ac]
mov eax, dword [0x43c0c8]
mov esi, dword [0x43c0b0]
mov edx, dword [0x43c0b8]
lea edi, [eax + ecx]
imul ecx, ecx, 0x8386f
add edx, esi
imul edi, edi, 0x107d6
imul edx, edx, 0x17928
add edi, edx
mov edx, dword [0x43c0c0]
mov eax, 0x49f13bb3
imul edx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [str._r_____r____]
sub edi, eax
mov eax, 0x49f13bb3
imul edx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
add edi, ecx
mov ecx, dword [0x43c0c4]
mov eax, 0x7c32ca05
imul ecx
mov ebp, dword [0x43c0cc]
sar edx, 0xf
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0x3e565a5f
imul esi
sub edi, ecx
mov ecx, dword [0x43c0bc]
sar edx, 0xe
imul ecx, ecx, 0xff3e
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, dword [esp + 0x10]
add edi, ebp
lea edx, [ecx + edi + 0x107ce]
push ebx
mov dword [0x43c0bc], edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x50]
mov esi, eax
test esi, esi
jne 0x4047d9
mov ecx, dword [0x43c0b8]
mov edx, dword [0x43c0b0]
lea edi, [ecx + edx]
mov eax, 0x49f13bb3
imul edi, edi, 0x17928
imul ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x43c0c0]
sub edi, eax
mov esi, dword [0x43c0ac]
mov eax, 0x49f13bb3
imul edx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, esi
imul edx, edx, 0xb4759
sub edi, eax
add edi, edx
mov eax, 0x3e565a5f
imul ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebp, dword [str._r_____r____]
sub edi, eax
mov eax, 0x3e565a5f
imul esi
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x43c0bc]
imul edx, edx, 0xff3e
add ecx, ebp
add ecx, edi
lea eax, [edx + ecx - 0x107d6]
lea ecx, [esp + 0x20]
push 0
push ecx
mov dword [0x43c0b8], eax
call fcn.00416873
add esp, 8
cmp eax, 0xffffffff
je 0x404735
mov edx, dword [0x43c0c0]
mov esi, dword [0x43c0b0]
mov ecx, dword [0x43c0bc]
lea edi, [ecx + esi]
imul ecx, ecx, 0x7f9f
mov eax, 0x49f13bb3
imul edi, edi, 0xbc94
imul edx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, dword [0x43c0ac]
mov edx, eax
imul edx, edx, 0x83eb
add edi, edx
add edi, ecx
mov ecx, dword [0x43c0c8]
add ecx, eax
imul ecx, ecx, 0x8386f
mov eax, 0x7c32ca05
imul esi
sar edx, 0xf
lea ecx, [ecx + edi*2 - 0x17928]
add ecx, edx
mov esi, edx
shr esi, 0x1f
add esi, ecx
mov ecx, dword [str._r_____r____]
mov eax, 0x3e565a5f
imul ecx
mov ecx, dword [0x43c0b4]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
mov eax, 0x4030a4dd
imul ecx
mov eax, dword [esp + 0x10]
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
mov ecx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x24]
push ecx
mov dword [0x43c0b4], esi
mov edx, dword [eax]
push eax
call dword [edx + 0x44]
mov esi, eax
test esi, esi
je 0x4047d9
mov ecx, dword [esp + 0x680]
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
push 0
push ecx
push eax
call dword [edx + 0x44]
jmp 0x4047d7
mov ecx, dword [0x43c0c0]
mov edx, dword [0x43c0b0]
mov eax, dword [0x43c0ac]
lea esi, [ecx + edx]
imul eax, eax, 0x862b1
imul esi, esi, 0x17928
add esi, eax
mov eax, 0x49f13bb3
imul ecx
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
mov ecx, dword [0x43c0b4]
mov eax, 0x49f13bb3
imul ecx
mov ecx, dword [0x43c0b8]
sar edx, 0xe
imul ecx, ecx, 0x106d4
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
add esi, ecx
mov ecx, dword [str._r_____r____]
mov eax, 0x3e565a5f
imul ecx
mov ecx, dword [0x43c0bc]
sar edx, 0xe
imul ecx, ecx, 0x1fe7c
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
mov eax, dword [esp + 0x10]
lea edx, [esi + ecx - 0x17928]
mov dword [0x43c0b0], edx
mov edx, dword [esp + 0x680]
mov ecx, dword [eax]
push 0
push edx
push eax
call dword [ecx + 0x44]
mov esi, eax
mov ecx, dword [0x43c0bc]
mov eax, dword [0x43c0b8]
mov edx, dword [0x43c0b0]
mov ebx, dword [0x43c0c0]
sub eax, ecx
imul ecx, ecx, 0xff3e
lea ebp, [eax + edx + 1]
mov edi, dword [0x43c0ac]
imul ebp, ebp, 0x17928
mov eax, 0x49f13bb3
imul ebx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0x49f13bb3
imul edi
imul edi, edi, 0x94045
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
add ebp, edi
mov edi, dword [0x43c0c4]
mov eax, 0x3e565a5f
imul edi
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0x4030a4dd
imul ebx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add ecx, edi
add eax, edx
add ecx, ebp
add eax, ecx
test esi, esi
mov dword [0x43c0ac], eax
jne 0x404a5f
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push 1
lea edx, [esp + 0x124]
push edx
push eax
call dword [ecx + 0x18]
jmp 0x404a4c
mov eax, dword [0x43c0b0]
mov ecx, dword [0x43c0b8]
lea esi, [ecx + eax]
mov ecx, dword [0x43c0c8]
imul esi, esi, 0x17928
mov eax, 0x15b86ecf
imul ecx
sar edx, 0xd
add esi, edx
mov edi, edx
mov edx, dword [0x43c0c4]
mov eax, 0x49f13bb3
imul edx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x43c0c0]
shr edi, 0x1f
add edi, esi
sub edi, eax
mov eax, 0x49f13bb3
imul edx
sar edx, 0xe
mov eax, edx
mov esi, dword [0x43c0bc]
shr eax, 0x1f
imul esi, esi, 0xff3e
add eax, edx
mov edx, dword [0x43c0ac]
imul edx, edx, 0x94045
sub edi, eax
add edi, edx
mov eax, 0x3e565a5f
imul ecx
mov ecx, dword [0x43c0cc]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
add esi, ecx
mov ecx, dword [str._r_____r____]
sub edi, eax
mov eax, 0x4030a4dd
imul ecx
mov eax, dword [esp + 0x10]
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add esi, edi
lea edx, [ecx + esi - 0x84107]
push ebx
mov dword [str._r_____r____], edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x50]
mov esi, eax
test esi, esi
jne 0x404a5f
mov esi, dword [esp + 0x680]
push eax
push esi
call fcn.00416873
add esp, 8
cmp eax, 0xffffffff
je 0x404988
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
push 0
push esi
push eax
call dword [edx + 0x44]
mov esi, eax
test esi, esi
jne 0x404a5f
mov esi, dword [0x43c0b0]
mov eax, dword [0x43c0b8]
mov ecx, dword [0x43c0c0]
lea edi, [eax + esi]
mov eax, 0x49f13bb3
imul edi, edi, 0x17928
imul ecx
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub edi, ecx
mov ecx, dword [str._r_____r____]
mov eax, 0x49f13bb3
imul ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x43c0ac]
sub edi, eax
imul edx, edx, 0x94046
mov eax, ecx
imul eax, eax, 0x8386f
add edi, edx
mov edx, dword [0x43c0b4]
add edi, eax
mov eax, 0x7c32ca05
imul edx
sar edx, 0xf
mov ebx, edx
add edi, edx
mov eax, 0x3e565a5f
imul ecx
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
shr ebx, 0x1f
mov eax, 0x3e565a5f
imul esi
add ebx, edi
sub ebx, ecx
mov ecx, dword [0x43c0bc]
imul ecx, ecx, 0xff3e
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add ebx, edx
add eax, ebx
add eax, ecx
push 1
mov dword [0x43c0cc], eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
lea ecx, [esp + 0x124]
push ecx
push eax
call dword [edx + 0x18]
mov esi, eax
mov eax, dword [esp + 0x690]
test eax, eax
je 0x404a5f
mov dword [eax], 1
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [0x43c0b0]
mov ecx, dword [0x43c0b8]
mov ebx, dword [0x43c0bc]
sub ebx, edi
imul ebx, ebx, 0xff3e
mov eax, 0x15b86ecf
imul ecx
imul ecx, ecx, 0x107d6
sar edx, 0xd
add ebx, edx
mov ebp, edx
mov eax, 0x15b86ecf
imul edi
mov edi, dword [0x43c0b4]
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
shr ebp, 0x1f
add ebp, ebx
sub ebp, eax
mov eax, 0x15b86ecf
imul edi
imul edi, edi, 0x106d5
sar edx, 0xd
mov ebx, edx
add ebp, edx
mov edx, dword [0x43c0c0]
mov eax, 0x49f13bb3
imul edx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x43c0c8]
imul edx, edx, 0x8386f
shr ebx, 0x1f
add ebx, ebp
sub ebx, eax
add ebx, edx
add ebx, ecx
lea eax, [ebx + edi + 0x79ea]
mov dword [0x43c0c8], eax
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [esp + 0x670]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
call fcn.00415ffe
add esp, 0x664
ret