Function at 0x409490
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x542fec
mov eax, dword fs:[0]
push eax
sub esp, 0x298
mov eax, dword [0x5bf364]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0xdc], edi
mov eax, dword [ebp + 0x18]
lea ecx, [ebp - 0x278]
mov esi, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0x9c], ebx
call fcn.004114e0
mov dword [ebp - 4], ebx
mov dword [edi + 0x10c], ebx
mov dword [edi + 0x114], 0xc
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x40951e
cmp dword [esi + 0x24], eax
mov eax, 0x580994
je 0x40951e
mov eax, dword [esi + 0x1c]
mov ecx, 0x580994
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x409549
test dx, dx
je 0x409545
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x409549
add eax, 4
add ecx, 4
test dx, dx
jne 0x409523
xor eax, eax
jmp 0x40954e
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4096ea
mov dword [ebp - 0x98], eax
mov dword [ebp - 0xa0], eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2a4]
call fcn.00405c90
lea edx, [ebp - 0x2a4]
mov dword [ebp - 0x9c], 4
xor ecx, ecx
call fcn.00496e90
push str.aria2.session
lea edx, [ebp - 0x2a4]
lea ecx, [ebp - 0x108]
call fcn.0049d910
add esp, 4
mov edi, eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x134]
call fcn.00405c90
mov byte [ebp - 4], 3
mov dword [ebp - method.CMStringArray.virtual_0], vtable.CWConstString.0
mov dword [ebp - 0x128], 0x580994
mov byte [ebp - 4], 4
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0xa0]
push eax
lea edx, [ebp - 0x134]
lea ecx, [ebp - 0xbc]
call fcn.004129b0
add esp, 8
mov byte [ebp - 4], 5
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x409609
mov edi, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x98], eax
jmp 0x409635
cmp dword [edi + 0x24], 0
jne 0x409622
mov edi, dword [eax + 0x14]
mov ecx, 0x580994
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x98], eax
jmp 0x409635
mov ecx, dword [edi + 0x1c]
mov edi, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x98], eax
test ecx, ecx
je 0x40966b
cmp word [ecx], 0
je 0x40966b
test edi, edi
js 0x40966b
push 0x5938f8
push ecx
call fcn.00522150
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x40966b
push ebx
push edi
push 1
push dword [ebp - 0x98]
call fcn.00521e13
push ebx
call fcn.005212cd
add esp, 0x14
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xbc]
call fcn.00405c00
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x124]
call fcn.00405c00
mov byte [ebp - 4], 2
mov dword [ebp - method.CMStringArray.virtual_0], vtable.CVolObject.0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xf8]
call fcn.00405c00
mov byte [ebp - 4], 1
mov ebx, 4
mov dword [ebp - 0x9c], ebx
and ebx, 0xfffffffb
mov dword [ebp - method.CMStringArray.virtual_0], vtable.CVolObject.0
mov dword [ebp - 0x9c], ebx
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x294]
call fcn.00405c00
mov byte [ebp - 4], 0
mov dword [ebp - method.CMStringArray.virtual_0], vtable.CVolObject.0
jmp 0x4098de
push 1
lea eax, [ebp - 0x108]
mov ecx, esi
push eax
call fcn.0049cd20
mov byte [ebp - 4], 0xd
mov edx, 0x588690
mov ecx, eax
call fcn.00412340
mov edi, eax
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0xf8]
call fcn.00405c00
mov byte [ebp - 4], 0
mov dword [ebp - method.CMStringArray.virtual_0], vtable.CVolObject.0
test edi, edi
je 0x409799
push 0x588690
mov edx, esi
lea ecx, [ebp - 0x108]
call fcn.0049d910
add esp, 4
mov ebx, eax
mov byte [ebp - 4], 0x10
mov ecx, esi
mov edx, dword [esi]
call dword [edx + 0x44]
mov ecx, dword [ebx + 4]
mov dword [esi + 4], ecx
mov ecx, dword [ebx + 8]
mov dword [esi + 8], ecx
lea ecx, [esi + 0x10]
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x10]
call dword [eax + 0x44]
lea eax, [ebx + 0x10]
push eax
lea ecx, [esi + 0x10]
call fcn.00405870
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0xf8]
call fcn.00405c00
mov byte [ebp - 4], 0
mov ebx, dword [ebp - 0x9c]
mov dword [ebp - method.CMStringArray.virtual_0], vtable.CVolObject.0
push str.aria2.session
mov edx, esi
mov dword [ebp - 0xa0], 0
lea ecx, [ebp - 0x108]
mov dword [ebp - 0x98], 0
call fcn.0049d910
add esp, 4
mov edi, eax
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x134]
call fcn.00405c90
mov byte [ebp - 4], 0x14
mov dword [ebp - method.CMStringArray.virtual_0], vtable.CWConstString.0
mov dword [ebp - 0x128], 0x580994
mov byte [ebp - 4], 0x15
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x98]
push eax
lea edx, [ebp - 0x134]
lea ecx, [ebp - 0xbc]
call fcn.004129b0
add esp, 8
mov byte [ebp - 4], 0x16
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x40982a
mov edi, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x98], eax
jmp 0x409856
cmp dword [edi + 0x24], 0
jne 0x409843
mov edi, dword [eax + 0x14]
mov ecx, 0x580994
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x98], eax
jmp 0x409856
mov ecx, dword [edi + 0x1c]
mov edi, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x98], eax
test ecx, ecx
je 0x409895
cmp word [ecx], 0
je 0x409895
test edi, edi
js 0x409895
push 0x5938f8
push ecx
call fcn.00522150
add esp, 8
mov dword [ebp - 0xa0], eax
test eax, eax
je 0x409895
push eax
push edi
push 1
push dword [ebp - 0x98]
call fcn.00521e13
push dword [ebp - 0xa0]
call fcn.005212cd
add esp, 0x14
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0xbc]
call fcn.00405c00
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x124]
call fcn.00405c00
mov byte [ebp - 4], 0x13
mov dword [ebp - method.CMStringArray.virtual_0], vtable.CVolObject.0
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0xf8]
call fcn.00405c00
mov byte [ebp - 4], 0
mov dword [ebp - method.CMStringArray.virtual_0], vtable.CVolObject.0
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x4098f2
cmp dword [esi + 0x24], eax
mov eax, 0x580994
je 0x4098f2
mov eax, dword [esi + 0x1c]
mov ecx, 0x580994
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40991d
test dx, dx
je 0x409919
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40991d
add eax, 4
add ecx, 4
test dx, dx
jne 0x4098f7
xor eax, eax
jmp 0x409922
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4099af
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0xcc]
call fcn.00405c90
or ebx, 8
lea edx, [ebp - 0xcc]
xor ecx, ecx
mov dword [ebp - 0x9c], ebx
call fcn.00496e90
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x44]
mov eax, dword [ebp - 0xc8]
lea ecx, [esi + 0x10]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0xc4]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0xc0]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x10]
call dword [eax + 0x44]
lea eax, [ebp - 0xbc]
push eax
lea ecx, [esi + 0x10]
call fcn.00405870
and ebx, 0xfffffff7
mov dword [ebp - 0x9c], ebx
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0xbc]
call fcn.00405c00
mov byte [ebp - 4], 0
mov dword [ebp - 0xcc], vtable.CVolObject.0
push str.aria2c.exe
mov edx, esi
lea ecx, [ebp - 0x2a4]
call fcn.0049d910
add esp, 4
mov byte [ebp - 4], 0x1f
or ebx, 1
mov dword [ebp - 0x9c], ebx
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x4099e5
cmp dword [eax + 0x24], ecx
mov ecx, 0x580994
je 0x4099e5
mov ecx, dword [eax + 0x1c]
call fcn.00497830
test eax, eax
je 0x409a37
push str.aria2.conf
mov edx, esi
lea ecx, [ebp - 0x108]
call fcn.0049d910
add esp, 4
mov dword [ebp - 4], 0x20
or ebx, 2
mov dword [ebp - 0x9c], ebx
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x409a27
cmp dword [eax + 0x24], ecx
mov ecx, 0x580994
je 0x409a27
mov ecx, dword [eax + 0x1c]
call fcn.00497830
mov byte [ebp - 0x91], 0
test eax, eax
jne 0x409a3e
mov byte [ebp - 0x91], 1
mov dword [ebp - 4], 0x1f
test bl, 2
je 0x409a73
and ebx, 0xfffffffd
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 4], 0x21
lea ecx, [ebp - 0xf8]
call fcn.00405c00
mov byte [ebp - 4], 0x1f
mov dword [ebp - method.CMStringArray.virtual_0], vtable.CVolObject.0
mov dword [ebp - 4], 0
test bl, 1
je 0x409aa5
and ebx, 0xfffffffe
mov dword [ebp - 0x9c], ebx
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x294]
call fcn.00405c00
mov byte [ebp - 4], 0
mov dword [ebp - method.CMStringArray.virtual_0], vtable.CVolObject.0
cmp byte [ebp - 0x91], 0
je 0x409ab5
xor esi, esi
jmp 0x409e92
mov eax, dword [ebp - 0x26c]
lea ecx, [ebp - 0x26c]
call dword [eax + 0x44]
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x25c]
mov dword [ebp - 0x268], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x264], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x25c]
call dword [eax + 0x44]
add esi, 0x10
lea ecx, [ebp - 0x25c]
push esi
call fcn.00405870
lea ecx, [ebp - 0xcc]
call fcn.00405c90
mov byte [ebp - 4], 0x25
lea eax, [ebp - 0x90]
push 0xf3f9
push 0x593d28
push eax
mov dword [ebp - 0xcc], vtable.CWString.0
call fcn.0049b920
add esp, 0xc
lea eax, [ebp - 0x90]
lea ecx, [ebp - 0xcc]
push eax
call fcn.0049c380
mov byte [ebp - 4], 0x26
lea ecx, [ebp - 0x240]
mov eax, dword [ebp - 0x240]
call dword [eax + 0x44]
mov eax, dword [ebp - 0xc8]
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x23c], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x238], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 0x230]
call dword [eax + 0x44]
lea eax, [ebp - 0xbc]
push eax
lea ecx, [ebp - 0x230]
call fcn.00405870
mov byte [ebp - 4], 0x27
lea ecx, [ebp - 0xbc]
call fcn.00405c00
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xcc]
mov dword [ebp - 0xcc], vtable.CVolObject.0
call fcn.00405c90
mov byte [ebp - 4], 0x29
lea eax, [ebp - 0x90]
push 0xf3fa
push 0x593d28
push eax
mov dword [ebp - 0xcc], vtable.CWString.0
call fcn.0049b920
add esp, 0xc
lea eax, [ebp - 0x90]
lea ecx, [ebp - 0xcc]
push eax
call fcn.0049c380
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x214]
mov eax, dword [ebp - 0x214]
call dword [eax + 0x44]
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x210], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x20c], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x208], eax
lea ecx, [ebp - 0x204]
mov eax, dword [ebp - 0x204]
call dword [eax + 0x44]
lea eax, [ebp - 0xbc]
push eax
lea ecx, [ebp - 0x204]
call fcn.00405870
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0xbc]
call fcn.00405c00
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xcc]
mov dword [ebp - 0xcc], vtable.CVolObject.0
call fcn.00405c90
mov byte [ebp - 4], 0x2d
lea eax, [ebp - 0x90]
push 0xf3fb
push 0x593d28
push eax
mov dword [ebp - 0xcc], vtable.CWString.0
call fcn.0049b920
add esp, 0xc
lea eax, [ebp - 0x90]
lea ecx, [ebp - 0xcc]
push eax
call fcn.0049c380
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x1e8]
mov eax, dword [ebp - 0x1e8]
call dword [eax + 0x44]
mov eax, dword [ebp - 0xc8]
lea ecx, [ebp - 0x1d8]
mov dword [ebp - 0x1e4], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x1e0], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x1dc], eax
mov eax, dword [ebp - 0x1d8]
call dword [eax + 0x44]
lea eax, [ebp - 0xbc]
push eax
lea ecx, [ebp - 0x1d8]
call fcn.00405870
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0xbc]
call fcn.00405c00
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1bc]
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0xcc], vtable.CVolObject.0
call dword [eax + 0x44]
mov ebx, dword [ebp - 0xd0]
lea ecx, [ebp - 0x1ac]
mov eax, dword [ebx + 4]
mov dword [ebp - 0x1b8], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x1b4], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0x1ac]
call dword [eax + 0x44]
lea eax, [ebx + 0x10]
push eax
lea ecx, [ebp - 0x1ac]
call fcn.00405870
mov eax, dword [ebp - 0x190]
lea ecx, [ebp - 0x190]
call dword [eax + 0x44]
mov ebx, dword [ebp - 0xd4]
mov eax, dword [ebx + 4]
mov dword [ebp - 0x18c], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x188], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x184], eax
lea ecx, [ebp - 0x180]
mov eax, dword [ebp - 0x180]
call dword [eax + 0x44]
lea eax, [ebx + 0x10]
push eax
lea ecx, [ebp - 0x180]
call fcn.00405870
mov eax, dword [ebp - 0x164]
lea ecx, [ebp - 0x164]
call dword [eax + 0x44]
mov ebx, dword [ebp - 0xd8]
lea ecx, [ebp - 0x154]
mov eax, dword [ebx + 4]
mov dword [ebp - 0x160], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x15c], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x158], eax
mov eax, dword [ebp - 0x154]
call dword [eax + 0x44]
lea eax, [ebx + 0x10]
push eax
lea ecx, [ebp - 0x154]
call fcn.00405870
mov ebx, dword [ebp - 0xdc]
lea eax, [ebp - 0x278]
push ecx
push eax
push ecx
lea ecx, [ebx + 0x64]
mov dword [ebp - 0x138], 0
mov dword [ebx + 0x11c], 0xf3f9
mov dword [ebx + 0x120], 0xf3fa
mov dword [ebx + 0x124], 0xf3fb
call fcn.00457740
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
cmp dword [ebx + 0x10c], 0
mov edi, eax
jne 0x409e8c
call esi
xor ecx, ecx
sub eax, edi
sbb ecx, ecx
test ecx, ecx
jg 0x409e8c
jl 0x409e79
cmp eax, 0x2ee0
jae 0x409e8c
mov ecx, 1
call fcn.004571b0
cmp dword [ebx + 0x10c], 0
je 0x409e64
mov esi, dword [ebx + 0x10c]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x278]
call fcn.004087b0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0050ec8c
mov esp, ebp
pop ebp
ret 0x24