Function at 0x591cb0
Capabilities:
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x6be0fe
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe4
push ebx
push ebp
mov ebp, ecx
push esi
push edi
lea ecx, [esp + 0x64]
mov dword [esp + 0x2c], ebp
call fcn.00620f50
xor edi, edi
lea ecx, [esp + 0x14]
mov dword [esp + 0xfc], edi
call fcn.0060fe70
lea ecx, [esp + 0x44]
mov byte [esp + 0xfc], 1
call fcn.0060fe70
mov al, byte [esp + 0x13]
mov dword [esp + 0x1c], edi
mov byte [esp + 0x18], al
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
lea ecx, [esp + 0x70]
mov byte [esp + 0xfc], 3
call fcn.0060d180
lea ecx, [esp + 0x54]
mov byte [esp + 0xfc], 4
call fcn.0062da70
lea ecx, [esp + 0xa4]
mov byte [esp + 0xfc], 5
call fcn.0062da70
push 0x6c
push 0xf1
push 0x10
lea ecx, [esp + 0xc0]
mov byte [esp + 0x108], 6
call fcn.00548440
push 0x6c
push 0xf1
push 0xfe
lea ecx, [esp + 0xe0]
mov byte [esp + 0x108], 7
call fcn.00548440
mov al, byte [0x71bb5c]
mov byte [esp + 0xfc], 8
test al, al
mov byte [esp + 0x3e], 1
mov byte [esp + 0x3f], 0x3f
mov byte [esp + 0x34], 2
mov byte [esp + 0x35], 0x3c
mov byte [esp + 0x36], 0x41
je 0x591dec
lea esi, [ebp + 8]
mov dword [esp + 0x28], 0x14
call fcn.00698605
cdq
mov ecx, 0xff
idiv ecx
mov ecx, esi
mov ebx, edx
call fcn.00610330
cmp ax, 0x14
jg 0x591de1
push ebx
mov ecx, esi
call fcn.00610310
mov eax, dword [esp + 0x28]
dec eax
mov dword [esp + 0x28], eax
jne 0x591dbd
push ecx
mov ecx, esp
mov dword [esp + 0x44], esp
push 6
push 0x703888
call fcn.0060ff10
lea ecx, [esp + 0x18]
call fcn.006101a0
mov ebx, dword [esp + 0x104]
lea ecx, [esp + 0x14]
mov eax, ebx
push ebx
and eax, 0xff
push 4
lea eax, [eax + eax*4]
lea esi, [eax + eax*4]
shl esi, 1
mov dword [esp + 0x58], esi
mov dl, byte [esi + 0x6d32f4]
mov byte [esp + 0x1b], dl
call fcn.006102b0
push 8
lea ecx, [esp + 0x58]
mov byte [ebp + 0xf], 0
mov byte [ebp + 0xc], 0xff
call fcn.0061ff40
push ecx
mov ecx, esp
mov dword [esp + 0x44], esp
push edi
call fcn.0060fea0
lea ecx, [esp + 0x58]
call fcn.0061fbd0
cmp bl, 6
je 0x591e74
cmp bl, 7
je 0x591e74
cmp bl, 8
je 0x591e74
xor edi, edi
jmp 0x591e79
mov edi, 4
mov dword [esp + 0x4c], edi
mov al, byte [ebp + 0xf]
test al, al
jne 0x591e9d
push ebx
mov ecx, ebp
mov byte [ebp + 0xe], 0
call fcn.00591040
test ax, ax
je 0x5923aa
mov byte [ebp + 0xf], 1
cmp bl, 6
jae 0x591ee4
sub esp, 0x24
lea ecx, [esp + 0x78]
mov eax, esp
mov dword [esp + 0x54], esp
push 0
push ecx
push eax
mov ecx, 0x71b8f8
call fcn.0061a8f0
lea ecx, [esp + 0x94]
call fcn.0060d330
mov al, byte [0x71bb5c]
test al, al
jne 0x591ee4
lea ecx, [esp + 0x70]
call fcn.0060d760
test ax, ax
je 0x592435
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x703454
mov byte [ebp + 0xc], 0xff
call fcn.0060ff10
push ecx
mov byte [esp + 0x108], 0xa
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x703860
call fcn.0060ff10
mov ecx, dword [0x71b938]
mov byte [esp + 0x108], 8
call fcn.0061ec30
movzx ax, byte [esp + 0x13]
cmp di, ax
mov dword [esp + 0x28], edi
mov word [esp + 0x4a], ax
jge 0x59238e
movsx edx, word [esp + 0x28]
lea ecx, [esp + 0x14]
mov bl, byte [edx + esi + 0x6d32f5]
mov byte [esp + 0x40], bl
mov eax, dword [esp + 0x40]
push eax
push 3
call fcn.006102b0
mov cl, byte [esp + 0x28]
inc cl
push ecx
push 5
lea ecx, [esp + 0x1c]
call fcn.006102b0
mov al, byte [0x71bb5c]
test al, al
jne 0x59217b
cmp bl, 0x41
je 0x592079
cmp bl, 0x42
je 0x592079
cmp bl, 0x43
je 0x592079
cmp bl, 0x44
je 0x592079
cmp bl, 0x45
je 0x592079
cmp bl, 0x46
je 0x592079
cmp bl, 0x47
je 0x592079
cmp bl, 0x48
je 0x592079
cmp bl, 0x49
je 0x592079
cmp bl, 0x4d
je 0x592079
cmp bl, 0x4e
je 0x592079
cmp bl, 0x4f
je 0x592079
cmp bl, byte [ebp + 0xc]
je 0x5921a5
cmp bl, 0xff
je 0x5921a5
mov byte [ebp + 0xc], bl
xor edi, edi
push 0
lea ecx, [esp + 0x74]
call fcn.0060d6a0
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x59201b
xor eax, eax
jmp 0x592023
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
movsx ecx, di
cmp ecx, eax
jae 0x592172
push ecx
push 0
lea ecx, [esp + 0x78]
call fcn.0060d6a0
mov ecx, eax
call fcn.00413600
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.0060fe80
lea esi, [ebp + 8]
mov ecx, esi
call fcn.006101a0
mov ecx, esi
call fcn.00610330
cmp ax, 4
jle 0x592076
push 4
mov ecx, esi
call fcn.00610190
cmp al, bl
je 0x592172
inc edi
jmp 0x592005
cmp bl, byte [ebp + 0xc]
je 0x5921a5
cmp bl, 0xff
je 0x5921a5
mov byte [ebp + 0xc], bl
mov byte [esp + 0x36], bl
mov dword [esp + 0x30], 0
jmp 0x5920a0
mov ebp, dword [esp + 0x2c]
sub esp, 0x24
lea eax, [esp + 0x58]
mov edx, esp
mov dword [esp + 0x5c], esp
push 0
push 1
push eax
push edx
lea ecx, [esp + 0xe8]
call fcn.00548ea0
lea ecx, [esp + 0x94]
call fcn.0060d330
push 0
lea ecx, [esp + 0x74]
call fcn.0060d6a0
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x5924f5
mov edi, dword [eax + 8]
sub edi, ecx
sar edi, 2
test di, di
je 0x5924f5
xor ebp, ebp
test di, di
jle 0x59214a
mov ecx, dword [esp + 0x2c]
lea esi, [ecx + 8]
movsx edx, bp
push edx
push 0
lea ecx, [esp + 0x78]
call fcn.0060d6a0
mov ecx, eax
call fcn.00413600
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.0060fe80
mov ecx, esi
call fcn.006101a0
mov ecx, esi
call fcn.00610330
cmp ax, 4
jle 0x592144
push 4
mov ecx, esi
call fcn.00610190
cmp bl, al
je 0x59214a
inc ebp
cmp bp, di
jl 0x592100
mov eax, dword [esp + 0x30]
inc eax
cmp ax, 2
mov dword [esp + 0x30], eax
jl 0x59209c
lea eax, [esp + 0x3e]
lea ecx, [esp + 0xd4]
push eax
call fcn.00549280
mov ebp, dword [esp + 0x2c]
mov al, byte [0x71bb5c]
test al, al
je 0x5921a5
xor esi, esi
add ebp, 8
call fcn.00698605
cdq
mov ecx, 0xff
idiv ecx
mov ecx, ebp
push edx
push esi
call fcn.006102b0
inc esi
cmp si, 0x14
jl 0x592180
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call fcn.0060fe80
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x98]
push eax
call fcn.0058f0c0
mov esi, eax
mov eax, dword [esi + 8]
mov edi, dword [0x6ce1fc]
mov ebp, eax
mov byte [esp + 0xfc], 0xc
cmp edi, ebp
jae 0x5921e2
mov ebp, edi
lea ecx, [esp + 0x18]
cmp ecx, esi
jne 0x592254
cmp dword [esp + 0x20], ebp
jae 0x5921f5
call fcn.00697ab7
lea ecx, [esp + 0x18]
call fcn.00414980
mov eax, dword [esp + 0x20]
sub eax, ebp
cmp eax, edi
jae 0x59220a
mov edi, eax
xor ebx, ebx
cmp edi, ebx
jbe 0x592246
mov edx, dword [esp + 0x1c]
sub eax, edi
push eax
lea ecx, [edx + ebp]
lea edx, [ecx + edi]
push edx
push ecx
call fcn.00698020
mov esi, dword [esp + 0x2c]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x18]
push ebx
push esi
call fcn.00414210
test al, al
je 0x592246
push esi
lea ecx, [esp + 0x1c]
call fcn.004141f0
lea ecx, [esp + 0x18]
call fcn.00414980
jmp 0x5922dd
xor ebx, ebx
cmp ebp, ebx
jbe 0x5922a3
cmp ebp, eax
jne 0x5922a3
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x59226a
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x5922a3
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x592287
mov eax, 0x6ce1f8
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x20], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x24], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5922dd
push 1
push ebp
lea ecx, [esp + 0x20]
call fcn.00414210
test al, al
je 0x5922dd
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x5922bf
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x1c]
mov ecx, ebp
mov eax, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.004141f0
mov eax, dword [esp + 0x98]
mov byte [esp + 0xfc], 8
cmp eax, ebx
je 0x59230d
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x592304
cmp al, 0xff
je 0x592304
dec al
mov byte [ecx], al
jmp 0x59230d
push ecx
call fcn.00697880
add esp, 4
push ebx
push 0xffff
sub esp, 0x10
lea edx, [esp + 0x30]
mov ecx, esp
mov dword [esp + 0x50], esp
push edx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], ebx
call fcn.00412ff0
push ecx
lea eax, [esp + 0x30]
mov ecx, esp
mov dword [esp + 0x4c], esp
push eax
mov byte [esp + 0x11c], 0xd
call fcn.0060fe80
mov ecx, dword [0x71b938]
mov byte [esp + 0x118], 8
call fcn.0061ee40
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x50]
inc eax
cmp ax, word [esp + 0x4a]
mov dword [esp + 0x28], eax
jl 0x591f43
mov ebx, dword [esp + 0x104]
mov edi, dword [esp + 0x4c]
mov ecx, dword [0x71b938]
push 0
call fcn.0061f330
cmp ax, 0xb
je 0x592608
jmp 0x591e7d
lea ecx, [esp + 0xd4]
mov byte [esp + 0xfc], 7
call fcn.00548470
lea ecx, [esp + 0xb4]
mov byte [esp + 0xfc], 6
call fcn.00548470
lea ecx, [esp + 0xa4]
mov byte [esp + 0xfc], 5
call fcn.0061f9a0
lea ecx, [esp + 0x54]
mov byte [esp + 0xfc], 4
call fcn.0061f9a0
lea ecx, [esp + 0x70]
mov byte [esp + 0xfc], 3
call fcn.0060d280
mov eax, dword [esp + 0x1c]
xor esi, esi
cmp eax, esi
je 0x5925be
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5925b5
cmp al, 0xff
je 0x5925b5
dec al
mov byte [ecx], al
jmp 0x5925be
xor esi, esi
push esi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x44], esp
push 6
push 0x7037f4
call fcn.0060ff10
push ecx
mov byte [esp + 0x10c], 9
mov ecx, esp
mov dword [esp + 0x50], esp
push 6
push 0x703840
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x10c], 8
call fcn.006115e0
push esi
push esi
mov ecx, 0x71b8f8
call fcn.006166b0
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x1c]
lea ecx, [esp + 0xd4]
mov byte [esp + 0xfc], 7
call fcn.00548470
lea ecx, [esp + 0xb4]
mov byte [esp + 0xfc], 6
call fcn.00548470
lea ecx, [esp + 0xa4]
mov byte [esp + 0xfc], 5
call fcn.0061f9a0
lea ecx, [esp + 0x54]
mov byte [esp + 0xfc], 4
call fcn.0061f9a0
lea ecx, [esp + 0x70]
mov byte [esp + 0xfc], 3
call fcn.0060d280
mov eax, dword [esp + 0x1c]
jmp 0x59240e
xor esi, esi
push esi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x44], esp
push 6
push 0x7037f4
call fcn.0060ff10
push ecx
mov byte [esp + 0x10c], 0xb
mov ecx, esp
mov dword [esp + 0x50], esp
push 6
push 0x703840
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x10c], 8
call fcn.006115e0
push esi
push esi
mov ecx, 0x71b8f8
call fcn.006166b0
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x1c]
lea ecx, [esp + 0xd4]
mov byte [esp + 0xfc], 7
call fcn.00548470
lea ecx, [esp + 0xb4]
mov byte [esp + 0xfc], 6
call fcn.00548470
lea ecx, [esp + 0xa4]
mov byte [esp + 0xfc], 5
call fcn.0061f9a0
lea ecx, [esp + 0x54]
mov byte [esp + 0xfc], 4
call fcn.0061f9a0
lea ecx, [esp + 0x70]
mov byte [esp + 0xfc], 3
call fcn.0060d280
mov eax, dword [esp + 0x1c]
jmp 0x59240e
push ecx
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x44]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov byte [esp + 0xfc], 1
call fcn.0060ffb0
lea ecx, [esp + 0x14]
mov byte [esp + 0xfc], 0
call fcn.0060ffb0
lea ecx, [esp + 0x64]
mov dword [esp + 0xfc], 0xffffffff
call fcn.0060ffb0
xor ax, ax
jmp 0x5926e7
xor esi, esi
mov ecx, 0x71b8f8
push esi
push esi
call fcn.006166b0
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x1c]
lea ecx, [esp + 0xd4]
mov byte [esp + 0xfc], 7
call fcn.00548470
lea ecx, [esp + 0xb4]
mov byte [esp + 0xfc], 6
call fcn.00548470
lea ecx, [esp + 0xa4]
mov byte [esp + 0xfc], 5
call fcn.0061f9a0
lea ecx, [esp + 0x54]
mov byte [esp + 0xfc], 4
call fcn.0061f9a0
lea ecx, [esp + 0x70]
mov byte [esp + 0xfc], 3
call fcn.0060d280
mov eax, dword [esp + 0x1c]
cmp eax, esi
je 0x5926a1
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x592698
cmp al, 0xff
je 0x592698
dec al
mov byte [ecx], al
jmp 0x5926a1
push ecx
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x44]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov byte [esp + 0xfc], 1
call fcn.0060ffb0
lea ecx, [esp + 0x14]
mov byte [esp + 0xfc], 0
call fcn.0060ffb0
lea ecx, [esp + 0x64]
mov dword [esp + 0xfc], 0xffffffff
call fcn.0060ffb0
mov ax, 1
mov ecx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xf0
ret 4