Function at 0x592948
Capabilities:
Persist via run registry key

Disassembly:
push ebp
mov ebp, esp
mov ecx, 8
push 0
push 0
dec ecx
jne 0x592950
push ebx
push esi
push edi
mov ebx, dword [0x604c40]
xor eax, eax
push ebp
push 0x593343
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.0059531c
mov edx, dword [0x6052bc]
mov dword [edx], eax
mov dl, 1
mov eax, dword [0x42b028]
call fcn.0042b128
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.0051e56c
xor eax, eax
push ebp
push 0x593314
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x80000001
mov eax, dword [ebp - 4]
call fcn.0042b1c8
mov cl, 1
mov edx, 0x59335c
mov eax, dword [ebp - 4]
call fcn.0042b230
mov edx, 0x593374
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x592a78
mov edx, 0x593374
mov eax, dword [ebp - 4]
call fcn.0042b814
dec eax
jne 0x592b06
mov eax, dword [ebp - 4]
call fcn.0042b198
mov cl, 1
mov edx, 0x593390
mov eax, dword [ebp - 4]
call fcn.0042b230
push 0x5933c8
lea edx, [ebp - 0xc]
mov eax, dword [0x605338]
mov eax, dword [eax]
call fcn.00471124
push dword [ebp - 0xc]
push 0x5933d4
lea eax, [ebp - 8]
mov edx, 3
call fcn.004053a0
mov eax, dword [ebp - 8]
push eax
lea edx, [ebp - 0x10]
mov eax, 0x5933e4
call fcn.0040c074
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
pop ecx
call fcn.0042b75c
mov eax, dword [ebp - 4]
call fcn.0042b198
mov edx, 0x59335c
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0042b230
mov eax, dword [0x6057b4]
mov byte [eax], 1
mov ecx, 1
mov edx, 0x5933f4
mov eax, dword [ebp - 4]
call fcn.0042b800
jmp 0x592b06
mov eax, dword [ebp - 4]
call fcn.0042b198
mov cl, 1
mov edx, 0x593390
mov eax, dword [ebp - 4]
call fcn.0042b230
push 0x5933c8
lea edx, [ebp - 0x18]
mov eax, dword [0x605338]
mov eax, dword [eax]
call fcn.00471124
push dword [ebp - 0x18]
push 0x5933d4
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.004053a0
mov eax, dword [ebp - 0x14]
push eax
mov eax, 0x5933e4
lea edx, [ebp - 0x1c]
call fcn.0040c074
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
pop ecx
call fcn.0042b75c
mov eax, dword [ebp - 4]
call fcn.0042b198
mov edx, 0x59335c
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0042b230
mov eax, dword [0x6057b4]
mov byte [eax], 1
mov ecx, 1
mov edx, 0x5933f4
mov eax, dword [ebp - 4]
call fcn.0042b800
mov edx, 0x593410
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x592b59
mov edx, 0x593410
mov eax, dword [ebp - 4]
call fcn.0042b814
cmp eax, 5
jne 0x592b33
mov eax, dword [0x604fe0]
mov byte [eax], 2
jmp 0x592b61
mov edx, 0x593410
mov eax, dword [ebp - 4]
call fcn.0042b814
cmp eax, 4
jne 0x592b4f
mov eax, dword [0x604fe0]
mov byte [eax], 1
jmp 0x592b61
mov eax, dword [0x604fe0]
mov byte [eax], 0
jmp 0x592b61
mov eax, dword [0x604fe0]
mov byte [eax], 0
lea ecx, [ebp - 0x24]
mov edx, 0x593428
mov eax, dword [ebp - 4]
call fcn.0042b788
mov eax, dword [ebp - 0x24]
lea edx, [ebp - 0x20]
call fcn.005f4808
mov edx, dword [ebp - 0x20]
mov eax, dword [0x604e64]
call fcn.00405064
lea ecx, [ebp - 0x2c]
mov edx, 0x593440
mov eax, dword [ebp - 4]
call fcn.0042b788
mov eax, dword [ebp - 0x2c]
lea edx, [ebp - 0x28]
call fcn.005f4808
mov edx, dword [ebp - 0x28]
mov eax, dword [0x6053cc]
call fcn.00405064
lea ecx, [ebp - 0x30]
mov edx, 0x593458
mov eax, dword [ebp - 4]
call fcn.0042b788
mov edx, dword [ebp - 0x30]
mov eax, dword [0x604ee4]
call fcn.00405064
mov edx, 0x59346c
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x592bf7
mov edx, 0x59346c
mov eax, dword [ebp - 4]
call fcn.0042b814
mov edx, dword [0x604b48]
mov word [edx], ax
jmp 0x592c01
mov eax, dword [0x604b48]
mov word [eax], 0x438
mov edx, 0x593480
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x592c32
mov edx, 0x593480
mov eax, dword [ebp - 4]
call fcn.0042b814
dec eax
sete dl
mov eax, dword [ebx]
mov eax, dword [eax + 0x3ac]
call fcn.00477548
jmp 0x592c41
mov eax, dword [ebx]
mov eax, dword [eax + 0x3ac]
mov dl, 1
call fcn.00477548
xor ecx, ecx
mov edx, 0x5934a0
mov eax, dword [ebp - 4]
call fcn.0042b800
mov ecx, 0x2d
mov edx, 0x5934b8
mov eax, dword [ebp - 4]
call fcn.0042b800
xor ecx, ecx
mov edx, 0x5934d4
mov eax, dword [ebp - 4]
call fcn.0042b800
mov edx, 0x5934f0
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x592ca2
mov edx, 0x5934f0
mov eax, dword [ebp - 4]
call fcn.0042b814
dec eax
sete dl
mov eax, dword [ebx]
mov eax, dword [eax + 0x438]
call fcn.00477548
jmp 0x592cb1
mov eax, dword [ebx]
mov eax, dword [eax + 0x438]
xor edx, edx
call fcn.00477548
mov edx, 0x593508
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x592ce2
mov edx, 0x593508
mov eax, dword [ebp - 4]
call fcn.0042b814
dec eax
sete dl
mov eax, dword [ebx]
mov eax, dword [eax + 0x434]
call fcn.00477548
jmp 0x592cf1
mov eax, dword [ebx]
mov eax, dword [eax + 0x434]
xor edx, edx
call fcn.00477548
mov edx, 0x593524
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x592d52
mov edx, 0x593524
mov eax, dword [ebp - 4]
call fcn.0042b814
dec eax
jne 0x592d32
mov eax, dword [ebx]
mov eax, dword [eax + 0x534]
mov dl, 1
call fcn.004c6c8c
mov eax, dword [ebx]
mov eax, dword [eax + 0x530]
xor edx, edx
call fcn.004c6c8c
jmp 0x592d70
mov eax, dword [ebx]
mov eax, dword [eax + 0x534]
xor edx, edx
call fcn.004c6c8c
mov eax, dword [ebx]
mov eax, dword [eax + 0x530]
mov dl, 1
call fcn.004c6c8c
jmp 0x592d70
mov eax, dword [ebx]
mov eax, dword [eax + 0x534]
xor edx, edx
call fcn.004c6c8c
mov eax, dword [ebx]
mov eax, dword [eax + 0x530]
mov dl, 1
call fcn.004c6c8c
mov edx, 0x593544
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x592d98
mov edx, 0x593544
mov eax, dword [ebp - 4]
call fcn.0042b814
mov edx, dword [0x604d20]
mov dword [edx], eax
jmp 0x592da3
mov eax, dword [0x604d20]
mov dword [eax], 4
mov edx, 0x593568
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x592dcb
mov edx, 0x593568
mov eax, dword [ebp - 4]
call fcn.0042b814
mov edx, dword [0x604f70]
mov byte [edx], al
jmp 0x592dd3
mov eax, dword [0x604f70]
mov byte [eax], 1
mov eax, dword [0x604f70]
movzx eax, byte [eax]
mov edx, 5
sub edx, eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x5e8]
call fcn.0044d8ac
call fcn.005e4fcc
mov edx, 0x593584
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x592e25
mov edx, 0x593584
mov eax, dword [ebp - 4]
call fcn.0042b814
dec eax
sete dl
mov eax, dword [ebx]
mov eax, dword [eax + 0x528]
call fcn.004c6c8c
jmp 0x592e34
mov eax, dword [ebx]
mov eax, dword [eax + 0x528]
xor edx, edx
call fcn.004c6c8c
mov edx, 0x5935a0
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x592e5d
mov edx, 0x5935a0
mov eax, dword [ebp - 4]
call fcn.0042b814
dec eax
mov eax, dword [0x60545c]
sete byte [eax]
jmp 0x592e65
mov eax, dword [0x60545c]
mov byte [eax], 0
mov edx, 0x5935c8
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x592eb1
mov edx, 0x5935c8
mov eax, dword [ebp - 4]
call fcn.0042b814
mov edx, dword [0x6057b0]
mov byte [edx], al
mov eax, dword [0x6057b0]
cmp byte [eax], 0
jne 0x592e9d
mov eax, dword [0x6057b0]
mov byte [eax], 0xa
mov eax, dword [0x6057b0]
cmp byte [eax], 0x64
jbe 0x592eb9
mov eax, dword [0x6057b0]
mov byte [eax], 0x64
jmp 0x592eb9
mov eax, dword [0x6057b0]
mov byte [eax], 0xa
mov edx, 0x5935e4
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x592edf
mov edx, 0x5935e4
mov eax, dword [ebp - 4]
call fcn.0042b814
mov edx, dword [0x6056fc]
mov dword [edx], eax
mov eax, dword [0x6056fc]
cmp dword [eax], 0x32
jge 0x592ef4
mov eax, dword [0x6056fc]
mov dword [eax], 0x32
mov edx, 0x593600
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x592f1a
mov edx, 0x593600
mov eax, dword [ebp - 4]
call fcn.0042b814
mov edx, dword [0x604ef4]
mov dword [edx], eax
mov eax, dword [0x604ef4]
cmp dword [eax], 0x64
jge 0x592f2f
mov eax, dword [0x604ef4]
mov dword [eax], 0x64
mov edx, 0x59361c
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x592f55
mov edx, 0x59361c
mov eax, dword [ebp - 4]
call fcn.0042b814
mov edx, dword [0x605070]
mov dword [edx], eax
mov eax, dword [0x605070]
cmp dword [eax], 0x64
jge 0x592f6a
mov eax, dword [0x605070]
mov dword [eax], 0x64
mov edx, 0x593638
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x592f90
mov edx, 0x593638
mov eax, dword [ebp - 4]
call fcn.0042b814
mov edx, dword [0x604e78]
mov dword [edx], eax
mov edx, 0x593658
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x592fb6
mov edx, 0x593658
mov eax, dword [ebp - 4]
call fcn.0042b814
mov edx, dword [0x604b5c]
mov dword [edx], eax
mov eax, dword [0x604e78]
cmp dword [eax], 0xffff
jbe 0x592fcc
mov eax, dword [0x604e78]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x604b5c]
cmp dword [eax], 0xffff
jbe 0x592fe2
mov eax, dword [0x604b5c]
xor edx, edx
mov dword [eax], edx
mov ecx, dword [0x60524c]
mov edx, dword [0x60554c]
mov eax, dword [ebp - 4]
call fcn.005945b4
mov ecx, dword [0x605794]
mov edx, dword [0x604d58]
mov eax, dword [ebp - 4]
call fcn.0059427c
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 4]
call fcn.0059573c
mov edx, dword [ebp - 0x34]
mov eax, dword [0x605238]
call fcn.00405064
mov edx, 0x59367c
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x59305c
mov edx, 0x59367c
mov eax, dword [ebp - 4]
call fcn.0042b814
mov edx, dword [0x604b80]
mov byte [edx], al
mov eax, dword [0x604b80]
cmp byte [eax], 0xa
jbe 0x593064
mov eax, dword [0x604b80]
mov byte [eax], 0xa
jmp 0x593064
mov eax, dword [0x604b80]
mov byte [eax], 3
mov edx, 0x59369c
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x59309e
mov edx, 0x59369c
mov eax, dword [ebp - 4]
call fcn.0042b814
mov edx, dword [0x605020]
mov byte [edx], al
mov eax, dword [0x605020]
cmp byte [eax], 0x19
jbe 0x5930a6
mov eax, dword [0x605020]
mov byte [eax], 0x19
jmp 0x5930a6
mov eax, dword [0x605020]
mov byte [eax], 6
mov edx, 0x5936b8
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x5930e0
mov edx, 0x5936b8
mov eax, dword [ebp - 4]
call fcn.0042b814
mov edx, dword [0x605230]
mov byte [edx], al
mov eax, dword [0x605230]
cmp byte [eax], 2
jbe 0x5930e8
mov eax, dword [0x605230]
mov byte [eax], 0
jmp 0x5930e8
mov eax, dword [0x605230]
mov byte [eax], 0
mov edx, 0x5936d0
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x593127
mov edx, 0x5936d0
mov eax, dword [ebp - 4]
call fcn.0042b814
mov edx, dword [0x605678]
mov word [edx], ax
mov eax, dword [0x605678]
cmp word [eax], 0xe9
jbe 0x593131
mov eax, dword [0x605678]
mov word [eax], 0
jmp 0x593131
mov eax, dword [0x605678]
mov word [eax], 0
mov edx, 0x5936ec
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x59316c
lea ecx, [ebp - 0x3c]
mov edx, 0x5936ec
mov eax, dword [ebp - 4]
call fcn.0042b788
mov eax, dword [ebp - 0x3c]
lea edx, [ebp - 0x38]
call fcn.0040c43c
mov edx, dword [ebp - 0x38]
mov eax, dword [0x605544]
call fcn.00405064
jmp 0x593176
mov eax, dword [0x605544]
call fcn.00405010
mov edx, 0x593708
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
je 0x5931b0
mov edx, 0x593708
mov eax, dword [ebp - 4]
call fcn.0042b814
mov edx, dword [0x6057e0]
mov byte [edx], al
mov eax, dword [0x6057e0]
cmp byte [eax], 0x63
jbe 0x5931b8
mov eax, dword [0x6057e0]
mov byte [eax], 0
jmp 0x5931b8
mov eax, dword [0x6057e0]
mov byte [eax], 0
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 4]
call fcn.00595880
mov edx, dword [ebp - 0x40]
mov eax, dword [0x6055b0]
call fcn.00405064
mov eax, dword [ebp - 4]
call fcn.005959d0
mov edx, dword [0x605664]
mov word [edx], ax
mov eax, dword [0x605664]
cmp word [eax], 0
jne 0x593203
mov eax, 0xea60
call fcn.00403944
add ax, 0x1388
mov edx, dword [0x605664]
mov word [edx], ax
mov eax, dword [ebp - 4]
call fcn.00595a80
mov edx, dword [0x605754]
mov word [edx], ax
mov eax, dword [0x605754]
cmp word [eax], 0
jne 0x593236
mov eax, 0xea60
call fcn.00403944
add ax, 0x1388
mov edx, dword [0x605754]
mov word [edx], ax
mov edx, 0x593720
mov eax, dword [ebp - 4]
call fcn.0042b354
mov edx, dword [0x604c20]
mov eax, dword [ebp - 4]
call fcn.00593b9c
mov edx, dword [0x605358]
mov eax, dword [ebp - 4]
call fcn.005937ac
call fcn.0040ea08
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.004cfe98
cdq
push edx
push eax
mov eax, dword [0x605358]
mov eax, dword [eax]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
mov eax, dword [0x604c20]
imul eax, dword [eax], 0x3b
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x5932a0
cmp eax, dword [esp]
pop edx
pop eax
jbe 0x5932ad
jmp 0x5932a4
pop edx
pop eax
jle 0x5932ad
mov eax, dword [0x604c20]
xor edx, edx
mov dword [eax], edx
mov edx, 0x593730
mov eax, dword [ebp - 4]
call fcn.0042b998
test al, al
jne 0x5932c6
mov eax, dword [ebp - 4]
call fcn.00593d4c
xor ecx, ecx
mov edx, 0x593748
mov eax, dword [ebp - 4]
call fcn.0042b75c
xor ecx, ecx
mov edx, 0x593760
mov eax, dword [ebp - 4]
call fcn.0042b75c
xor ecx, ecx
mov edx, 0x593778
mov eax, dword [ebp - 4]
call fcn.0042b75c
xor ecx, ecx
mov edx, 0x593794
mov eax, dword [ebp - 4]
call fcn.0042b75c
mov eax, dword [ebp - 4]
call fcn.0042b198
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59331e
mov dl, 1
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx - 4]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x59334a
lea eax, [ebp - 0x40]
mov edx, 0xf
call fcn.00405034
ret