joyce8/EMBER2024-capa huggingface dataset:
Function at 0x5a44b0
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebx
push esi
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 0x18]
xor ebx, ebx
push edi
mov edi, ecx
cmp eax, ebx
jbe 0x5a44e8
cmp dword [esi + 0x20], ebx
jne 0x5a44e8
push eax
mov ecx, esi
call fcn.005a6480
test al, al
jne 0x5a44e8
push str.Err_in_RTMPConn_17_n
mov ecx, edi
call fcn.005579a0
pop edi
pop esi
lea eax, [ebx + 8]
pop ebx
ret 4
mov eax, dword [esi + 0x18]
sub eax, dword [esi + 0x1c]
push ebp
mov ebp, dword [edi + 0x347c]
cmp ebp, ebx
jne 0x5a44ff
mov ebp, dword [edi + 0x3478]
cmp eax, ebp
jge 0x5a4505
mov ebp, eax
mov dword [edi + 0x347c], ebx
test ebp, ebp
je 0x5a4569
mov eax, dword [edi + 0xc0]
cmp dword [eax + 0x24], 5
jne 0x5a452c
mov ecx, dword [esi + 0x20]
add ecx, dword [esi + 0x1c]
push ebp
push ecx
mov ecx, edi
call fcn.005a04c0
jmp 0x5a4542
mov edx, dword [esi + 0x20]
add edx, dword [esi + 0x1c]
mov eax, dword [edi + 0x31e8]
push 0
push ebp
push edx
push eax
call sub.WS2_32.dll_recv
mov ebx, eax
push str.recv_pheader
push ebx
mov ecx, edi
call fcn.005582d0
mov ecx, eax
test ecx, ecx
je 0x5a4569
sub eax, 0x2733
pop ebp
neg eax
pop edi
sbb eax, eax
pop esi
and eax, ecx
pop ebx
ret 4
add dword [esi + 0x1c], ebx
cmp ebx, ebp
je 0x5a4581
sub ebp, ebx
mov dword [edi + 0x347c], ebp
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
ret 4
movzx eax, byte [esi + 6]
add eax, 0x151
lea ecx, [eax + eax*4]
push esi
lea ecx, [edi + ecx*8]
call fcn.0059e6c0
xor ebx, ebx
mov ecx, edi
mov dword [edi + 0x9c], 0x15
mov dword [edi + 0x347c], ebx
call fcn.00557bf0
mov edx, dword [esi + 0x1c]
cmp edx, dword [esi + 0x18]
jne 0x5a461a
mov eax, dword [esi + 8]
mov dword [esi + 0x14], eax
cmp byte [esi + 0x10], bl
jne 0x5a45d2
movzx ecx, byte [esi + 6]
mov edx, dword [edi + ecx*4 + 0x48a8]
add edx, eax
mov dword [esi + 0x14], edx
movzx eax, byte [esi + 6]
mov ecx, dword [esi + 0x14]
mov dword [edi + eax*4 + 0x48a8], ecx
movzx eax, byte [esi + 6]
lea edx, [eax + eax*4]
mov dword [edi + edx*8 + 0x34c8], ebx
movzx eax, byte [esi + 6]
lea eax, [eax + eax*4]
mov dword [edi + eax*8 + 0x34c4], ebx
movzx eax, byte [esi + 6]
lea ecx, [eax + eax*4]
mov byte [edi + ecx*8 + 0x34b8], 0
push esi
mov ecx, edi
call fcn.005a42a0
pop ebp
pop edi
pop esi
pop ebx
ret 4
mov ecx, esi
mov dword [esi + 0x20], ebx
call fcn.005a6560
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
ret 4
Function at 0x5a4630
Capabilities:
Receive data
Receive data on socket

Disassembly:
push esi
mov esi, ecx
mov eax, dword [esi + 0x49cc]
push edi
test eax, eax
jle 0x5a46bd
mov ecx, dword [esi + 0xc0]
cmp dword [ecx + 0x24], 5
mov ecx, dword [esi + 0x3224]
jne 0x5a4664
sub eax, ecx
lea edx, [ecx + esi + 0x49d0]
push eax
push edx
mov ecx, esi
call fcn.005a04c0
jmp 0x5a467d
push 0
sub eax, ecx
push eax
lea eax, [ecx + esi + 0x49d0]
mov ecx, dword [esi + 0x31e8]
push eax
push ecx
call sub.WS2_32.dll_recv
mov edi, eax
push str.recv_pheader
push edi
mov ecx, esi
call fcn.005582d0
mov ecx, eax
test ecx, ecx
je 0x5a46a2
sub eax, 0x2733
neg eax
sbb eax, eax
pop edi
and eax, ecx
pop esi
ret 4
add dword [esi + 0x3224], edi
mov eax, dword [esi + 0x3224]
cmp eax, dword [esi + 0x49cc]
je 0x5a46bd
pop edi
xor eax, eax
pop esi
ret 4
push ebx
mov ecx, esi
call fcn.00557bf0
mov edi, dword [esp + 0x10]
xor bl, bl
cmp dword [esi + 0x49cc], 3
jl 0x5a479a
lea edx, [esi + 0x49d0]
push edx
call fcn.0059e540
add esp, 4
mov dword [edi + 8], eax
cmp dword [esi + 0x49cc], 6
jl 0x5a4725
lea eax, [esi + 0x49d3]
push eax
call fcn.0059e540
add esp, 4
mov ecx, edi
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], 0
call fcn.005a6520
cmp dword [esi + 0x49cc], 6
jle 0x5a4725
mov cl, byte [esi + 0x49d6]
mov byte [edi + 5], cl
cmp dword [esi + 0x49cc], 0xb
jne 0x5a4740
lea edx, [esi + 0x49d7]
push edx
call fcn.0054adf0
add esp, 4
mov dword [edi + 0xc], eax
cmp dword [edi + 8], 0xffffff
jne 0x5a479a
mov eax, dword [esi + 0xc0]
cmp dword [eax + 0x24], 5
jne 0x5a4765
push 4
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
call fcn.005a04c0
jmp 0x5a477a
mov eax, dword [esi + 0x31e8]
push 0
push 4
lea edx, [esp + 0x18]
push edx
push eax
call sub.WS2_32.dll_recv
cmp eax, 4
je 0x5a4788
pop ebx
pop edi
or eax, 0xffffffff
pop esi
ret 4
lea ecx, [esp + 0x10]
push ecx
call fcn.0059e570
add esp, 4
mov dword [edi + 0x14], eax
mov bl, 1
movzx eax, byte [edi + 5]
add eax, 0xfffffff8
xor cl, cl
cmp eax, 0xe
ja case.0x5a47af.10
movzx edx, byte [eax + 0x5a4830]
jmp dword [edx*4 + 0x5a4828]
mov cl, 1
test bl, bl
jne 0x5a47c2
mov eax, dword [edi + 8]
mov dword [edi + 0x14], eax
cmp byte [edi + 0x10], 0
jne 0x5a47d6
movzx edx, byte [edi + 6]
mov eax, dword [esi + edx*4 + 0x48a8]
add dword [edi + 0x14], eax
test cl, cl
mov ecx, esi
je 0x5a47fd
mov dword [esi + 0x9c], 0x18
call fcn.0059df40
test eax, eax
jne 0x5a481e
push edi
mov ecx, esi
call fcn.005a4970
pop ebx
pop edi
pop esi
ret 4
mov dword [esi + 0x9c], 0x17
call fcn.0059df40
test eax, eax
jne 0x5a481e
push edi
mov ecx, esi
call fcn.005a44b0
pop ebx
pop edi
pop esi
ret 4
pop ebx
pop edi
xor eax, eax
pop esi
ret 4
Function at 0x5a4840
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ecx
push esi
mov esi, ecx
mov eax, dword [esi + 0xc0]
mov dword [esi + 0x3230], 0
cmp dword [eax + 0x24], 5
jne 0x5a486a
push 1
lea ecx, [esp + 0xb]
push ecx
mov ecx, esi
call fcn.005a04c0
jmp 0x5a487f
mov eax, dword [esi + 0x31e8]
push 0
push 1
lea edx, [esp + 0xf]
push edx
push eax
call sub.WS2_32.dll_recv
push str.recv_pheader_type
push eax
mov ecx, esi
call fcn.005582d0
mov ecx, eax
test ecx, ecx
je 0x5a48a2
sub eax, 0x2733
neg eax
sbb eax, eax
and eax, ecx
pop esi
pop ecx
ret 4
push edi
mov ecx, esi
call fcn.00557bf0
mov cl, byte [esp + 0xb]
mov edi, dword [esp + 0x10]
mov al, cl
sar al, 6
and al, 3
and cl, 0x3f
mov byte [edi + 4], al
mov byte [edi + 6], cl
jne 0x5a48cf
pop edi
mov eax, 0xffffffff
pop esi
pop ecx
ret 4
cmp cl, 1
jne 0x5a48dd
pop edi
or eax, 0xffffffff
pop esi
pop ecx
ret 4
movzx ecx, al
mov eax, dword [ecx*4 + 0x6a539c]
mov dword [esi + 0x49cc], eax
cmp eax, 0xc
jne 0x5a48f6
mov byte [edi + 0x10], 1
cmp dword [esi + 0x49cc], 0xc
jge 0x5a491d
mov ecx, edi
call fcn.005a6520
movzx eax, byte [edi + 6]
add eax, 0x151
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
push eax
mov ecx, edi
call fcn.0059e6c0
dec dword [esi + 0x49cc]
xor eax, eax
mov dword [esi + 0x49d0], eax
mov dword [esi + 0x49d4], eax
mov dword [esi + 0x49d8], eax
cmp dword [esi + 0x49cc], eax
mov dword [esi + 0x9c], 0x16
mov dword [esi + 0x3224], eax
mov ecx, esi
jle 0x5a4964
call fcn.0059df40
test eax, eax
je 0x5a4962
pop edi
xor eax, eax
pop esi
pop ecx
ret 4
mov ecx, esi
push edi
call fcn.005a4630
pop edi
pop esi
pop ecx
ret 4
Function at 0x5a6f10
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x657470
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0x7496c8]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0x28], esi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
push eax
push str._dkf
lea ecx, [ebp - 0x24]
push ecx
call fcn.0061611b
add esp, 0xc
push 0x10
push edi
push 0
push 0
lea edx, [ebp - 0x24]
push edx
mov eax, dword [esi + 0x104]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00613241
mov esp, ebp
pop ebp
ret 8

Function at 0x5a6fc0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6574a0
mov eax, dword fs:[0]
push eax
sub esp, 0x20
mov eax, dword [0x7496c8]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0x28], esi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
push eax
push str._dkf
lea ecx, [ebp - 0x24]
push ecx
call fcn.0061611b
add esp, 0xc
mov dword [ebp - 0x2c], 0x10
lea edx, [ebp - 0x2c]
push edx
push edi
push 0
push 0
lea eax, [ebp - 0x24]
push eax
mov ecx, dword [esi + 0x104]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x5a7058
mov eax, 1
jmp 0x5a705a
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00613241
mov esp, ebp
pop ebp
ret 8
Function at 0x5a7cd0
Capabilities:
Delete registry value
Set registry value

Disassembly:
push ecx
push esi
mov esi, ecx
mov eax, dword [esi + 0x23c]
test eax, eax
je 0x5a7d4b
cmp dword [esi + 0x174], 0
push edi
je 0x5a7d2e
mov ecx, dword [esi + 0x1a0]
test ecx, ecx
je 0x5a7d2e
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push 4
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0xc]
push ecx
push 4
push 0
push str.bUseSpeedLimiter
push eax
call edi
mov eax, dword [esi + 0x23c]
push 8
lea edx, [esi + 0x168]
push edx
push 0
push 0
push str.psnSpeedLimit
push eax
call edi
pop edi
pop esi
pop ecx
ret
mov edi, dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
push str.bUseSpeedLimiter
push eax
call edi
mov ecx, dword [esi + 0x23c]
push str.psnSpeedLimit
push ecx
call edi
pop edi
pop esi
pop ecx
ret

Function at 0x5a7d50
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x10
push esi
mov esi, ecx
mov eax, dword [esi + 0x23c]
test eax, eax
je 0x5a7de8
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [esp + 8]
push ecx
lea edx, [esp + 0x10]
push edx
push 0
push 0
push str.bUseSpeedLimiter
push eax
mov dword [esp + 0x20], 4
call edi
test eax, eax
jne 0x5a7de7
mov eax, dword [esp + 0xc]
lea ecx, [esp + 8]
push ecx
lea edx, [esp + 0x14]
push edx
push 0
push 0
mov dword [esi + 0x1a0], eax
mov eax, dword [esi + 0x23c]
push str.psnSpeedLimit
push eax
mov dword [esi + 0x174], 1
mov dword [esp + 0x20], 8
call edi
test eax, eax
jne 0x5a7de7
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esi + 0x168], ecx
mov dword [esi + 0x16c], edx
mov dword [esi + 0x170], 1
pop edi
pop esi
add esp, 0x10
ret

Function at 0x5a7df0
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x10
push esi
mov esi, ecx
mov eax, dword [esi + 0x23c]
test eax, eax
je 0x5a7e66
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [esp + 8]
push ecx
lea edx, [esp + 0x10]
push edx
push 0
push 0
push str.nSkFr1
push eax
mov dword [esp + 0x20], 4
call edi
test eax, eax
jne 0x5a7e65
mov eax, dword [esp + 0xc]
lea ecx, [esp + 8]
push ecx
lea edx, [esp + 0x14]
push edx
push 0
push 0
mov dword [esi + 0x190], eax
mov eax, dword [esi + 0x23c]
push str.dLstDrSk1
push eax
mov dword [esp + 0x20], 8
call edi
test eax, eax
jne 0x5a7e65
fld qword [esp + 0x10]
fstp qword [esi + 0x198]
pop edi
pop esi
add esp, 0x10
ret
Function at 0x5a8110
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x657550
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push esi
push edi
mov eax, dword [0x7496c8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0x18], esi
cmp dword [esi + 0x23c], 0
je 0x5a8239
mov dword [ebp - 4], 0
wait
mov eax, dword [esi + 0x1c0]
mov ecx, dword [esi + 0x1c4]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], ecx
push 8
lea eax, [ebp - 0x20]
push eax
push 0
push 0
push 0x68d064
mov ecx, dword [esi + 0x23c]
push ecx
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
call edi
mov eax, dword [esi + 0x1c8]
mov dword [ebp - 0x14], eax
cmp eax, 0x64
jle 0x5a81ab
push 4
lea edx, [ebp - 0x14]
push edx
push 4
push 0
push str.Speed
mov eax, dword [esi + 0x23c]
push eax
call edi
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x24]
cmp ecx, 4
je 0x5a81c4
cmp ecx, 5
je 0x5a81c4
cmp dword [eax + 0x320], 0
je 0x5a81e5
fld qword [esi + 0x188]
fstp qword [ebp - 0x28]
push 8
lea ecx, [ebp - 0x28]
push ecx
push 0
push 0
push str.dwnlDuration
mov edx, dword [esi + 0x23c]
push edx
call edi
cmp dword [ebp + 8], 0
je 0x5a8231
mov eax, dword [esi + 0x190]
test eax, eax
jle 0x5a8231
mov dword [ebp + 8], eax
push 4
lea eax, [ebp + 8]
push eax
push 4
push 0
push str.nSkFr1
mov ecx, dword [esi + 0x23c]
push ecx
call edi
fld qword [esi + 0x198]
fstp qword [ebp - 0x30]
push 8
lea edx, [ebp - 0x30]
push edx
push 0
push 0
push str.dLstDrSk1
mov eax, dword [esi + 0x23c]
push eax
call edi
wait
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x5a8270
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x657570
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x7496c8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 4], 0
wait
mov ecx, dword [esi + 0xc]
fldz
fcomp qword [ecx + 0x3a8]
fnstsw ax
test ah, 1
jne 0x5a82ca
wait
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ecx + 0x320], 0
jne 0x5a82ec
mov edi, dword [esi + 0x1b0]
mov ecx, esi
call fcn.005a7f00
mov dword [esi + 0x1a8], eax
mov dword [esi + 0x1b0], edi
mov eax, dword [esi + 0x10]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [eax], 0
je 0x5a830b
push 0
push 0x146d
push 0x111
mov eax, dword [eax]
push eax
call edi
mov eax, dword [esi + 0x14]
cmp dword [eax], 0
je 0x5a8329
mov ecx, dword [esi + 0x238]
push ecx
push 0x146d
push 0x111
mov edx, dword [eax]
push edx
call edi
mov eax, dword [esi + 0x18]
cmp dword [eax], 0
je 0x5a8342
push 0
push 0x146d
push 0x111
mov eax, dword [eax]
push eax
call edi
mov eax, dword [esi + 0x23c]
test eax, eax
je 0x5a8397
push 8
mov ecx, dword [esi + 0xc]
add ecx, 0x3a8
push ecx
push 0
push 0
push str.Duration
push eax
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
call edi
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x320], 0
je 0x5a8397
mov edx, dword [eax + 0x320]
mov dword [ebp - 0x14], edx
push 4
lea eax, [ebp - 0x14]
push eax
push 4
push 0
push str.nAggrV
mov ecx, dword [esi + 0x23c]
push ecx
call edi
wait
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x5a83c0
Capabilities:
Set registry value

Disassembly:
push esi
mov esi, ecx
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0xf0]
or ecx, dword [eax + 0xf4]
je 0x5a8452
mov eax, dword [esi + 0x10]
cmp dword [eax], 0
push edi
mov edi, dword [sym.imp.USER32.dll_PostMessageA]
je 0x5a83f4
mov edx, dword [eax]
push 0
push 0x14a5
push 0x111
push edx
call edi
mov eax, dword [esi + 0x14]
cmp dword [eax], 0
je 0x5a8412
mov ecx, dword [esi + 0x238]
mov edx, dword [eax]
push ecx
push 0x14a5
push 0x111
push edx
call edi
mov eax, dword [esi + 0x18]
cmp dword [eax], 0
je 0x5a842b
mov eax, dword [eax]
push 0
push 0x14a5
push 0x111
push eax
call edi
mov eax, dword [esi + 0x23c]
pop edi
test eax, eax
je 0x5a8452
mov ecx, dword [esi + 0xc]
push 8
add ecx, 0xf0
push ecx
push 0
push 0
push str.nExpectedSize
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
pop esi
ret
Function at 0x5a8460
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x657590
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x7496c8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 4], 0
wait
mov eax, dword [esi + 0x23c]
test eax, eax
jne 0x5a84b2
wait
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x14], 8
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x1c]
push edx
push 0
push 0
push str.Duration
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x5a849f
mov eax, dword [esi + 0xc]
fld qword [ebp - 0x1c]
fstp qword [eax + 0x3a8]
mov ecx, dword [esi + 0xc]
cmp dword [ecx + 0x320], 0
jne 0x5a8506
mov edi, dword [esi + 0x1b0]
mov ecx, esi
call fcn.005a7f00
mov dword [esi + 0x1a8], eax
mov dword [esi + 0x1b0], edi
mov eax, dword [esi + 0x10]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [eax], 0
je 0x5a8525
push 0
push 0x146d
push 0x111
mov edx, dword [eax]
push edx
call edi
mov eax, dword [esi + 0x14]
cmp dword [eax], 0
je 0x5a8543
mov ecx, dword [esi + 0x238]
push ecx
push 0x146d
push 0x111
mov edx, dword [eax]
push edx
call edi
mov esi, dword [esi + 0x18]
cmp dword [esi], 0
je 0x5a855c
push 0
push 0x146d
push 0x111
mov eax, dword [esi]
push eax
call edi
wait
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x5a8590
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6575b0
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x7496c8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0x1c], esi
xor eax, eax
mov dword [esi + 0x1cc], eax
mov dword [ebp - 4], eax
mov ebx, 4
mov dword [ebp - 0x14], ebx
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x18]
push edx
push eax
push eax
push str.NewConnType
mov eax, dword [0x74ea0c]
push eax
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
call edi
test eax, eax
jne 0x5a85ff
mov ecx, dword [ebp - 0x18]
mov dword [esi + 0x1cc], ecx
jmp 0x5a864e
mov dword [ebp - 0x14], ebx
lea edx, [ebp - 0x14]
push edx
lea eax, [ebp - 0x18]
push eax
push 0
push 0
push str.ConnectionSpeed
mov ecx, dword [0x74ea0c]
push ecx
call edi
test eax, eax
jne 0x5a864e
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x5a864e
cmp eax, 0x1f400
ja 0x5a863a
mov dword [esi + 0x1cc], 1
jmp 0x5a864e
mov edx, 0x7d000
cmp edx, eax
sbb eax, eax
neg eax
add eax, 2
mov dword [esi + 0x1cc], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [eax]
push ecx
mov edx, dword [eax + 0x24]
push edx
mov ecx, 0x74eb7c
call fcn.004f2af0
push eax
mov ecx, esi
call fcn.005a7e70
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x5a86d0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x81c
mov eax, dword [0x7496c8]
xor eax, esp
mov dword [esp + 0x818], eax
mov edx, dword [esp + 0x828]
mov eax, dword [esp + 0x82c]
push esi
mov esi, dword [esp + 0x828]
push edi
mov edi, dword [esp + 0x828]
push 0
lea ecx, [esp + 0x14]
push ecx
push edx
push esi
mov dword [esp + 0x20], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x5a87b3
push 0x801
lea eax, [esp + 0x20]
push 0
push eax
call fcn.00613900
add esp, 0xc
push 0
lea ecx, [esp + 0x10]
push ecx
push 0x800
lea edx, [esp + 0x28]
push edx
push esi
mov dword [esp + 0x20], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x5a87b3
mov esi, dword [esp + 0xc]
test esi, esi
je 0x5a87b3
lea eax, [esp + 0xb]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x28]
push eax
push esi
mov ecx, edi
mov byte [esp + 0x1f], 0
mov dword [esp + 0x28], 0
call fcn.005575c0
test al, al
je 0x5a87a4
pop edi
mov al, 1
pop esi
mov ecx, dword [esp + 0x818]
xor ecx, esp
call fcn.00613241
add esp, 0x81c
ret
cmp byte [esp + 0xb], 0
je 0x5a87b3
cmp esi, 0x104
ja 0x5a878b
mov ecx, dword [esp + 0x820]
pop edi
pop esi
xor ecx, esp
xor al, al
call fcn.00613241
add esp, 0x81c
ret
Function at 0x5a8d00
Capabilities:
Initialize winsock library

Disassembly:
push 0xffffffffffffffff
push 0x657650
mov eax, dword fs:[0]
push eax
sub esp, 0x218
mov eax, dword [0x7496c8]
xor eax, esp
mov dword [esp + 0x214], eax
push ebx
push esi
push edi
mov eax, dword [0x7496c8]
xor eax, esp
push eax
lea eax, [esp + 0x228]
mov dword fs:[0], eax
mov esi, ecx
lea ecx, [esi + 0x28]
mov dword [esp + 0x10], esi
mov dword [esi], vtable.Session.0
call fcn.0054b070
xor edi, edi
mov dword [esp + 0x230], edi
lea ecx, [esi + 0x130]
call fcn.00402500
mov ebx, 1
mov byte [esp + 0x230], bl
lea ecx, [esi + 0x184]
call fcn.00402500
mov byte [esp + 0x230], 2
fldz
mov dword [esi + 0x1a8], ebx
mov dword [esi + 0x1a4], 0x20
mov dword [esi + 0x1a0], edi
mov dword [esi + 0x170], edi
mov eax, dword [0x74eca0]
mov dword [esi + 0x168], eax
mov ecx, dword [0x74eca4]
fst qword [esi + 0x188]
lea edx, [esp + 0x14]
fstp qword [esi + 0x198]
mov dword [esi + 0x148], ebx
push edx
or ebx, 0xffffffff
push 0x202
mov dword [esi + 0x16c], ecx
mov dword [esi + 0x174], edi
mov dword [esi + 0x178], edi
mov dword [esi + 0x1b8], edi
mov dword [esi + 0x1bc], edi
mov dword [esi + 0x1c8], edi
mov dword [esi + 0x1c0], edi
mov dword [esi + 0x1c4], edi
mov dword [esi + 0x190], edi
mov dword [esi + 0x24], edi
mov dword [esi + 0x1c], edi
mov dword [esi + 0x234], edi
mov dword [esi + 0x23c], edi
mov dword [esi + 0x134], edi
mov dword [esi + 0x214], edi
mov dword [esi + 0x218], edi
mov dword [esi + 0x21c], edi
mov dword [esi + 0x1f0], edi
mov dword [esi + 0x1f4], edi
mov dword [esi + 0x220], edi
mov dword [esi + 0x228], edi
mov dword [esi + 0x22c], edi
mov dword [esi + 0x230], edi
mov dword [esi + 0x1d0], edi
mov dword [esi + 0x200], edi
mov dword [esi + 0x204], edi
mov dword [esi + 8], edi
mov dword [esi + 0x138], edi
mov dword [esi + 0x13c], edi
mov dword [esi + 0x140], edi
mov dword [esi + 0x144], edi
mov dword [esi + 0x150], edi
mov dword [esi + 0x154], edi
mov dword [esi + 0x158], edi
mov dword [esi + 0x15c], ebx
mov dword [esi + 0x17c], edi
mov dword [esi + 0x180], edi
mov dword [esi + 0x160], edi
call sub.WS2_32.dll_WSAStartup
test eax, eax
je 0x5a8edb
push 2
push 2
lea eax, [esp + 0x1ac]
push str.Cannot_find_Winsock_v_d._d_or_later__n
push eax
call fcn.0061611b
add esp, 0x10
lea ecx, [esp + 0x1a4]
push ecx
mov ecx, esi
call fcn.005a87d0
mov dword [esp + 0x230], ebx
mov eax, esi
mov ecx, dword [esp + 0x228]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x214]
xor ecx, esp
call fcn.00613241
add esp, 0x224
ret