Function at 0x490df2
Capabilities:
Persist via run registry key

Disassembly:
jbe 0x44f39e
cmp dword [esp + 0x48], 0
je 0x44f393
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0xc]
lea edi, [ebx + edx*8]
push edi
call fcn.0047948a
push eax
push 0x4473e9
lea ebx, [esp + 0x20]
push ebx
call fcn.0046ba0d
add esp, 0xc
test eax, eax
je 0x44f389
mov edx, ebx
mov eax, ebp
call fcn.00477e9e
test al, al
je 0x44f389
mov ecx, dword [esp + 0x48]
push dword [ecx + 4]
push 0
push 0
mov eax, dword [esp + 0x50]
call fcn.004923f8
push eax
push ebx
call fcn.0047948a
push eax
mov esi, dword [esp + 0x5c]
call dword [esi]
lea eax, [esp + 0x18]
push eax
call fcn.0044926f
test byte [esp + 0x44], 8
jne 0x4999df
inc dword [esp + 4]
mov edi, dword [esp + 8]
cmp dword [esp + 4], edi
jmp 0x467799
xor edx, edx
mov eax, esi
call fcn.004a1681
mov ebx, eax
cmp ebx, 1
mov ebp, ebx
jne 0x44f329
mov byte [esp + 0x13], 1
jmp 0x44f39e
mov dword [esp + 4], 0
mov esi, dword [esp + 8]
cmp dword [esp + 4], esi
jae 0x4999df
mov edx, dword [esp + 4]
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x44]
cmp byte [eax + edx*8 + 4], 0
je 0x4677b5
or edi, 0x20
cmp dword [esp + 0x14], 0
je 0x4677da
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 4]
lea ebx, [ecx + esi*8]
push ebx
call fcn.0047948a
push eax
call dword [esp + 0x18]
test al, al
je 0x44f39e
mov edx, dword [esp + 4]
mov ebx, 0x18
mov eax, dword [esp + 0xc]
lea ebp, [eax + edx*8]
push ebp
call fcn.0047948a
mov byte [esp + 3], 0
mov esi, eax
call fcn.00451587
test al, al
je 0x463c52
test edi, 0x20
je 0x48920e
push esi
call fcn.0049e5cc
test eax, eax
jne 0x46cbec
mov ebx, 4
jmp 0x489221
mov ebx, 1
lea eax, [esp + 0x20]
push eax
call fcn.0044926f
lea ebp, [esp + 0x24]
push ebp
call fcn.0044926f
lea ecx, [esp + 0x28]
push ecx
call fcn.0044926f
mov eax, ebx
jmp 0x463c50
cmp eax, 0xf
jne 0x47771f
xor ebx, ebx
jmp 0x463c52
cmp ebx, 1
jbe 0x463c52
test edi, 2
je 0x463c52
and edi, 0x20
je 0x463c47
mov dword [esp + 0x20], 0
mov eax, 2
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
call fcn.0045539f
test al, al
je 0x48e1d2
xor edx, edx
mov eax, esi
call fcn.0044acf6
jmp 0x463c50
cmp ebp, 1
seta cl
xor eax, eax
cmp dword [esp + 0x48], 0
setne al
test ecx, eax
je 0x4999df
push esi
push 0x4473e9
lea ebx, [esp + 0x20]
push ebx
call fcn.0046ba0d
add esp, 0xc
test eax, eax
je 0x47951a
mov edx, ebx
mov eax, ebp
call fcn.00477e9e
test al, al
je 0x47951a
mov edx, dword [esp + 0x48]
push dword [edx + 4]
push 0
push 0
mov eax, dword [esp + 0x50]
call fcn.004923f8
push eax
push ebx
call fcn.0047948a
push eax
mov edi, dword [esp + 0x5c]
call dword [edi]
lea ebx, [esp + 0x18]
push ebx
call fcn.0044926f
jmp 0x4999df
add esp, 0x30
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret 8
push esi
call fcn.00455393
test eax, eax
jne 0x46cbec
mov ebx, 3
call fcn.0046bfb1
cmp eax, 5
je 0x48a4a1
ja 0x46cbe3
sub eax, 2
cmp eax, 1
ja 0x47771f
jmp 0x46cbec
cmp byte [esp + 3], 0
jne 0x47771f
mov byte [esp + 3], 1
xor edx, edx
mov eax, esi
call fcn.00458a79
jmp 0x467804
push 0
mov eax, esi
lea edx, [esp + 0x2c]
call fcn.0046cffe
cmp eax, 1
mov ebx, eax
ja 0x468d82
lea edi, [esp + 0x28]
mov ebx, 2
push edi
call fcn.0047948a
push eax
push 0x447394
lea ebp, [esp + 0x2c]
push ebp
call fcn.0046ba0d
add esp, 0xc
test eax, eax
je 0x468d82
lea edi, [esp + 0x20]
push 0x4473a7
push edi
call fcn.0047e72e
test eax, eax
je 0x48e244
push 0xf
push edi
call fcn.0049eb6b
test eax, eax
je 0x48e244
push 0xf
push edi
call fcn.0045750d
sub eax, 0xf
push eax
call fcn.004845e2
push edi
call fcn.0047948a
mov dword [esp + 0x1c], 0
mov edx, eax
mov eax, 0x80000001
push 0
lea esi, [esp + 0x20]
push esi
call fcn.00484cf1
push esi
mov ebx, eax
call fcn.0044926f
test ebx, ebx
je 0x48e214
push ebp
call fcn.0047948a
push eax
push edi
call fcn.0047948a
push eax
push 0x80000001
call fcn.00465176
test eax, eax
je 0x468d7d
push eax
mov ebx, 0x14
call fcn.00471242
jmp 0x468d82
push ebp
mov ebp, 0x18
push edi
push esi
mov esi, eax
push ebx
sub esp, 0x30
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 0
mov byte [esp + 0x13], 0
mov dword [esp + 0x2c], 0
call fcn.00451587
test al, al
je 0x4794bc
cmp byte [esi], 0
je 0x490e32
test byte [esp + 0x44], 0x20
je 0x490e37
call fcn.0045043a
push dword [esp + 0x48]
mov eax, esi
push 0
lea edx, [esp + 0x34]
call fcn.0046b8b3
cmp eax, 1
mov ebp, eax
ja 0x4794bc
lea ebx, [esp + 0x2c]
push ebx
call fcn.0047948a
mov dword [esp + 0xc], eax
push ebx
call fcn.0046cf38
mov edx, dword [esp + 0x44]
shr eax, 3
mov dword [esp + 8], eax
shr edx, 2
cmp eax, 1
seta cl
movzx eax, cl
test eax, edx
je 0x467789
mov ebp, 0x15
jmp 0x4794bc
lea eax, [esp + 0x2c]
call fcn.00499909
test byte [esp + 0x13], 1
setne bl
xor edx, edx
cmp dword [esp + 0x48], 0
setne dl
test ebx, edx
je 0x47c69d
mov esi, dword [esp + 0x48]
mov byte [esi + 0xc], 1
jmp 0x47c69d