joyce8/EMBER2024-capa huggingface dataset:
Function at 0x47e7d0
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
push edi
mov esi, ecx
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [esp + 0x24]
mov ebx, eax
mov eax, dword [esi + 0x7ac]
add ebx, ecx
test eax, eax
mov dword [esp + 0x1c], ebx
jne 0x47e922
mov ecx, esi
call fcn.0047e940
mov edi, eax
test edi, edi
jle 0x47e914
call dword [sym.imp.WINMM.dll_timeGetTime]
cmp eax, ebx
ja 0x47e922
push 0x1b
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
movsx eax, ax
test eax, 0x80000000
jne 0x47e931
mov ecx, dword [esi + 0x784]
mov eax, dword [esi + 0x780]
test ecx, ecx
jne 0x47e842
xor ebp, ebp
jmp 0x47e862
mov eax, dword [eax + 0x18]
mov ecx, dword [ecx + 4]
lea ebp, [esp + 0x14]
mov edx, dword [eax]
push ebp
push ecx
push eax
call dword [edx + 0x44]
mov ecx, dword [esp + 0x14]
neg eax
sbb eax, eax
not eax
and eax, ecx
mov ebp, eax
test ebp, ebp
jle 0x47e90c
mov eax, dword [esi + 0x784]
mov edx, dword [eax + 0x1c]
mov ebx, dword [eax + 0x18]
mov dword [esp + 0x10], edx
mov dword [esp + 0x24], 0
test ebp, ebp
jle 0x47e8ff
mov ecx, dword [esi + 0x784]
mov eax, dword [esi + 0x780]
mov edx, dword [ecx + 4]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x18], edx
lea edx, [esp + 0x10]
mov ecx, dword [eax]
push edx
push ebx
lea edx, [esp + 0x20]
push 1
push edx
lea edx, [esp + 0x34]
push edx
push eax
call dword [ecx + 0x64]
mov edi, eax
test edi, edi
je 0x47e8d3
push 0
push edi
push 0x136
push str.c:projincs_netmgr.h
call fcn.004e6df0
add esp, 0x10
test edi, edi
jne 0x47e8ff
mov ecx, dword [esi + 0x784]
mov eax, dword [esp + 0x24]
dec ebp
cmp eax, dword [ecx + 4]
je 0x47e8fb
mov edx, dword [esp + 0x10]
mov ecx, esi
push edx
push ebx
push eax
call fcn.0047d010
mov eax, dword [esi + 0x7ac]
test eax, eax
jne 0x47e922
test edi, edi
je 0x47e882
mov ecx, esi
call fcn.0047e940
mov ebx, dword [esp + 0x1c]
mov edi, eax
test edi, edi
jg 0x47e80a
push 1
push 0x3ee
mov ecx, esi
call fcn.0047cd00
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret 4
Function at 0x47f710
Capabilities:
Get graphical window text

Disassembly:
sub esp, 0x100
push ebx
push ebp
mov ebp, dword [esp + 0x10c]
mov ebx, ecx
test ebp, ebp
je 0x47f87b
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0x4c]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x47f87b
push edi
push esi
push 0x54a328
push 0x270e
push 0xd
push ebp
mov byte [0x54a328], 0
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, 0x138a
jle 0x47f784
mov edi, 0x54b6b0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x54a328
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x47f788
test eax, eax
jle 0x47f7b5
mov edi, 0x538558
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0x54a328
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 4]
add eax, 0x4c
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
test edx, edx
jle 0x47f858
mov ecx, dword [eax]
push 1
lea edx, [esp + 0x14]
push 0xfe
push edx
call fcn.00423a30
test eax, eax
je 0x47f845
lea edi, [esp + 0x10]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0x54a328
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0x4c]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x47f845
mov edi, 0x538558
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0x54a328
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 4]
add eax, 0x4c
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
test edx, edx
jg 0x47f7c8
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push 0x54a328
push 0
push 0xc
push ebp
call esi
push 0x270f
push 0
push 0xb6
push ebp
call esi
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x100
ret 4
Function at 0x48af6a
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x513a9e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x10], esi
mov dword [esi], vtable.CUserBase.0
lea ebx, [esi + 0x14]
xor ebp, ebp
mov ecx, ebx
mov dword [esp + 0x2c], ebp
call fcn.004e1040
mov edi, dword [esp + 0x34]
mov dword [esi], vtable.CUserLogic.0
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
mov eax, dword [edi + 0x6c]
push ebp
push 0x545dfc
lea ecx, [esp + 0x1c]
mov byte [esp + 0x34], 1
mov dword [esi + 0x10], eax
mov dword [esi + 4], ebp
call fcn.004e0cd0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 2
push ecx
mov ecx, ebx
call fcn.004e0c20
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 1
call fcn.004e0bd0
cmp dword [0x5bd4e4], ebp
jne 0x48aff1
mov edx, dword [esi + 8]
mov ecx, esi
push edx
call fcn.00404330
mov dword [0x5bd4e4], 1
mov ecx, dword [esi + 0xc]
push str.LogicHit
call fcn.004d1320
mov ecx, dword [esi + 0xc]
push str.LogicAttack
call fcn.004d13e0
mov ecx, dword [esi + 0xc]
push str.LogicBump
call fcn.004d14b0
mov dword [esi + 0x24], ebp
mov dword [esi + 0x28], ebp
mov dword [esi + 0x2c], 0x3e9
mov dword [esi + 0x30], 2
mov dword [esi + 0x38], edi
mov dword [esi + 0x3c], edi
mov eax, dword [edi + 0x6c]
mov dword [esp + 0x2c], 3
mov dword [esi + 0x40], eax
mov dword [esi + 0x5c], ebp
mov dword [esi + 0x60], ebp
mov dword [esi + 0x64], ebp
mov dword [esi + 0x68], ebp
mov dword [esi], vtable.CRedTailWind.0
mov eax, dword [esi + 0x3c]
lea ecx, [esp + 0x34]
mov byte [esp + 0x2c], 4
mov edi, dword [eax + 0x40]
push ecx
or edi, 1
push str.LEVEL_REDTAIL_WINDWHISTLING
mov dword [eax + 0x40], edi
mov edx, dword [esi + 0x3c]
mov dword [esp + 0x3c], ebp
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x28]
add ecx, 0x10
call fcn.00501434
mov eax, dword [esp + 0x34]
mov ecx, esi
mov dword [esi + 0x58], eax
call fcn.0048b120
mov ecx, dword [esp + 0x24]
mov eax, esi
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x20
ret 4
Function at 0x48f4ca
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x513cab
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x10], esi
mov dword [esi], vtable.CUserBase.0
lea ebx, [esi + 0x14]
xor ebp, ebp
mov ecx, ebx
mov dword [esp + 0x2c], ebp
call fcn.004e1040
mov edi, dword [esp + 0x34]
mov dword [esi], vtable.CUserLogic.0
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
mov eax, dword [edi + 0x6c]
push ebp
push 0x545dfc
lea ecx, [esp + 0x1c]
mov byte [esp + 0x34], 1
mov dword [esi + 0x10], eax
mov dword [esi + 4], ebp
call fcn.004e0cd0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 2
push ecx
mov ecx, ebx
call fcn.004e0c20
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 1
call fcn.004e0bd0
cmp dword [0x5bd4e4], ebp
jne 0x48f551
mov edx, dword [esi + 8]
mov ecx, esi
push edx
call fcn.00404330
mov dword [0x5bd4e4], 1
mov ecx, dword [esi + 0xc]
push str.LogicHit
call fcn.004d1320
mov ecx, dword [esi + 0xc]
push str.LogicAttack
call fcn.004d13e0
mov ecx, dword [esi + 0xc]
push str.LogicBump
call fcn.004d14b0
mov ecx, 2
mov dword [esi + 0x24], ebp
mov dword [esi + 0x28], ebp
mov dword [esi + 0x2c], 0x3e9
mov dword [esi + 0x30], ecx
mov dword [esi + 0x38], edi
mov dword [esi + 0x3c], edi
mov eax, dword [edi + 0x6c]
mov dword [esi + 0x40], eax
mov dword [esi + 0x5c], ebp
mov dword [esi + 0x60], ebp
mov dword [esi], vtable.CShake.0
mov eax, dword [esi + 0x3c]
mov ebx, dword [eax + 8]
or ebx, 4
mov dword [eax + 8], ebx
mov edx, dword [esi + 0x3c]
mov dword [edx + 0xdc], 1
mov eax, dword [esi + 0x3c]
mov dword [eax + 0xe4], ecx
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x50]
mov edx, dword [eax + 0x154]
mov ebx, dword [eax + 0x14c]
mov ebp, dword [eax + 0x4c]
mov edi, dword [eax + 0x150]
mov eax, dword [eax + 0x148]
sub edx, ecx
sub ebx, ecx
mov ecx, dword [esi + 0x3c]
sub edi, ebp
sub eax, ebp
mov dword [ecx + 0x148], eax
mov dword [ecx + 0x14c], ebx
mov dword [ecx + 0x150], edi
mov dword [ecx + 0x154], edx
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x58], 0
mov eax, esi
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x20
ret 4
Function at 0x492eb0
Capabilities:
Get common file path

Disassembly:
mov eax, dword [0x54e800]
test eax, eax
jne 0x492ebc
xor eax, eax
ret
push edi
push esi
push 0x54e6e8
push 0xff
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov edi, 0x54e6e8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
test ecx, ecx
jle 0x492ef1
cmp byte [ecx + 0x54e6e7], 0x5c
jne 0x492ef1
mov byte [ecx + 0x54e6e7], 0
push 0x54e6e8
push str._sCLAW4.SF2
push 0x54e370
call fcn.004ab350
add esp, 0xc
push 0x54e6e8
push str._sCLAW.SF2
push 0x54e578
call fcn.004ab350
movsx esi, byte [esp + 0x18]
add esp, 0xc
push esi
push str._c:MUSICCLAW4.SF2
push 0x54e228
call fcn.004ab350
add esp, 0xc
push esi
push str._c:MUSICCLAW.SF2
push 0x54e478
call fcn.004ab350
add esp, 0xc
call fcn.00492e60
mov eax, dword [0x54e7e8]
xor edi, edi
cmp eax, 0x37115c
mov word [0x54e214], 1
mov word [0x54e216], 0
mov dword [0x54e218], 0x80
mov word [0x54e224], 0
mov esi, 0x6b
jb 0x492f8c
mov edi, 1
test edi, edi
mov eax, 0x54e370
jne 0x492f9a
mov eax, 0x54e578
push eax
mov dword [0x54e21c], eax
call fcn.004a3ca0
add esp, 4
test eax, eax
je 0x492fcb
mov ax, word [0x54e470]
mov ecx, dword [0x54e7f8]
push 0x54e218
push 0x54e214
push eax
call dword [ecx + 0x2c]
add esp, 0xc
mov esi, eax
test esi, esi
je 0x493006
test edi, edi
mov dword [0x54e21c], 0x54e228
jne 0x492fe7
mov dword [0x54e21c], 0x54e478
mov dx, word [0x54e470]
mov eax, dword [0x54e7f8]
push 0x54e218
push 0x54e214
push edx
call dword [eax + 0x2c]
add esp, 0xc
mov esi, eax
xor eax, eax
test esi, esi
pop esi
pop edi
sete al
ret

Function at 0x4a31f0
Capabilities:
Get common file path
Get disk information

Disassembly:
sub esp, 0x104
push ebp
mov ebp, ecx
push esi
push edi
lea esi, [ebp + 0x1c]
mov ecx, esi
call fcn.00501b70
lea eax, [esp + 0xc]
mov byte [esp + 0xc], 0
push eax
push 0xfe
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov edi, dword [esp + 0x114]
test eax, eax
jbe 0x4a3239
lea ecx, [esp + 0xc]
push edi
push ecx
push 0x5370bc
push esi
call fcn.00500338
add esp, 0x10
lea edx, [esp + 0xc]
mov byte [esp + 0xf], 0
push edx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 5
jne 0x4a3255
mov ecx, esi
call fcn.00501b70
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test ecx, ecx
jne 0x4a3286
lea ecx, [esp + 0xc]
push 0xfe
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
jbe 0x4a3286
lea edx, [esp + 0xc]
push edi
push edx
push 0x5370bc
push esi
call fcn.00500338
add esp, 0x10
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test ecx, ecx
jne 0x4a329d
xor eax, eax
pop edi
pop esi
pop ebp
add esp, 0x104
ret 4
mov ecx, 8
xor eax, eax
lea edi, [ebp + 0x20]
rep stosd dword es:[edi], eax
mov ecx, ebp
call fcn.004a3350
test eax, eax
jle 0x4a32c4
push str.Player
mov ecx, ebp
call fcn.004a38a0
test eax, eax
jne 0x4a32ec
push 0
push 0x545dfc
push 0x545dfc
push str.Player
mov ecx, ebp
call fcn.004a3760
test eax, eax
jne 0x4a32ec
pop edi
pop esi
pop ebp
add esp, 0x104
ret 4
pop edi
pop esi
mov eax, 1
pop ebp
add esp, 0x104
ret 4
Function at 0x4a3570
Capabilities:
Access peb ldr_data

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x514708
push eax
mov dword fs:[0], esp
sub esp, 0x18
push ebx
mov ebx, ecx
push ebp
push esi
mov eax, dword [ebx + 0x1c]
push edi
mov ecx, dword [eax - 8]
test ecx, ecx
jne 0x4a35ad
xor eax, eax
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov eax, dword [ebx + 0xc]
test eax, eax
jg 0x4a35c9
xor eax, eax
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
lea ecx, [esp + 0x18]
call fcn.00502a4e
mov ecx, dword [ebx + 0x1c]
push 0
push 0x1000
push ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x3c], 0
call fcn.00502bcd
test eax, eax
jne 0x4a3618
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], 0xffffffff
call fcn.00502aee
xor eax, eax
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
lea ecx, [esp + 0x18]
call fcn.00502df3
mov edx, dword [ebx + 0x1c]
push 0
push 1
push edx
lea ecx, [esp + 0x24]
call fcn.00502bcd
test eax, eax
jne 0x4a365c
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], 0xffffffff
call fcn.00502aee
xor eax, eax
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov edi, dword [ebx + 0xc]
mov eax, edi
mov dword [esp + 0x14], edi
shl eax, 4
add eax, edi
lea ebp, [eax + eax*8]
shl ebp, 4
add ebp, edi
shl ebp, 2
push ebp
call fcn.00501a4d
mov esi, eax
add esp, 4
test esi, esi
mov dword [esp + 0x10], esi
jne 0x4a36ae
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], 0xffffffff
call fcn.00502aee
xor eax, eax
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov eax, dword [ebx + 4]
mov edx, esi
test eax, eax
je 0x4a36dc
mov esi, eax
mov eax, dword [eax]
mov edi, edx
mov ecx, 0x991
mov esi, dword [esi + 8]
add edx, 0x2644
add esi, 4
test eax, eax
rep movsd dword es:[edi], dword [esi]
jne 0x4a36b7
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
push ebp
push esi
mov ecx, ebx
call fcn.004a3930
mov ecx, dword [ebx + 0xc]
mov dword [ebx + 0x24], eax
mov eax, dword [ebx + 0x40]
mov dword [ebx + 0x2c], ecx
mov dword [ebx + 0x28], eax
lea eax, [ebx + 0x20]
push 0x20
push eax
mov ecx, ebx
call fcn.004a39f0
push ebp
push esi
mov ecx, ebx
call fcn.004a39f0
lea eax, [ebx + 0x20]
push 0x20
push eax
lea ecx, [esp + 0x20]
call fcn.00502d2f
push ebp
push esi
lea ecx, [esp + 0x20]
call fcn.00502d2f
lea eax, [ebx + 0x20]
push 0x20
push eax
mov ecx, ebx
call fcn.004a3a30
push esi
call fcn.00501a89
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], 0xffffffff
call fcn.00502aee
mov ecx, dword [esp + 0x28]
mov eax, edi
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x24
ret
Function at 0x4a3930
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push edi
mov edi, dword [esp + 8]
test edi, edi
jne 0x4a393f
xor eax, eax
pop edi
ret 8
push esi
mov esi, dword [esp + 0x10]
or eax, 0xffffffff
xor ecx, ecx
test esi, esi
jbe 0x4a3962
push ebx
xor edx, edx
mov dl, byte [ecx + edi]
mov ebx, dword [edx*4 + 0x53eba8]
xor eax, ebx
inc ecx
cmp ecx, esi
jb 0x4a394e
pop ebx
pop esi
pop edi
ret 8

Function at 0x4a39f0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
mov esi, dword [esp + 0xc]
push edi
mov edi, ecx
mov eax, dword [edi + 0x44]
push eax
call fcn.004aaa70
add esp, 4
mov ecx, edi
push 0x1000000
call fcn.004a3970
mov ebx, dword [esp + 0x14]
test ebx, ebx
jbe 0x4a3a2a
mov ecx, edi
call fcn.004a39c0
mov dl, byte [esi]
xor dl, al
mov byte [esi], dl
inc esi
dec ebx
jne 0x4a3a19
pop edi
pop esi
pop ebx
ret 8

Function at 0x4a40a0
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x514777
push eax
mov dword fs:[0], esp
sub esp, 0x418
push ebx
mov ebx, dword [esp + 0x42c]
push ebp
push esi
test ebx, ebx
push edi
jne 0x4a40d1
xor eax, eax
jmp 0x4a41e9
mov edi, dword [esp + 0x43c]
test edi, edi
jne 0x4a40e3
xor eax, eax
jmp 0x4a41e9
mov esi, dword [esp + 0x440]
test esi, esi
jne 0x4a40f5
xor eax, eax
jmp 0x4a41e9
push str.Claw
lea ecx, [esp + 0x14]
call fcn.004f7590
push esi
push edi
push ebx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x43c], 0
call fcn.004f75d0
test eax, eax
jne 0x4a4155
mov dword [esp + 0x10], vtable.CHTTPSocket.0
lea ecx, [esp + 0x10]
mov dword [esp + 0x430], 2
call fcn.004f75c0
lea ecx, [esp + 0x10]
mov dword [esp + 0x430], 0xffffffff
call fcn.004a98fc
xor eax, eax
jmp 0x4a41e9
mov ebx, dword [sym.imp.WINMM.dll_timeGetTime]
call ebx
mov ebp, dword [esp + 0x444]
mov esi, eax
mov eax, dword [esp + 0x24]
add esi, ebp
test eax, eax
je 0x4a41b4
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, dword [0x549414]
test ecx, ecx
je 0x4a418f
mov eax, dword [ecx]
mov dword [ecx + 0x170], 1
call dword [eax + 0x14]
push 0x1b
call edi
movsx ecx, ax
test ecx, reloc.WSOCK32.dll_accept
jne 0x4a4202
test ebp, ebp
je 0x4a41ac
call ebx
cmp eax, esi
ja 0x4a4236
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4a4176
mov dword [esp + 0x10], vtable.CHTTPSocket.0
lea ecx, [esp + 0x10]
mov dword [esp + 0x430], 5
call fcn.004f75c0
lea ecx, [esp + 0x10]
mov dword [esp + 0x430], 0xffffffff
call fcn.004a98fc
mov eax, 1
mov ecx, dword [esp + 0x428]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x424
ret
mov dword [esp + 0x10], vtable.CHTTPSocket.0
lea ecx, [esp + 0x10]
mov dword [esp + 0x430], 3
call fcn.004f75c0
lea ecx, [esp + 0x10]
mov dword [esp + 0x430], 0xffffffff
call fcn.004a98fc
xor eax, eax
jmp 0x4a41e9
mov dword [esp + 0x10], vtable.CHTTPSocket.0
lea ecx, [esp + 0x10]
mov dword [esp + 0x430], 4
call fcn.004f75c0
lea ecx, [esp + 0x10]
mov dword [esp + 0x430], 0xffffffff
call fcn.004a98fc
xor eax, eax
jmp 0x4a41e9
Function at 0x4a7370
Capabilities:
Create process on windows
Get file version info

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x51486e
push eax
mov dword fs:[0], esp
sub esp, 0x10c
lea eax, [esp + 0xc]
push esi
push edi
push 0xfe
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jbe 0x4a7431
push 0
lea ecx, [esp + 0x18]
push 2
push ecx
call fcn.004a3cf0
add esp, 0xc
test eax, eax
je 0x4a7431
push str.Claw
push str.ClawClass
call dword [sym.imp.USER32.dll_FindWindowA]
mov esi, eax
test esi, esi
je 0x4a75aa
push esi
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x4a73f4
push 0
push 0xf120
push 0x112
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x12c]
test eax, eax
je 0x4a75aa
push str.LOBBYLAUNCH
push eax
call fcn.004ab3c0
add esp, 8
test eax, eax
je 0x4a75aa
push 0
push 0x8062
push 0x111
push esi
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x4a75aa
lea edx, [esp + 0x14]
push 0
push edx
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov edi, eax
push edi
call fcn.00501a4d
add esp, 4
mov esi, eax
lea eax, [esp + 0x14]
push esi
push edi
push 0
push eax
call sub.VERSION.dll_GetFileVersionInfoA
lea ecx, [esp + 0xc]
lea edx, [esp + 8]
push ecx
push edx
push str.StringFileInfo040904B0FileVersion
push esi
call sub.VERSION.dll_VerQueryValueA
push 0x550abc
push 0x550ab8
mov eax, dword [esp + 0x10]
push 0x550ab4
push 0x550ab0
push str._d___d___d___d
push eax
call fcn.004ac1b0
add esp, 0x18
push esi
call fcn.00501a89
add esp, 4
push 0
call fcn.00422520
add esp, 4
test eax, eax
je 0x4a75aa
mov esi, dword [esp + 0x124]
push 0
push esi
call fcn.00457a60
add esp, 8
dec eax
je 0x4a7584
sub eax, 2
je 0x4a75aa
push 0x254
call fcn.00501a4d
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0x11c], 0
je 0x4a74f9
mov ecx, eax
call fcn.00424ed0
jmp 0x4a74fb
xor eax, eax
test eax, eax
mov dword [esp + 0x11c], 0xffffffff
mov dword [0x550aa0], eax
je 0x4a75aa
mov ecx, dword [esp + 0x12c]
push closesocket
push closesocket
push 0
push ecx
mov dword [0x550ac8], esi
mov edx, dword [eax]
push str.CLAW
push str.Claw
push esi
mov ecx, eax
call dword [edx + 8]
mov ecx, dword [0x550aa0]
test eax, eax
jne 0x4a755f
test ecx, ecx
je 0x4a7553
mov edx, dword [ecx]
push 1
call dword [edx]
mov dword [0x550aa0], 0
jmp 0x4a75aa
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [0x550aa0]
mov esi, eax
test ecx, ecx
je 0x4a7576
mov edx, dword [ecx]
push 1
call dword [edx]
mov dword [0x550aa0], 0
mov eax, esi
jmp 0x4a75ac
push 1
push str.Rundll32.exe_shell32.dll_Control_RunDLL_joy.cpl
call dword [sym.imp.KERNEL32.dll_WinExec]
cmp eax, 0x1f
jg 0x4a75aa
push 0
push str.Claw
push str.Unable_to_launch_joystick_applet
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
mov ecx, dword [esp + 0x114]
pop edi
mov dword fs:[0], ecx
pop esi
add esp, 0x118
ret 0x10
Function at 0x4a96a6
Capabilities:
Parse url

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x814
push ebx
xor ebx, ebx
cmp dword [ebp + 0xc], ebx
push esi
push edi
je 0x4a9729
cmp dword [ebp + 8], ebx
je 0x4a9729
mov eax, dword [ebp + 0x18]
mov edi, dword [sym.imp.WININET.dll_InternetCanonicalizeUrlA]
mov esi, eax
and eax, 0xc0000000
and esi, 0x3e000000
mov dword [ebp + 0x18], eax
lea eax, [ebp - 4]
push esi
push eax
lea eax, [ebp - 0x814]
push eax
mov dword [ebp - 4], 0x80a
push dword [ebp + 8]
mov dword [ebp - 8], ebx
call edi
cmp eax, ebx
jne 0x4a9732
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x4a9729
push dword [ebp - 4]
call fcn.00501a4d
pop ecx
mov ebx, eax
lea eax, [ebp - 4]
push esi
push eax
push ebx
push dword [ebp + 8]
mov dword [ebp - 8], 1
call edi
test eax, eax
jne 0x4a9738
push ebx
call fcn.00501a89
pop ecx
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 0x14
lea ebx, [ebp - 0x814]
mov esi, dword [ebp + 0xc]
push esi
push dword [ebp + 0x18]
push 0
push ebx
call dword [sym.imp.WININET.dll_InternetCrackUrlA]
cmp dword [ebp - 8], 0
mov edi, eax
je 0x4a9757
push ebx
call fcn.00501a89
pop ecx
test edi, edi
jne 0x4a9760
mov eax, dword [ebp + 0x10]
jmp 0x4a9785
mov ecx, dword [ebp + 0x14]
mov ax, word [esi + 0x18]
mov word [ecx], ax
mov eax, dword [esi + 0xc]
dec eax
je 0x4a97cc
dec eax
je 0x4a97c1
dec eax
je 0x4a97b6
dec eax
je 0x4a97ab
dec eax
je 0x4a97a0
dec eax
je 0x4a9795
dec eax
mov eax, dword [ebp + 0x10]
je 0x4a978d
mov dword [eax], 0x1000
jmp 0x4a97d5
mov dword [eax], 0x1002
jmp 0x4a97d5
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x1006
jmp 0x4a97d5
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x1001
jmp 0x4a97d5
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x100b
jmp 0x4a97d5
mov eax, dword [ebp + 0x10]
mov dword [eax], 3
jmp 0x4a97d5
mov eax, dword [ebp + 0x10]
mov dword [eax], 2
jmp 0x4a97d5
mov eax, dword [ebp + 0x10]
mov dword [eax], 1
mov eax, edi
jmp 0x4a972b

Function at 0x4a994b
Capabilities:
Create http request

Disassembly:
mov eax, 0x515028
call fcn.004ac410
push ecx
push esi
mov esi, ecx
mov dword [ebp - 0x10], esi
mov eax, dword [ebp + 0xc]
and dword [ebp - 4], 0
and dword [esi + 0x10], 0
and dword [esi + 0xc], 0
mov dword [esi + 4], eax
mov eax, dword [ebp + 8]
test eax, eax
mov dword [esi], vtable.CInternetSession.0
jne 0x4a9983
call fcn.0050d986
mov eax, dword [eax + 0x10]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
call dword [sym.imp.WININET.dll_InternetOpenA]
test eax, eax
mov dword [esi + 8], eax
jne 0x4a99a8
push eax
push dword [esi + 4]
call fcn.004aa597
jmp 0x4a99b4
push esi
push eax
mov ecx, 0x552580
call fcn.004a99c5
mov ecx, dword [ebp - 0xc]
mov eax, esi
mov dword fs:[0], ecx
pop esi
leave
ret 0x18