Function at 0x45313d
Capabilities:
Persist via run registry key

Disassembly:
lea ecx, [esp + 0x28]
push ecx
call fcn.0044926f
lea ebp, [esp + 0x24]
push ebp
call fcn.0044926f
lea edx, [esp + 0x40]
push edx
call fcn.0044926f
mov edx, dword [esp]
lea ebx, [esp + 0x40]
mov eax, 0x44780f
inc dword [esp]
push ebx
call fcn.0045dc97
test eax, eax
jne 0x4823df
mov dword [esp + 0x1c], 0
mov al, 0xc
call fcn.00463b8a
cmp byte [eax], 0
jne 0x45be8f
mov edx, 0x443c94
mov eax, 0xc
call fcn.0047e7dc
jmp 0x44cd2a
push 0
mov edx, 0x1c
mov eax, 0xab2a66
push 0x413de9
call fcn.0049d417
test al, al
je 0x45c06f
xor ebx, ebx
mov edx, dword [ebx*8 + 0x4ad22a]
mov eax, dword [ebx*8 + 0x4ad226]
inc ebx
call fcn.0047e7dc
cmp ebx, 8
jbe 0x44cd4a
jmp 0x45c11d
push ebp
xor eax, eax
mov ecx, 9
push edi
mov edi, 0xab4a36
push esi
push ebx
sub esp, 0x194
cld
rep stosd dword es:[edi], eax
mov dword [esp + 0x40], 0
push 0
push 0
push 0x447795
mov byte [0xab2995], 1
call fcn.004989be
mov dword [esp], 0
test eax, eax
sete byte [0x4ad2c2]
jmp 0x45b4b0
movzx ecx, byte [ebx]
xor edx, edx
inc ebx
cmp cl, 0x3d
jne 0x454600
push ebx
lea ebx, [esp + 0x28]
push ebx
call fcn.0044a45c
test eax, eax
je 0x482430
mov edx, 1
test dl, dl
je 0x48a616
lea edi, [esp + 0x28]
xor ebx, ebx
push edi
xor edi, edi
call fcn.0047948a
mov ebp, eax
push 0
push 0x4159b8
push dword [ebx + 0x4ad445]
call fcn.00458991
test eax, eax
je 0x454644
push 0
push ebp
push dword [ebx + 0x4ad449]
call fcn.00458991
test eax, eax
jne 0x48a607
inc edi
add ebx, 0xa
cmp edi, 0x1b
jbe 0x454618
jmp 0x48a616
lea edi, [esp + 0x30]
push edi
call fcn.0047948a
push 0
mov ebp, eax
push 2
push edi
call fcn.0046cf38
push eax
mov edx, ebp
mov eax, 0xab2a66
call fcn.00481086
cmp eax, 0xf
mov ebx, eax
sete dl
cmp eax, 7
sete al
or eax, edx
test al, 1
je 0x457579
mov eax, ebx
call fcn.0045f6d6
push edi
call fcn.0044926f
push esi
call fcn.0044926f
mov edx, dword [esp]
lea esi, [esp + 0x40]
mov eax, 0x4477d0
inc dword [esp]
push esi
call fcn.0045dc97
test eax, eax
jne 0x476aab
mov dword [esp], 0
jmp 0x44891f
lea edi, [esp + 0x3c]
push edi
call fcn.0046cf38
push edi
mov ebx, eax
call fcn.0047948a
lea edx, [esp + 0x34]
push edx
mov edx, ebx
push 7
call fcn.00458798
test eax, eax
je 0x45b4a4
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x45b4a4
push 0
mov edx, eax
mov eax, 0xab2a66
push 2
push ecx
call fcn.00481086
mov ebx, eax
cmp eax, 0xf
sete al
cmp ebx, 7
sete cl
or eax, ecx
test al, 1
jne 0x457572
push edi
call fcn.0044926f
push esi
call fcn.0044926f
mov edx, dword [esp]
lea esi, [esp + 0x40]
mov eax, 0x44681c
inc dword [esp]
push esi
call fcn.0045dc97
test eax, eax
jne 0x461a6e
mov dword [esp], 0
jmp 0x457585
push 0
mov edx, 0xc
mov eax, 0xab2a66
push 0x443c94
call fcn.0049d417
test al, al
jne 0x44cd2a
push 0
mov edx, 0xc
mov eax, 0xab2a66
push 0x4140ee
call fcn.0049d417
test al, al
jne 0x44cd2a
push 0
mov edx, 0xc
mov eax, 0xab2a66
push 0x41407d
call fcn.0049d417
test al, al
jne 0x44cd2a
mov edx, 0x447812
mov eax, 0xf
jmp 0x4662b1
mov eax, 0xe
call fcn.00463b8a
cmp byte [eax], 0
jne 0x45c113
lea ebx, [esp + 0x1c]
push ebx
call fcn.0046cf38
test eax, eax
jne 0x45c0ac
push 0
mov edx, 0x4454e6
mov eax, 0x80000002
push ebx
call fcn.00484cf1
test eax, eax
je 0x45c0ac
push ebx
call fcn.0044926f
lea ebx, [esp + 0x1c]
push ebx
call fcn.0046cf38
test eax, eax
jne 0x45c0f3
push 0
mov edx, 0x4469f7
mov eax, 0x80000002
push ebx
call fcn.00484cf1
test eax, eax
je 0x45c0d6
push ebx
call fcn.0044926f
push ebx
call fcn.0047948a
call fcn.0048200b
push eax
push ebx
call fcn.0048f9a8
push 0x446dba
push ebx
call fcn.0044a45c
lea ebx, [esp + 0x1c]
push ebx
call fcn.0046cf38
test eax, eax
je 0x45c113
push ebx
call fcn.0047948a
mov edx, eax
mov eax, 0xe
call fcn.0047e7dc
lea eax, [esp + 0x1c]
push eax
call fcn.0044926f
cld
xor edx, edx
mov dword [esp + 0x10], 0
lea edi, [esp + 0x184]
mov al, dl
mov dword [esp + 0xe4], 0x94
mov ecx, 6
rep stosb byte es:[edi], al
mov byte [esp + 0x189], 5
lea edi, [esp + 0xe4]
mov dword [esp + 0x14], 0
push edi
call fcn.00451538
xor edx, edx
test eax, eax
je 0x467af1
cmp dword [esp + 0xf4], 2
mov dl, 1
jne 0x467af1
lea ebx, [esp + 0x18]
push ebx
push 0
push 8
call fcn.0049814b
push eax
call fcn.0047e091
test eax, eax
jne 0x45c1a8
push ebx
push 8
call fcn.0049a679
push eax
call fcn.0049254b
test eax, eax
je 0x467ab9
lea ebp, [esp + 0x14]
push ebp
push 0
push 0
push 0
push 0
push 0
push 0
push 0x220
push 0x20
push 2
lea esi, [esp + 0x1ac]
push esi
call fcn.00476e09
test eax, eax
je 0x467ab0
lea ebx, [esp + 0x10]
push ebx
push dword [esp + 0x18]
push 0
call fcn.00452044
test eax, eax
jne 0x467aa7
call fcn.0046bfb1
cmp eax, 0x1e240
je 0x4a1a0a
mov dword [esp + 0x10], 0
jmp 0x467aa7
push esi
call fcn.0047948a
mov dword [esp + 0x3c], 0
lea edx, [esp + 0x3c]
mov edi, eax
mov dword [esp + 0x38], 0
call fcn.004a1112
test eax, eax
mov ebx, eax
je 0x45b44f
push edi
push 0x4467ea
lea edi, [esp + 0x40]
push edi
call fcn.0046ba0d
add esp, 0xc
test eax, eax
je 0x461abd
mov edx, edi
mov eax, ebx
call fcn.00494b86
test al, al
jne 0x461ac3
push edi
call fcn.0044926f
lea eax, [esp + 0x38]
jmp 0x476b04
push 0xab4a36
call fcn.00449571
cmp dword [0xab4a4e], 1
jne 0x465701
push 0x413df2
push 0x44785b
push 0x80000001
call fcn.00465176
mov eax, dword [0xab4a4e]
add esp, 0x194
pop ebx
pop esi
pop edi
pop ebp
ret
push 0
mov edx, 0x44785b
mov eax, 0x80000001
push 0
call fcn.00484cf1
test eax, eax
jne 0x4662b6
mov edx, 0x4478a8
mov al, 0xe
call fcn.0044992c
cmp byte [0x4ad2c2], 0
je 0x4656da
mov dword [esp + 0x44], 0x30
mov dword [esp + 0x6c], 0x44795a
push 0
call fcn.004788e4
mov dword [esp + 0x58], eax
mov dword [esp + 0x4c], 0x48dfe4
push 0x7f00
push 0
call fcn.0047b433
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x68], 0
push 0xf
call fcn.0048c227
mov dword [esp + 0x64], eax
lea edi, [esp + 0x44]
mov dword [esp + 0x48], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x70], 0
push edi
call fcn.0047e3e2
push 0
push 0x47c6cf
push 0
push 0x2710
push 0
call fcn.004788e4
push eax
call fcn.00479e65
jmp 0x4656e4
push ebx
call fcn.0046e3e0
push dword [esp + 0x14]
call fcn.00489ae7
push dword [esp + 0x18]
call fcn.0047968a
cmp dword [esp + 0x10], 0
je 0x467ae7
xor eax, eax
call fcn.00452a4f
test al, al
je 0x467ae7
lea eax, [esp + 8]
call fcn.00489b3f
test al, al
je 0x467adf
cmp dword [esp + 8], 3
jne 0x467ae7
mov dword [esp + 0x10], 0
xor edx, edx
cmp dword [esp + 0x10], 0
setne dl
xor eax, eax
mov bl, dl
call fcn.00452a4f
test al, al
jne 0x467b26
mov dword [esp + 0x44], 0x94
lea ecx, [esp + 0x44]
push ecx
call fcn.00451538
test eax, eax
je 0x467b20
cmp dword [esp + 0x48], 4
mov eax, 1
ja 0x467b22
xor eax, eax
test al, al
je 0x467b43
lea eax, [esp + 4]
call fcn.00489b3f
test al, al
je 0x467b43
cmp dword [esp + 4], 2
je 0x467b43
test bl, bl
mov eax, 1
je 0x467b45
xor eax, eax
test al, al
je 0x466293
push 0
mov edx, 0x1c
mov eax, 0xab2a66
push 0x413de9
call fcn.0049d417
test al, al
jne 0x466293
mov dword [0xab4a4e], 0x1a
jmp 0x465701
push 0
lea esi, [esp + 0x28]
push esi
call fcn.0047948a
push eax
mov edx, ebx
mov eax, 0xab2a66
call fcn.00459062
test eax, eax
mov ebx, eax
je 0x448901
call fcn.0049a34c
mov edx, eax
lea eax, [ebx + 0x3e8]
jmp 0x4662b1
mov dword [esp + 0x10], 1
jmp 0x467aa1
push esi
call fcn.0047948a
mov dword [esp + 0x2c], 0
lea edx, [esp + 0x30]
mov edi, eax
mov dword [esp + 0x30], 0
call fcn.004a1112
test eax, eax
mov ebx, eax
je 0x45753b
push edi
push 0x447798
lea edi, [esp + 0x34]
push edi
call fcn.0046ba0d
add esp, 0xc
test eax, eax
je 0x476afa
mov edx, edi
mov eax, ebx
call fcn.00494b86
test al, al
jne 0x476b00
push edi
call fcn.0044926f
lea eax, [esp + 0x2c]
push eax
call fcn.0047948a
mov edx, eax
lea eax, [ebx + 0x1388]
jmp 0x4662b1
lea esi, [esp + 0x40]
push esi
call fcn.0047948a
mov dword [esp + 0x28], 0
mov esi, eax
mov ebx, eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
movzx eax, byte [eax]
test al, al
setne cl
cmp al, 0x3d
setne al
movzx edi, al
test ecx, edi
je 0x4545dd
movsx ebp, byte [ebx]
inc ebx
push ebp
lea edx, [esp + 0x2c]
push edx
call fcn.0048a679
test eax, eax
jne 0x482435
call fcn.0045f6ed
movzx eax, byte [ebx]
jmp 0x482408
movzx ebx, byte [ebx + 0x4ad444]
test ebx, ebx
jne 0x46b623
push esi
push 0x4477d3
lea ebx, [esp + 0x28]
push ebx
call fcn.0046ba0d
add esp, 0xc
test eax, eax
jne 0x48a633
push ebx
call fcn.0044926f
push ebx
call fcn.0047948a
mov edx, eax
jmp 0x45beee
lea esi, [esp + 0xc]
push esi
push 0
push 0
push 2
push dword [esp + 0x28]
call fcn.00453541
test eax, eax
jne 0x467aa7
call fcn.0046bfb1
cmp eax, 0x7a
jne 0x467aa7
push dword [esp + 0xc]
call fcn.0046220b
test eax, eax
mov ebx, eax
je 0x467aa7
push esi
push dword [esp + 0x10]
push eax
push 2
push dword [esp + 0x28]
call fcn.00453541
test eax, eax
je 0x467aa1
xor edi, edi
cmp edi, dword [ebx]
jae 0x467aa1
push dword [esp + 0x14]
push dword [ebx + edi*8 + 4]
call fcn.004a07a7
test eax, eax
jne 0x4740f0
inc edi
jmp 0x4a1a62