joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4b6df0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
push 0
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov edi, dword [ebp + 0x10]
test edi, edi
je 0x4b6ef5
push 0
lea eax, [ebp - 4]
mov dword [ebp - 4], 0
push eax
push edi
push dword [ebp + 0xc]
push dword [esi - 0x350]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4b6e6d
lea edi, [esi - 0x33c]
cmp byte [esi - 0x22c], al
jne 0x4b6e40
mov edi, dword [esi - 0x340]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp + 8]
push eax
call fcn.004af720
mov ecx, eax
call fcn.004af870
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [ebp + 8]
call fcn.004af720
push 0x563c30
jmp 0x4b6e95
mov ecx, dword [ebp - 4]
test ecx, ecx
jne 0x4b6ebe
lea edi, [esi - 0x33c]
cmp byte [esi - 0x22c], cl
jne 0x4b6e88
mov edi, dword [esi - 0x340]
mov ecx, dword [ebp + 8]
call fcn.004af720
push 0x563c64
mov esi, eax
push 0x561dd0
push esi
call fcn.004ad730
lea ecx, [edi + 4]
push ecx
push 0x561dd0
push esi
call fcn.004ad730
add esp, 0x18
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
cmp ecx, edi
je 0x4b6ef5
cmp byte [esi - 0x22c], 0
lea eax, [esi - 0x33c]
jne 0x4b6ed7
mov eax, dword [esi - 0x340]
add eax, 4
push eax
push ecx
push edi
push str.penc_rN
push dword [ebp + 8]
call fcn.004af7d0
add esp, 0x14
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
add dword [esi + 8], edi
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc

Function at 0x4b6f50
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, ecx
mov ebx, edx
mov ecx, dword [ebp + 8]
mov esi, edi
cmp ecx, 3
jl 0x4b6fe7
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea eax, [edx + edx*2]
sub ecx, eax
mov dword [ebp + 8], ecx
nop dword [eax]
movzx eax, byte [ebx]
shr eax, 2
movzx eax, byte [eax + 0x558278]
mov byte [esi], al
movzx ecx, byte [ebx]
movzx eax, byte [ebx + 1]
and ecx, 3
shr eax, 4
shl ecx, 4
or ecx, eax
movzx eax, byte [ecx + 0x558278]
mov byte [esi + 1], al
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
and ecx, 0xf
shr eax, 6
shl ecx, 2
or ecx, eax
movzx eax, byte [ecx + 0x558278]
mov byte [esi + 2], al
movzx eax, byte [ebx + 2]
add ebx, 3
and eax, 0x3f
movzx eax, byte [eax + 0x558278]
mov byte [esi + 3], al
add esi, 4
sub edx, 1
jne 0x4b6f80
mov ecx, dword [ebp + 8]
test ecx, ecx
jle 0x4b703b
movzx eax, byte [ebx]
shr eax, 2
mov al, byte [eax + 0x558278]
mov byte [esi], al
mov dl, byte [ebx]
and dl, 3
shl dl, 4
cmp ecx, 1
jle 0x4b700e
mov al, byte [ebx + 1]
shr al, 4
or dl, al
movzx eax, dl
mov al, byte [eax + 0x558278]
mov byte [esi + 1], al
cmp ecx, 2
jge 0x4b7023
mov al, 0x3d
jmp 0x4b7031
movzx eax, byte [ebx + 1]
and eax, 0xf
mov al, byte [eax*4 + 0x558278]
mov byte [esi + 2], al
mov byte [esi + 3], 0x3d
add esi, 4
mov byte [esi], 0
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x4b7041
sub edi, ecx
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
ret
Function at 0x4b72f0
Capabilities:
Create thread
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5398d6
mov eax, dword fs:[0]
push eax
sub esp, 0x140
mov eax, dword [0x57c06c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x144], esi
mov dword [ebp - 0x148], esi
call fcn.004ad0c0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x138]
mov dword [esi + 0x124], 0
call fcn.004ad0c0
mov byte [ebp - 0x13c], 0
mov dword [ebp - 0x140], 0
lea edx, [ebp - 0x138]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x140]
call fcn.004af5e0
test al, al
je 0x4b7477
cmp byte [ebp - 0x1c], 0
lea eax, [ebp - 0x12c]
mov ecx, esi
cmove eax, dword [ebp - 0x130]
add eax, 4
push eax
call fcn.004ad300
push 0x551b6c
push 0x561dd0
push esi
call fcn.004ad730
add esp, 0xc
push 0x563aec
push 0x561dd0
push esi
call fcn.004ad730
add esp, 0xc
push 0x234
call fcn.004e24e8
add esp, 4
mov dword [ebp - 0x144], eax
push 0x563f10
push ecx
mov ecx, eax
mov byte [ebp - 4], 3
call fcn.004b70c0
cmp byte [0x59b497], 0
mov dword [esi + 0x128], eax
jne 0x4b73fc
cmp byte [0x59d661], 0
je 0x4b73fc
mov al, 1
jmp 0x4b73fe
xor al, al
test al, al
je 0x4b7477
cmp dword [0x57fb50], 0
je 0x4b7461
push 0xc
call fcn.004eec3a
mov edi, eax
add esp, 4
mov dword [edi], 0x4b7a20
mov dword [edi + 4], esi
cmp dword [0x57fb50], 0
jne 0x4b742d
xor eax, eax
jmp 0x4b7439
push dword [0x57fb58]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [edi + 8], eax
test eax, eax
je 0x4b7454
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
push edi
push 0
push 0x4abdd0
jmp 0x4b7469
push edi
call fcn.004e4a56
add esp, 4
xor eax, eax
jmp 0x4b7471
push esi
push 0
push 0x4b7a20
call fcn.004f72f4
add esp, 0xc
mov dword [esi + 0x124], eax
lea ecx, [ebp - 0x140]
call fcn.004af6c0
cmp byte [ebp - 0x1c], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x4b74ab
mov eax, dword [ebp - 0x130]
lea ecx, [ebp - 0x12c]
cmp eax, ecx
je 0x4b74ab
push eax
call fcn.004e4a56
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004e24d7
mov esp, ebp
pop ebp
ret
Function at 0x4b8b50
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x539aa9
mov eax, dword fs:[0]
push eax
sub esp, 0x150
mov eax, dword [0x57c06c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x154], edi
mov dword [edi + 4], fcn.004eec3a
mov dword [edi + 8], fcn.004ee932
mov dword [edi + 0xc], fcn.004e4a56
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0x8000
mov dword [edi], vtable.t_heap.0
mov dword [ebp - 0x158], edi
mov dword [ebp - 0x154], edi
mov dword [edi + 0x18], 0
mov byte [edi + 0x1c], 1
lea esi, [edi + 0x20]
mov dword [ebp - 4], 0
mov dword [ebp - 0x15c], esi
mov dword [esi], 0
mov dword [esi + 4], 0
call fcn.0049a350
mov dword [esi], eax
xor eax, eax
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 7
mov word [edi + 0x28], ax
mov dword [edi + 0x40], eax
mov dword [ebp - 4], 1
mov dword [edi + 0x48], 0xffffffff
mov dword [edi + 0x4c], 0xffffffff
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], 1
cmp dword [edi + 0x40], eax
jne 0x4b8cc6
lea ecx, [ebp - 0x150]
call fcn.004b8d90
mov byte [ebp - 4], 2
cmp dword [ebp - 0x14c], 0
je 0x4b8c9d
cmp byte [ebp - 0x34], 0
lea eax, [ebp - 0x144]
cmove eax, dword [ebp - 0x148]
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4b8c9d
shr eax, 4
not al
and al, 1
je 0x4b8c9d
cmp byte [ebp - 0x34], 0
lea eax, [ebp - 0x144]
lea ecx, [ebp - 0x28]
cmove eax, dword [ebp - 0x148]
add eax, 4
push eax
call fcn.0040c220
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 3
push eax
mov ecx, edi
call fcn.004bcc10
lea ecx, [ebp - 0x28]
call fcn.0040b3f0
cmp byte [ebp - 0x34], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x4b8cc6
mov eax, dword [ebp - 0x148]
lea ecx, [ebp - 0x144]
cmp eax, ecx
je 0x4b8cc6
push eax
call fcn.004e4a56
add esp, 4
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004e24d7
mov esp, ebp
pop ebp
ret
Function at 0x4ba120
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ecx
cmp dword [0x57fb50], 0
push ebx
mov dword [ebp - 4], 0
je 0x4ba257
push dword [0x57fb58]
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
call ebx
test eax, eax
je 0x4ba187
cmp dword [eax], 0xd
jbe 0x4ba187
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x4ba187
push 0
push 0x59a2e0
push 0x5999ac
push 0
push eax
call fcn.0052cb07
add esp, 0x14
test eax, eax
je 0x4ba187
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 8]
mov dword [ebp - 4], eax
test eax, eax
jne 0x4ba2ad
cmp dword [0x57fb50], 0
je 0x4ba257
push esi
push edi
push 0x5a1e4c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edx, [ebp - 4]
call fcn.004ba7a0
mov esi, dword [ebp - 4]
test esi, esi
jne 0x4ba243
push 0x2014
call fcn.004e24e8
add esp, 4
mov dword [ebp - 4], eax
mov ecx, eax
call fcn.004ba040
cmp dword [0x57fb50], 0
mov esi, eax
je 0x4ba243
push dword [0x57fb58]
call ebx
test eax, eax
je 0x4ba243
cmp dword [eax], 0xd
jbe 0x4ba243
mov eax, dword [eax + 8]
mov ecx, dword [eax + 0x34]
test ecx, ecx
jne 0x4ba23d
push 8
call fcn.004e24e8
mov edi, eax
add esp, 4
mov dword [ebp - 4], edi
mov dword [edi], vtable.t_visualDataItemPtr_class_t_perfManager_.0
mov dword [edi + 4], esi
cmp dword [0x57fb50], 0
je 0x4ba243
push dword [0x57fb58]
call ebx
test eax, eax
je 0x4ba243
cmp dword [eax], 0xd
jbe 0x4ba243
mov eax, dword [eax + 8]
push 0x5a1e4c
mov dword [eax + 0x34], edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ecx]
push esi
call dword [edx + 0xc]
push 0x5a1e4c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x5a220c]
test eax, eax
jne 0x4ba2ad
push 0x5a1e4c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x5a9a54]
test al, 1
jne 0x4ba293
or eax, 1
mov ecx, 0x5a9a58
mov dword [0x5a9a54], eax
call fcn.004ba040
push 0x53bfb0
call fcn.004e27b4
add esp, 4
push 0x5a1e4c
mov dword [0x5a220c], 0x5a9a58
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [0x5a220c]
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x4ba7a0
Capabilities:
Get thread local storage value

Disassembly:
cmp dword [0x57fb50], 0
push esi
mov esi, edx
je 0x4ba7f3
push dword [0x57fb58]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x4ba7f3
cmp dword [eax], 0xd
jbe 0x4ba7f3
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x4ba7f3
push 0
push 0x59a2e0
push 0x5999ac
push 0
push eax
call fcn.0052cb07
mov ecx, eax
add esp, 0x14
test ecx, ecx
je 0x4ba7f3
mov eax, dword [ecx]
call dword [eax + 8]
mov dword [esi], eax
mov al, 1
pop esi
ret
xor al, al
pop esi
ret
Function at 0x4bab70
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push ebp
mov ebp, esp
push dword [ebp + 8]
call fcn.004ba8f0
add esp, 4
test eax, eax
js 0x4bad5c
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, dword [eax + 0xf0]
xor ebx, ebx
shl edi, 2
test edi, edi
jle 0x4babe4
lea esi, [eax + 8]
add eax, 8
lea esi, [esi + edi*4]
mov edx, dword [eax - 8]
lea eax, [eax + 0x10]
mov ecx, dword [esi - 8]
lea esi, [esi - 0x10]
mov dword [eax - 0x18], ecx
add ebx, 4
mov ecx, dword [esi + 0xc]
sub edi, 4
mov dword [esi + 8], edx
mov edx, dword [eax - 0x14]
mov dword [eax - 0x14], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0xc], edx
mov edx, dword [eax - 0x10]
mov dword [eax - 0x10], ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x10], edx
mov edx, dword [eax - 0xc]
mov dword [eax - 0xc], ecx
mov dword [esi + 0x14], edx
cmp ebx, edi
jl 0x4baba4
mov ebx, dword [ebp + 8]
mov edi, 1
cmp dword [ebx + 0xf0], edi
jle 0x4bad57
lea esi, [ebx + 2]
nop dword [eax + eax]
mov edx, dword [esi + 0xe]
lea esi, [esi + 0x10]
mov eax, edx
inc edi
shr eax, 0x18
movzx ecx, byte [eax*4 + str.cc]
movzx eax, byte [esi - 1]
mov ecx, dword [ecx*4 + 0x557278]
movzx eax, byte [eax*4 + str.cc]
xor ecx, dword [eax*4 + 0x556150]
movzx eax, byte [esi]
movzx eax, byte [eax*4 + str.cc]
xor ecx, dword [eax*4 + 0x556e78]
movzx eax, dl
mov edx, dword [esi + 2]
movzx eax, byte [eax*4 + str.cc]
xor ecx, dword [eax*4 + 0x557e78]
mov eax, edx
shr eax, 0x18
mov dword [esi - 2], ecx
movzx ecx, byte [eax*4 + str.cc]
movzx eax, byte [esi + 3]
mov ecx, dword [ecx*4 + 0x557278]
movzx eax, byte [eax*4 + str.cc]
xor ecx, dword [eax*4 + 0x556150]
movzx eax, byte [esi + 4]
movzx eax, byte [eax*4 + str.cc]
xor ecx, dword [eax*4 + 0x556e78]
movzx eax, dl
mov edx, dword [esi + 6]
movzx eax, byte [eax*4 + str.cc]
xor ecx, dword [eax*4 + 0x557e78]
mov eax, edx
shr eax, 0x18
mov dword [esi + 2], ecx
movzx ecx, byte [eax*4 + str.cc]
movzx eax, byte [esi + 7]
mov ecx, dword [ecx*4 + 0x557278]
movzx eax, byte [eax*4 + str.cc]
xor ecx, dword [eax*4 + 0x556150]
movzx eax, byte [esi + 8]
movzx eax, byte [eax*4 + str.cc]
xor ecx, dword [eax*4 + 0x556e78]
movzx eax, dl
mov edx, dword [esi + 0xa]
movzx eax, byte [eax*4 + str.cc]
xor ecx, dword [eax*4 + 0x557e78]
mov eax, edx
shr eax, 0x18
mov dword [esi + 6], ecx
movzx ecx, byte [eax*4 + str.cc]
movzx eax, byte [esi + 0xb]
mov ecx, dword [ecx*4 + 0x557278]
movzx eax, byte [eax*4 + str.cc]
xor ecx, dword [eax*4 + 0x556150]
movzx eax, byte [esi + 0xc]
movzx eax, byte [eax*4 + str.cc]
xor ecx, dword [eax*4 + 0x556e78]
movzx eax, dl
movzx eax, byte [eax*4 + str.cc]
xor ecx, dword [eax*4 + 0x557e78]
mov dword [esi + 0xa], ecx
cmp edi, dword [ebx + 0xf0]
jl 0x4bac00
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret
Function at 0x4bda80
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [0x57c06c]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push 0x200
lea eax, [ebp - 0x204]
mov esi, edx
push 0
push eax
mov edi, ecx
call fcn.004e5200
add esp, 0xc
mov dword [ebp - 0x208], 0
lea eax, [ebp - 0x208]
push eax
push 0x20019
push 0
push 0x563ca4
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x4bdaed
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e24d7
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x210], 1
push eax
lea eax, [ebp - 0x204]
mov dword [ebp - 0x20c], 0x200
push eax
lea eax, [ebp - 0x210]
push eax
push 0
push esi
push dword [ebp - 0x208]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x208]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
jne 0x4bdadb
lea eax, [ebp - 0x204]
mov ecx, edi
push eax
call fcn.004ad300
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
xor ecx, ebp
pop esi
call fcn.004e24d7
mov esp, ebp
pop ebp
ret
Function at 0x4befc0
Capabilities:
Create http request

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x539f76
mov eax, dword fs:[0]
push eax
sub esp, 0x258
mov eax, dword [0x57c06c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
xor bl, bl
push ecx
lea ecx, [ebp - 0x260]
call fcn.004ad210
lea ecx, [ebp - 0x138]
call fcn.004ad0c0
push 0
push 0
push 0
push 0
push esi
call dword [sym.imp.WININET.dll_InternetOpenW]
mov edi, eax
test edi, edi
je 0x4bf0db
mov esi, dword [sym.imp.WININET.dll_InternetSetOptionW]
lea eax, [ebp - 0x264]
push 4
push eax
push 2
push edi
mov dword [ebp - 0x264], 0xbb8
call esi
push 4
lea eax, [ebp - 0x264]
push eax
push 5
push edi
call esi
push 4
lea eax, [ebp - 0x264]
push eax
push 6
push edi
call esi
push 4
lea eax, [ebp - 0x264]
push eax
push 8
push edi
call esi
mov eax, dword [ebp - 0x25c]
mov ecx, 0x800
test eax, eax
je 0x4bf0a2
cmp eax, ecx
cmovb ecx, eax
cmp byte [ebp - 0x144], bl
lea eax, [ebp - 0x254]
cmove eax, dword [ebp - 0x258]
push ecx
add eax, 4
lea ecx, [ebp - 0x138]
push eax
call fcn.004ad370
cmp byte [ebp - 0x1c], 0
lea eax, [ebp - 0x12c]
push 0
cmove eax, dword [ebp - 0x130]
push 0x84200000
push 0
push 0
add eax, 4
push eax
push edi
call dword [sym.imp.WININET.dll_InternetOpenUrlW]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
test eax, eax
je 0x4bf0d8
mov bl, 1
push eax
call esi
push edi
call esi
cmp byte [ebp - 0x1c], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x4bf104
mov eax, dword [ebp - 0x130]
lea ecx, [ebp - 0x12c]
cmp eax, ecx
je 0x4bf104
push eax
call fcn.004e4a56
add esp, 4
cmp byte [ebp - 0x144], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x4bf130
mov eax, dword [ebp - 0x258]
lea ecx, [ebp - 0x254]
cmp eax, ecx
je 0x4bf130
push eax
call fcn.004e4a56
add esp, 4
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004e24d7
mov esp, ebp
pop ebp
ret
Function at 0x4bf7c0
Capabilities:
Check http status code

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x53a07b
mov eax, dword fs:[0]
push eax
mov eax, 0x113c
call fcn.004e3750
mov eax, dword [0x57c06c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1144], edx
mov edi, ecx
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x1138], eax
mov eax, dword [ebp + 0xc]
push 0x1000
mov dword [ebp - 0x1140], eax
lea eax, [ebp - 0x1010]
push 0
push eax
mov dword [esi], 0
call fcn.004e5200
mov ecx, dword [ebp - 0x1138]
lea eax, [ebp - 0x113c]
add esp, 0xc
mov dword [ebp - 0x113c], 0x1000
push 0
push eax
lea eax, [ebp - 0x1010]
push eax
push 0x21
push dword [ecx]
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
jne 0x4bf867
mov dword [esi], 5
jmp 0x4bf97a
mov eax, dword [ebp - 0x113c]
and eax, 0xfffffffe
cmp eax, 0x1000
jae 0x4bf9e6
xor ecx, ecx
mov word [ebp + eax - 0x1010], cx
mov eax, dword [ebp - 0x1138]
push dword [eax]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
lea ecx, [ebp - 0x1134]
call fcn.004ad0c0
mov dword [ebp - 4], 0
lea eax, [edi + 0xc]
cmp byte [edi + 0x11c], 0
jne 0x4bf8b4
mov eax, dword [edi + 8]
add eax, 4
lea edx, [ebp - 0x1010]
push eax
lea ecx, [ebp - 0x1134]
call fcn.004bf420
add esp, 4
test al, al
jne 0x4bf907
mov dword [esi], 7
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
cmp byte [ebp - 0x1018], al
jne 0x4bf97a
mov eax, dword [ebp - 0x112c]
lea ecx, [ebp - 0x1128]
cmp eax, ecx
je 0x4bf97a
push eax
call fcn.004e4a56
add esp, 4
jmp 0x4bf97a
cmp byte [ebp - 0x1018], 0
lea eax, [ebp - 0x1128]
mov ecx, edi
cmove eax, dword [ebp - 0x112c]
add eax, 4
push eax
call fcn.004ad300
cmp byte [ebp - 0x1018], 0
lea eax, [ebp - 0x1128]
mov ecx, dword [ebp - 0x1140]
cmove eax, dword [ebp - 0x112c]
or ecx, 0x200000
push 0
push ecx
push 0
push 0
add eax, 4
push eax
push dword [ebp - 0x1144]
call dword [sym.imp.WININET.dll_InternetOpenUrlW]
mov ecx, dword [ebp - 0x1138]
mov dword [ecx], eax
test eax, eax
jne 0x4bf998
mov dword [esi], 8
lea ecx, [ebp - 0x1134]
call fcn.004ad280
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004e24d7
mov esp, ebp
pop ebp
ret
push 0
lea ecx, [ebp - 0x1148]
mov dword [ebp - 0x1148], 4
push ecx
push ebx
push 0x20000013
push eax
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
jne 0x4bf9c4
mov dword [esi], 6
jmp 0x4bf96f
mov eax, dword [ebx]
cmp eax, 0xc8
je 0x4bf96f
add eax, 0xfffffed4
lea ecx, [ebp - 0x1134]
cmp eax, 0x63
ja 0x4bf975
call fcn.004ad280
mov al, 1
jmp 0x4bf97c
call fcn.004e2ecb
int3
Function at 0x4bfce0
Capabilities:
Send data

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, ecx
mov dword [ebp - 8], eax
mov dword [ebp - 4], 0
push edi
mov edi, edx
test esi, esi
je 0x4bfd1c
mov ebx, dword [sym.imp.WININET.dll_InternetWriteFile]
lea ecx, [ebp - 4]
push ecx
push esi
push edi
push eax
call ebx
test eax, eax
je 0x4bfd25
add edi, dword [ebp - 4]
mov eax, dword [ebp - 8]
sub esi, dword [ebp - 4]
jne 0x4bfd04
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x4bfd30
Capabilities:
Read data from internet
Receive data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x410
mov eax, dword [0x57c06c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x400
xor edi, edi
mov dword [ebp - 0x40c], edx
lea eax, [ebp - 0x404]
mov dword [ebp - 0x410], ecx
push edi
xor esi, esi
push eax
mov dword [ebp - 0x408], esi
call fcn.004e5200
mov ebx, dword [ebp + 8]
add esp, 0xc
test esi, esi
je 0x4bfdd4
mov ecx, dword [ebp - 0x40c]
mov eax, ebx
sub eax, edi
cmp esi, eax
jae 0x4bfe2e
add ecx, edi
jne 0x4bfd9b
call fcn.004f7c83
mov dword [eax], 0x16
jmp 0x4bfdc9
cmp eax, esi
jb 0x4bfdb2
push esi
lea eax, [ebp - 0x404]
push eax
push ecx
call fcn.004e4c80
add esp, 0xc
jmp 0x4bfdce
push eax
push 0
push ecx
call fcn.004e5200
add esp, 0xc
call fcn.004f7c83
mov dword [eax], 0x22
call fcn.004ed734
add edi, dword [ebp - 0x408]
push 0x400
lea eax, [ebp - 0x404]
push 0
push eax
call fcn.004e5200
add esp, 0xc
lea eax, [ebp - 0x408]
push eax
push 0x400
lea eax, [ebp - 0x404]
push eax
push dword [ebp - 0x410]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x4bfe8c
mov esi, dword [ebp - 0x408]
test esi, esi
jne 0x4bfd78
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e24d7
mov esp, ebp
pop ebp
ret
lea edx, [eax - 1]
add ecx, edi
test edx, edx
je 0x4bfe8c
test ecx, ecx
jne 0x4bfe48
call fcn.004f7c83
mov dword [eax], 0x16
jmp 0x4bfe87
cmp eax, edx
jb 0x4bfe70
push edx
lea eax, [ebp - 0x404]
push eax
push ecx
call fcn.004e4c80
add esp, 0xc
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e24d7
mov esp, ebp
pop ebp
ret
push eax
push 0
push ecx
call fcn.004e5200
add esp, 0xc
call fcn.004f7c83
mov dword [eax], 0x22
call fcn.004ed734
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004e24d7
mov esp, ebp
pop ebp
ret
Function at 0x4c0080
Capabilities:
Parse url

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x108c
call fcn.004e3750
mov eax, dword [0x57c06c]
xor eax, esp
mov dword [esp + 0x1088], eax
push ebx
push esi
push edi
sub esp, 0xc
mov dword [esp + 0x18], edx
mov esi, ecx
call fcn.004bfea0
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x4c021c
push 0x800
lea eax, [esp + 0x94]
push 0
push eax
call fcn.004e5200
push 0x800
lea eax, [esp + 0x8a0]
push 0
push eax
call fcn.004e5200
push 0x38
lea eax, [esp + 0x5c]
push 0
push eax
call fcn.004e5200
add esp, 0x24
mov dword [esp + 0x3c], 0x3c
lea eax, [esp + 0x90]
mov dword [esp + 0x50], 0x800
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x890]
mov dword [esp + 0x68], eax
lea eax, [esp + 0x3c]
push eax
push 0
push 0
push esi
mov dword [esp + 0x7c], 0x800
call dword [sym.imp.WININET.dll_InternetCrackUrlA]
mov edx, dword [esp + 0x4c]
sub esp, 0x18
mov ecx, ebx
call fcn.004bff40
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
je 0x4c0219
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x7c]
push str.POST
push eax
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
mov esi, eax
test esi, esi
je 0x4c0213
push str.Content_Type:_application_x_www_form_urlencoded_r_n
lea ecx, [esp + 0x7c]
call fcn.0040c220
cmp dword [esp + 0x8c], 8
lea ecx, [esp + 0x78]
push 0x20000000
push dword [esp + 0x8c]
cmovae ecx, dword [esp + 0x80]
push ecx
push esi
call dword [sym.imp.WININET.dll_HttpAddRequestHeadersW]
mov eax, dword [ebp + 8]
lea edx, [esp + 0x14]
xorps xmm0, xmm0
mov dword [esp + 0x38], 0
sub esp, 0xc
mov dword [esp + 0x20], 0x28
movups xmmword [esp + 0x34], xmm0
mov ecx, esi
mov dword [esp + 0x3c], eax
movups xmmword [esp + 0x24], xmm0
call fcn.004bfff0
add esp, 0xc
test eax, eax
je 0x4c01fa
push dword [ebp + 8]
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.004bfce0
add esp, 4
push 0
push 0
push 0
push esi
call dword [sym.imp.WININET.dll_HttpEndRequestW]
push esi
call edi
lea ecx, [esp + 0x78]
call fcn.0040b3f0
push dword [esp + 0x10]
call edi
push ebx
call edi
mov ecx, dword [esp + 0x1094]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004e24d7
mov esp, ebp
pop ebp
ret