Function at 0x457c7c
Capabilities:
Persist via run registry key

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x58
push 0
push 0
dec ecx
jne 0x457c84
push ecx
push ebx
push esi
push edi
lea eax, [ebp - 0x160]
mov edx, dword [0x40963c]
call fcn.004050a0
xor eax, eax
push ebp
push 0x4582e9
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x47c0b1], 0
jne 0x457cdc
mov eax, dword [0x4780c4]
cmp byte [eax + 0xd], 0
je 0x457cd2
mov eax, dword [0x477ecc]
mov dword [eax], 3
jmp 0x4582a2
call fcn.0045e6d0
jmp 0x4582a2
xor eax, eax
call fcn.004578f4
test al, al
jne 0x4582a2
push 0x24
push 0x4582f8
mov eax, dword [0x477f20]
mov eax, dword [eax + 0x118]
call fcn.00404b80
push eax
push 0
call fcn.00407304
cmp eax, 6
jne 0x4582a2
mov eax, dword [0x4781e8]
mov byte [eax], 0
push 0
push 0x4572f8
call fcn.00407174
mov eax, dword [0x478170]
mov byte [eax + 0x95], 1
call fcn.0045b310
lea ecx, [ebp - 0x164]
mov edx, 0x80000001
mov eax, 0x458320
call fcn.0046dff8
mov eax, dword [ebp - 0x164]
lea edx, [ebp - 4]
call fcn.00452a40
lea eax, [ebp - 0x268]
mov ecx, 0x458334
mov edx, dword [ebp - 4]
call fcn.004049cc
mov edx, dword [ebp - 0x268]
lea eax, [ebp - 0x264]
mov ecx, 0xff
call fcn.0040495c
lea eax, [ebp - 0x264]
call fcn.00409d68
test al, al
jne 0x457dc0
lea eax, [ebp - 0x26c]
push eax
mov ecx, 0x458334
mov edx, dword [ebp - 4]
pop eax
call fcn.004049cc
mov eax, dword [ebp - 0x26c]
mov edx, 0x458348
call fcn.00456dc8
mov eax, dword [0x4781e8]
mov byte [eax], 1
lea eax, [ebp - 0x270]
mov ecx, 0x458354
mov edx, dword [ebp - 4]
call fcn.004049cc
mov edx, dword [ebp - 0x270]
lea eax, [ebp - 0x264]
mov ecx, 0xff
call fcn.0040495c
lea eax, [ebp - 0x264]
call fcn.00409d68
test al, al
jne 0x457e23
mov ecx, 0x458354
lea eax, [ebp - 0x274]
mov edx, dword [ebp - 4]
call fcn.004049cc
mov eax, dword [ebp - 0x274]
mov edx, 0x458348
call fcn.00456dc8
mov eax, dword [0x4781e8]
mov byte [eax], 1
lea eax, [ebp - 0x278]
mov ecx, 0x458368
mov edx, dword [ebp - 4]
call fcn.004049cc
mov edx, dword [ebp - 0x278]
lea eax, [ebp - 0x264]
mov ecx, 0xff
call fcn.0040495c
lea eax, [ebp - 0x264]
call fcn.00409d68
lea eax, [ebp - 0x27c]
mov ecx, 0x458380
mov edx, dword [ebp - 4]
call fcn.004049cc
mov edx, dword [ebp - 0x27c]
lea eax, [ebp - 0x264]
mov ecx, 0xff
call fcn.0040495c
lea eax, [ebp - 0x264]
call fcn.00409d68
lea eax, [ebp - 0x280]
mov ecx, 0x458394
mov edx, dword [ebp - 4]
call fcn.004049cc
mov edx, dword [ebp - 0x280]
lea eax, [ebp - 0x264]
mov ecx, 0xff
call fcn.0040495c
lea eax, [ebp - 0x264]
call fcn.00409d68
lea eax, [ebp - 0x284]
mov ecx, 0x4583a8
mov edx, dword [ebp - 4]
call fcn.004049cc
mov edx, dword [ebp - 0x284]
lea eax, [ebp - 0x264]
mov ecx, 0xff
call fcn.0040495c
lea eax, [ebp - 0x264]
call fcn.00409d68
lea eax, [ebp - 0x288]
mov ecx, 0x4583bc
mov edx, dword [ebp - 4]
call fcn.004049cc
mov edx, dword [ebp - 0x288]
lea eax, [ebp - 0x264]
mov ecx, 0xff
call fcn.0040495c
lea eax, [ebp - 0x264]
call fcn.00409d68
lea eax, [ebp - 0x28c]
mov ecx, 0x4583d0
mov edx, dword [ebp - 4]
call fcn.004049cc
mov edx, dword [ebp - 0x28c]
lea eax, [ebp - 0x264]
mov ecx, 0xff
call fcn.0040495c
lea eax, [ebp - 0x264]
call fcn.00409d68
test al, al
jne 0x457f82
lea eax, [ebp - 0x290]
mov ecx, 0x4583d0
mov edx, dword [ebp - 4]
call fcn.004049cc
mov eax, dword [ebp - 0x290]
mov edx, 0x458348
call fcn.00456dc8
lea eax, [ebp - 0x294]
mov ecx, 0x4583ec
mov edx, dword [ebp - 4]
call fcn.004049cc
mov eax, dword [ebp - 0x294]
lea ecx, [ebp - 0x160]
mov edx, 0x3f
call fcn.0040a054
test eax, eax
jne 0x458021
xor eax, eax
push ebp
push 0x45801a
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x298]
mov ecx, dword [ebp - 0x154]
mov edx, dword [ebp - 4]
call fcn.004049cc
mov edx, dword [ebp - 0x298]
lea eax, [ebp - 0x264]
mov ecx, 0xff
call fcn.0040495c
lea eax, [ebp - 0x264]
call fcn.00409d68
lea eax, [ebp - 0x160]
call fcn.0040a0a4
test eax, eax
je 0x457fbd
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x458021
lea eax, [ebp - 0x160]
call fcn.0040a0c8
ret
push 0
mov eax, 0x4579c8
mov cl, 1
mov edx, 0xf003f
call fcn.0045ca34
mov cl, 1
mov edx, 0x458400
mov eax, 0x80000002
call fcn.00458f6c
mov cl, 1
mov edx, 0x458430
mov eax, 0x80000002
call fcn.00458f6c
mov cl, 1
mov edx, 0x45847c
mov eax, 0x80000000
call fcn.00458f6c
call fcn.00455014
lea edx, [ebp - 0x29c]
mov eax, dword [ebp - 4]
call fcn.004557e4
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 4]
call fcn.00404758
lea eax, [ebp - 8]
call fcn.004046c0
xor ebx, ebx
mov edi, dword [0x478104]
add edi, 0x10
mov esi, dword [0x478198]
cmp dword [edi], 0
je 0x4580f5
push dword [esi + 4]
push dword [esi]
xor edx, edx
mov eax, ebx
call fcn.00472e0c
test al, al
je 0x4580f5
push dword [ebp - 8]
lea eax, [ebp - 0x2a0]
push eax
cmp dword [ebp - 8], 0
setne al
and eax, 0x7f
mov ecx, eax
add ecx, ecx
mov edx, 1
mov eax, 0x45849c
call fcn.00404be0
push dword [ebp - 0x2a0]
push dword [edi - 0x10]
lea eax, [ebp - 8]
mov edx, 3
call fcn.00404a40
inc ebx
add esi, 8
add edi, 0x14
cmp bl, 3
jne 0x4580a1
cmp dword [ebp - 8], 0
je 0x458181
mov al, byte [0x4584a0]
push eax
lea eax, [ebp - 0x2a4]
push eax
mov eax, dword [0x477f20]
mov eax, dword [eax + 0x400]
mov ecx, dword [ebp - 8]
mov edx, 0x4584ac
call fcn.00407cd8
mov edx, dword [ebp - 0x2a4]
lea eax, [ebp - 8]
call fcn.00404758
mov al, byte [0x4584a0]
push eax
lea eax, [ebp - 0x2ac]
push eax
mov ecx, dword [0x478104]
mov ecx, dword [ecx + 0x38]
mov edx, 0x4584ac
mov eax, dword [ebp - 8]
call fcn.00407cd8
mov eax, dword [ebp - 0x2ac]
lea edx, [ebp - 0x2a8]
call fcn.004098dc
mov ecx, dword [ebp - 0x2a8]
lea eax, [ebp - 8]
mov edx, 0x4584b8
call fcn.004049cc
mov eax, dword [0x4781e8]
cmp byte [eax], 0
je 0x458259
lea edx, [ebp - 0x2b0]
xor eax, eax
call fcn.004029e8
mov eax, dword [ebp - 0x2b0]
mov edx, 0x458348
call fcn.00456dc8
mov eax, dword [ebp - 4]
call fcn.0045b864
test al, al
je 0x458219
mov eax, dword [ebp - 4]
call fcn.00404b80
push eax
call fcn.00406f24
test eax, eax
jne 0x458219
mov eax, dword [0x478150]
cmp byte [eax], 0
je 0x4581e3
mov edx, 0x458348
mov eax, dword [ebp - 4]
call fcn.00456dc8
jmp 0x458219
push 0x4584c8
push dword [ebp - 4]
push 0x4584e0
lea eax, [ebp - 0x2b4]
mov edx, 3
call fcn.00404a40
mov eax, dword [ebp - 0x2b4]
push eax
mov ecx, dword [ebp - 4]
mov edx, 0x4584ec
mov eax, 0x80000002
call fcn.0040c8a4
push 0x24
push 0x4582f8
mov edx, dword [0x477f20]
mov edx, dword [edx + 0x3a4]
lea eax, [ebp - 0x2b8]
mov ecx, dword [ebp - 8]
call fcn.004049cc
mov eax, dword [ebp - 0x2b8]
call fcn.00404b80
push eax
push 0
call fcn.00407304
cmp eax, 6
jne 0x4582a2
call fcn.00455f70
jmp 0x4582a2
push 0x458528
lea edx, [ebp - 0x2c4]
xor eax, eax
call fcn.004029e8
mov eax, dword [ebp - 0x2c4]
lea edx, [ebp - 0x2c0]
call fcn.00452a40
push dword [ebp - 0x2c0]
push 0x4584e0
lea eax, [ebp - 0x2bc]
mov edx, 3
call fcn.00404a40
mov eax, dword [ebp - 0x2bc]
call fcn.0045762c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4582f0
lea eax, [ebp - 0x2c4]
mov edx, 0x18
call fcn.004046e4
lea eax, [ebp - 0x164]
call fcn.004046c0
lea eax, [ebp - 0x160]
mov edx, dword [0x40963c]
call fcn.00405164
lea eax, [ebp - 8]
mov edx, 2
call fcn.004046e4
ret