joyce8/EMBER2024-capa huggingface dataset:
Function at 0x484ce8
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push ebx
xor eax, eax
push ebp
push 0x484d60
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.0048126c
test al, al
jne 0x484d43
mov eax, dword [sym.imp.AIMP3.dll__Aimpcore_TAIMPCore_]
call sub.AIMP3.dll__Aimpcore_TAIMPCore_CheckForRunningCopy_qqrv
test al, al
je 0x484d3f
lea eax, [ebp - 4]
call sub.AIMP3.dll__System__WStrClr_qqrpv
push eax
call sub.kernel32.dll_GetCommandLineW
mov edx, eax
lea eax, [ebp - 8]
call sub.AIMP3.dll__System__WStrFromPWChar_qqrr17System_WideStringpb
mov eax, dword [ebp - 8]
mov edx, 0x484d74
pop ecx
call sub.AIMP3.dll__Aimpbaseparsers_WideFindSwitch_qqrx17System_WideStringt1r17System_WideString
test al, al
je 0x484d43
xor ebx, ebx
jmp 0x484d45
mov bl, 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x484d67
lea eax, [ebp - 8]
mov edx, 2
call sub.AIMP3.dll__System__WStrArrayClr_qqrpvi
ret
Function at 0x7e9225
Capabilities:
Execute anti-debugging instructions

Disassembly:
mov dword [esp], ebp
call fcn.007e922e
stc

Function at 0x7e922e
Capabilities:
Execute anti-debugging instructions

Disassembly:
push 0xf07dabd0
jmp 0x7e924f
mov dword [esp + 0x3c], edi
jmp 0x7e9248
lea esp, [esp + 0x3c]
pushfd
jmp 0x7e91f9
mov cx, 0x6299
xchg bl, ah
sbb al, dl
jmp 0x7e927a

Function at 0x7e9270
Capabilities:
Execute anti-debugging instructions

Disassembly:
dec ebp
lea esp, [esp + 1]
jmp 0x7e92ec
mov dword [esp + 0x34], esi
push ebx
call fcn.007e9225
jg 0x7e9290
jle 0x7e9290
mov edi, dword [esp + 0x2c]
mov bx, word [esp]
lea ebp, [esp + 0x4c]
sub esp, 0x11
jmp 0x7e9306
sub esp, 0xb0
jmp 0x7e9329
lea ebp, [esp + 0x10]
not dh
jmp 0x7e92d6
je 0x7e9259
dec ebp
lea esp, [esp + 1]
jmp 0x7e92ec
jmp 0x7e9355
mov esi, esp
bswap ecx
sets ah
rcr cl, 5
js 0x7e9313
mov cl, 0xd9
jmp 0x7e9357
mov bx, bp
btr ebx, esi
not bx
rdtsc
lea ebx, [edi*4]
pushfd
jmp 0x7e937a
mov cl, 0xd9
mov ecx, edi
mov dl, 0x21
lea eax, reloc.MSVFW32.dll_DrawDibDraw
inc bl
jmp 0x7e93ca
bsr eax, edi
ja 0x7e939f
jbe 0x7e939f
xchg edx, eax
adc al, 0x8a
in eax, dx
sbb al, 0xdd
add al, 0x81
adc dword [eax - 0x7d], esi
xor eax, 0x153a83c0
not bx
rdtsc
lea ebx, [edi*4]
jmp 0x7e934b
lea esp, [esp + 4]
add edi, 0x2854cf79
lea eax, reloc.MSVFW32.dll_DrawDibDraw
jmp 0x7e944d
dec edi
xchg ebx, eax
not ax
rdtsc
mov edx, dword [esp]
neg bh
jmp 0x7e93ee
jge 0x7e9339
mov bx, bp
btr ebx, esi
jmp 0x7e9391
push esp
jmp 0x7e940c
jp 0x7e9406
dec dh
bsr edx, esi
jmp 0x7e93d8
dec dh
bsr edx, esi
push esp
lea esp, [esp + 4]
neg edi
xchg ah, dh
mov eax, 0x5518e02
jmp 0x7e9436
mov bl, 0x94
pushfd
jmp 0x7e9465
lea esp, [esp + 4]
sub edi, 0x3dacc5de
bswap edx
bswap ebx
xchg ah, dh
jmp 0x7e973b
sub edx, ebp
jl 0x7e941b
mov bl, 0x94
pushfd
mov bx, word [esp + 3]
jmp 0x7e9420
mov bx, cx
mov dx, word [esp]
lea ebx, [eax + esi]
lea edx, reloc.MSVFW32.dll_DrawDibDraw
setns dl
jmp 0x7e93b4
mov bx, word [esp + 3]
jmp 0x7e9420
jmp 0x7e95df
lea ebx, reloc.MSVFW32.dll_DrawDibDraw
setle dl
rdtsc
bsr edx, ebp
jp 0x7e96ff
jnp 0x7e96ff

Function at 0x7e936e
Capabilities:
Execute anti-debugging instructions

Disassembly:
push dword [esp + 3]
call fcn.007e9270
jmp 0x7e921c
mov word [esp], ax
lea esp, [esp + 2]
mov dword [esp + 0xc], ebp
pushal
push dword [esp + 9]
js 0x7e9246
push dword [esp + 3]
jmp 0x7e9220
mov byte [esp], ch
pop word [esp]
jmp 0x7e92b6

Function at 0x7eb813
Capabilities:
Execute anti-debugging instructions

Disassembly:
and al, 0xa
lea esp, [esp + 4]
jmp 0x7eb7e0
lea esp, [esp + 2]
jmp 0x7eb7fa
lea esp, [esp + 2]
add ebp, 4
bswap ebx
lea edx, [ecx + edi]
mov ax, word [esp]
jmp 0x7eb80c
rdtsc
jmp 0x7eae12
pushal
push word [esp + 0x15]
jmp 0x7eb860
lea esp, [esp + 2]
mov dword [esp + 0x1c], eax
call fcn.007eb840
push ss
mov dword [ecx], ebx
js 0x7eb7bc
cmp eax, 0x9d62cba8
mov dword [esp + 0xa], edx
lea esp, [esp + 4]
jmp 0x7eb7f6
jns 0x7eb81f
lea esp, [esp + 2]
mov dword [esp + 0x1c], eax
jmp 0x7eb827
Function at 0x7f8a19
Capabilities:
Encode data using xor

Disassembly:
mov eax, ecx
jmp 0x7ddb7f
xor ecx, ecx
cmp dword [esp + 4], ecx
jbe 0x7ddb99
push esi
movzx esi, byte [ecx + edx]
rol eax, 7
xor eax, esi
inc ecx
cmp ecx, dword [esp + 8]
jb 0x7ddb88
pop esi
jmp 0x7ddba4
ret 4
push sp
lea esp, [esp + 2]
jmp 0x7ddb72

Function at 0x86a85b
Capabilities:
Execute anti-debugging instructions

Disassembly:
neg ah
jl 0x869b34
lea eax, [ecx*4]
mov ax, word [esp]
jmp 0x869b91
pushfd
xchg al, ah
jmp 0x869b4e
neg eax
jmp 0x869b6c
lea eax, [ecx*4]
mov ax, word [esp]
jmp 0x869b1e
pushfd
xchg al, ah
lea esp, [esp + 4]
dec dx
jmp 0x869b03
neg ax
jmp 0x869c91
rol dx, 0
clc
jne 0x869b56
neg ax
jmp 0x869c91
call fcn.00869b95
rcr byte [esi + 0x13], 1
int1
bound edx, qword [eax]
mov edx, 0xa8ba4142
sbb byte [eax - 0x3ea93004], dl
neg eax
jmp 0x869b6c
jmp 0x869c62
lea edx, [edi + ebp]
mov ax, 0xa853
mov dl, byte [esp]
jmp 0x869c48
mov edx, dword [esp]
jmp 0x869c32
mov dx, word [esp]
jmp 0x869c0a
inc bx
rdtsc
xchg ah, dh
mov eax, 0xe3c4e46d
not dh
jmp 0x869ce4
neg dx
xchg edx, eax
xchg dx, ax
mov ax, word [esp]
rdtsc
jmp 0x869c16
add edi, 2
lea eax, [esp + edi]
rol edx, cl
jne 0x869c2c
mov dx, word [esp]
lea edx, [edi + ebp]
mov ax, 0xa853
mov dl, byte [esp]
neg dx
jmp 0x869c4b
add cx, dx
bswap edx
setge dh
cmp dl, 0x71
jp 0x869b7b
jnp 0x869bbb
neg dh
jg 0x869cc2
mov dx, sp
xchg dh, al
mov dx, 0x9e4
push si
jmp 0x869d09
inc bx
jmp 0x869ca8
mov dx, sp
xchg dh, al
jmp 0x869ccd
mov dx, 0x9e4
push si
lea eax, [ebx*4]
lea esp, [esp + 2]
jmp 0x869cf3
lea eax, [ecx*4]
bswap eax
xor al, 0x30
jns 0x869cbe
js 0x869cbe
ror bx, 0
xchg edx, eax
not al
sub esp, 6
jl 0x869d12
sub esp, 9
jmp 0x869f41
lea eax, [ebx*4]
jmp 0x869cda
jmp 0x869fb8
lea esp, [esp + 4]
add dx, 0xa2d7
neg ax
jns 0x869b4b
js 0x869b19
add esp, 0xe
jmp 0x869fbe
sub esp, 9
add esp, 0xe
neg al
lea esp, [esp + 2]
jmp 0x869d28
push word [esp + 2]
jbe 0x86a238
neg al
lea esp, [esp + 2]
jmp 0x869d28
jmp 0x86a70e

Function at 0x8ea809
Capabilities:
Execute anti-debugging instructions

Disassembly:
pop dx
mov eax, edi
mov dx, word [esp]
jmp 0x8ea7f3
Function at 0x8ee558
Capabilities:
Execute anti-debugging instructions

Disassembly:
xchg bp, ax
and di, cx
jmp 0x8ee7d8
cpuid
pop ax
cpuid
lea esp, [esp + 2]
clc
setl dl
jmp 0x8ee727
dec al
mov bh, al
xchg word [esp + 2], dx
mov si, 0x8f05
xchg bl, dh
mov bp, ax
jmp 0x8ee5ef
ror edi, cl
pop edi
lea edi, [ebp*4]
stc
xchg edi, eax
jmp 0x8ee5c7
mov dl, cl
pop dword [esp + 3]
bswap eax
pop ebx
inc si
mov bx, 0xda70
jmp 0x8ee58c
sub edx, 0xae52d9ec
lea eax, reloc.MSVFW32.dll_DrawDibDraw
push sp
shl edx, cl
shr ebp, cl
mov si, word [esp]
jmp 0x8ee61b
mov cx, word [esp + 0xd]
add esp, 7
pop word [esp]
cld
btr cx, si
bt edx, edx
jmp 0x8ee5a0
mov si, 0x5b33
mov si, di
mov ecx, dword [esp]
mov word [esp], sp
jmp 0x8ee644
xchg dx, ax
not ecx
xchg ebp, eax
mov ecx, 0xf298680f
neg dx
mov cl, 0xe5
jmp 0x8ee605
rdtsc
mov byte [esp], al
mov bp, word [esp + 1]
pop ebx
sete dh
jmp 0x8ee65a
mov dx, 0x734c
bts di, dx
xchg byte [esp], cl
clc
bsr eax, eax
push word [esp + 2]
jmp 0x8ee62e
mov al, byte [esp]
mov ch, 0x14
add esp, 0
btc ebx, edi
mov bh, byte [esp]
rcr cl, 5
jmp 0x8ee6e7
lea edi, [ebx*4]
xchg byte [esp], dl
btr di, bx
push word [esp]
mov dl, 0x9b
sub esp, 0xd
jmp 0x8ee5b6
lea eax, [ecx + ebx]
mov byte [esp], dh
bt edx, edx
xchg dx, ax
xchg dl, ah
not bl
jmp 0x8ee6c9
lea esp, [esp]
lea ebx, [edi - 0x42]
bsr si, bx
cld
add esp, 0
clc
jmp 0x8ee698
mov bh, byte [esp]
xchg edx, ebp
neg al
lea esi, [edx + edx]
call fcn.008ee70f
or al, 0x8b
sbb edi, dword [esi - 0x73]
mov byte fs:[0x34c5a22c], al
fidivr dword [ecx + 0x310ffb98]
rdtsc
lea ecx, [eax + ecx]
bswap eax
cpuid
mov dh, 0x2e
mov ecx, 0xef1e1ddf
jmp 0x8ee6b8
pushfd
mov cx, ax
mov bp, 0x9cca
mov ecx, ebx
cpuid
push word [esp]
jmp 0x8ee67c
mov word [esp], sp
neg ebp
mov cl, 5
mov word [esp + 2], di
mov word [esp], bx
mov cx, bx
jmp 0x8ee563

Function at 0x8ee983
Capabilities:
Execute anti-debugging instructions

Disassembly:
sub esp, 8
mov byte [esp + 1], ch
mov byte [esp + 3], ah
jmp 0x8ee9a5

Function at 0x8ef2c5
Capabilities:
Execute anti-debugging instructions
Packed with generic packer
Parse pe header

Disassembly:
mov dword [esp + 0x24], ebp
call 0x8ef2a4
Function at 0x8ef77e
Capabilities:
Execute anti-debugging instructions

Disassembly:
mov byte [esp], bh
mov edx, eax
mov dx, 0x7817
mov di, si
jmp 0x8ef05c
mov si, word [esp]
pop ax
mov cx, 0x1d50
mov di, 0x523e
push ax
clc
jmp 0x8eeff6
mov byte [esp], al
mov edx, 0x8b302cee
mov byte [esp], bl
mov bx, 0x5edb
not ecx
not dx
jmp 0x8ef00c
mov byte [esp], dl
bswap ebx
cmc
bts edx, ebx
add esp, 0
bsf cx, bp
jmp 0x8ef0a8
mov ecx, 0x9a7b2481
mov dl, cl
mov word [esp], cx
mov edx, 0x2de2523b
rdtsc
mov ecx, dword [esp]
jmp 0x8ef046
lea edx, reloc.MSVFW32.dll_DrawDibDraw
xchg si, ax
mov byte [esp], ch
xchg bp, ax
mov si, word [esp]
mov dx, si
jmp 0x8ef030
push dword [esp + 0x1c]
xchg bx, ax
popal
stc
pop ax
cpuid
jmp 0x8ef0d6
mov ch, byte [esp]
not bp
pushal
xchg byte [esp + 0x19], ah
dec di
cpuid
jmp 0x8ef092
and bp, 0xd62a
bsf bp, bx
pop dx
sub esp, 9
mov bl, byte [esp + 7]
setp al
jmp 0x8ef101
xor dh, cl
pop word [esp]
bsr ecx, ecx
adc cx, 0x16f8
mov byte [esp], dl
xchg ch, bl
jmp 0x8ef0b9
mov dword [esp], ebp
not bp
pop di
pop edi
add esp, 0
mov ecx, dword [esp]
jmp 0x8ef115
xchg si, dx
lea esp, [esp + 2]
bswap ecx
mov cx, bp
mov ebp, eax
mov byte [esp + 5], ch
jmp 0x8ef0eb
bsr bp, dx
lea esi, [edx + 0xa5]
xchg byte [esp], ah
std
add esp, 0
jmp 0x8ef144
pop word [esp + 2]
ror eax, cl
pushfd
pop ecx
lea esp, [esp + 4]
mov ah, 0xff
jmp 0x8ef07b
lea ebx, [ebx*4]
xchg byte [esp], ah
add esp, 0
inc bh
lea ecx, reloc.MSVFW32.dll_DrawDibDraw
not ah
jmp 0x8ef5b1
neg esi
mov dword [esp + 2], edx
xchg cx, di
xchg cl, al
lea ebp, [esi*4]
mov bl, 0x84
jmp 0x8ef130
cmp dx, di
xchg byte [esp], al
rdtsc
add esp, 0
mov byte [esp], dl
cmc
jmp 0x8ef492
xchg byte [esp], al
mov dx, 0x25e3
mov eax, dword [esp]
mov edx, eax
mov edi, dword [esp]
add esp, 0
jmp 0x8ef17f
xchg edx, eax
shl esi, cl
mov ebx, 0x2c43d4b6
stc
mov edi, 0x942421e9
cmc
jmp 0x8ef195
add esp, 2
lea esp, [esp + 3]
popfd
lea esp, [esp + 4]
call fcn.008ef1c5
mov byte [esp + 7], ch
pushfd
push sp
add esp, 0xa
lea esp, [esp + 0xc]
push word [esp + 2]
jmp 0x8ef1dc
lea ebx, [esi*4]
rol eax, cl
cld
lea esp, [esp + 1]
popal
sub esp, 0x13
jmp 0x8ef303
ror al, 6
mov cx, 0xcf6c
not ax
std
mov byte [esp], bh
lea esi, [esi*4]
jmp 0x8ef33e
setne dh
rdtsc
xchg ebx, ebp
lea esp, [esp]
xchg dl, bl
mov esi, dword [esp]
jmp 0x8ef398
mov bp, word [esp]
lea edx, [edi + ebp]
setle cl
mov bp, 0x7596
rdtsc
mov ebx, esi
jmp 0x8ef1b4
pop dword [esp + 3]
rdtsc
push word [esp + 8]
xchg byte [esp + 2], bl
xchg dx, ax
pop dword [esp + 2]
jmp 0x8ef169
lea ecx, reloc.MSVFW32.dll_DrawDibDraw
xchg al, cl
mov di, bx
mov eax, 0xfb631eb8
jmp 0x8ef62f
Function at 0x4067e0
Capabilities:
Get common file path

Disassembly:
push ecx
push ebp
push esi
push 0x54ac88
xor ebp, ebp
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
test esi, esi
jne 0x4067fa
pop esi
pop ebp
pop ecx
ret
push ebx
push edi
push str.LoadLibraryExA
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, dword [esp + 0x18]
mov edi, eax
push 0x54ac74
push ebx
mov dword [esp + 0x18], edi
call fcn.0050d910
add esp, 8
test eax, eax
je 0x406846
test edi, edi
je 0x406837
push 8
push 0
push ebx
call edi
pop edi
pop ebx
pop esi
mov ebp, eax
pop ebp
pop ecx
ret
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
pop edi
pop ebx
pop esi
mov ebp, eax
pop ebp
pop ecx
ret
test edi, edi
je 0x40686c
push str.AddDllDirectory
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40686c
push 0x800
push 0
push ebx
call edi
pop edi
pop ebx
pop esi
mov ebp, eax
pop ebp
pop ecx
ret
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov edi, eax
test edi, edi
je 0x406920
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x406885
sub eax, edx
lea eax, [eax + edi + 1]
push eax
call dword [0x5910bc]
mov esi, eax
add esp, 4
test esi, esi
je 0x406916
push edi
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x406916
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4068b3
sub eax, edx
mov ecx, 0x5c
mov word [eax + esi], cx
mov eax, esi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4068d0
sub eax, edx
lea edx, [eax + esi]
mov ecx, ebx
sub edx, ebx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x4068e0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x40690d
push 8
push 0
push esi
call eax
push esi
mov ebp, eax
call dword [0x5910c0]
add esp, 4
pop edi
pop ebx
pop esi
mov eax, ebp
pop ebp
pop ecx
ret
push esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebp, eax
push esi
call dword [0x5910c0]
add esp, 4
pop edi
pop ebx
pop esi
mov eax, ebp
pop ebp
pop ecx
ret

Function at 0x406930
Capabilities:
Initialize winsock library

Disassembly:
sub esp, 0x190
test byte [esp + 0x194], 2
je 0x406973
lea eax, [esp]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x406967
mov eax, dword [esp]
cmp al, 2
jne 0x406961
shr eax, 8
cmp al, 2
je 0x406973
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, 2
add esp, 0x190
ret
call fcn.0041aff0
test eax, eax
jne 0x4069cf
push str.iphlpapi.dll
call fcn.004067e0
add esp, 4
mov dword [0x596cd0], eax
test eax, eax
je 0x4069a7
push str.if_nametoindex
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4069a7
mov dword [0x596cd4], eax
push 3
push 2
push 0
push 6
call fcn.0041b1c0
add esp, 0x10
neg eax
sbb eax, eax
neg eax
push 0x5998b8
mov dword [0x5998c0], eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xor eax, eax
add esp, 0x190
ret
Function at 0x40d970
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
mov esi, dword [esp + 0x30]
mov eax, dword [esi + 0x78]
push edi
mov dword [esp + 0x34], eax
test eax, eax
je 0x40db45
lea eax, [esp + 0x20]
push eax
call fcn.0041add0
mov ecx, dword [eax + 4]
mov edx, dword [eax + 0xc]
mov ebp, dword [eax]
mov ebx, dword [eax + 8]
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
add esp, 4
push 0
push 0x3e8
push eax
push edi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], edx
call fcn.0050cdb0
add ebp, eax
adc dword [esp + 0x14], edx
imul eax, eax, 0x3e8
sub edi, eax
imul edi, edi, 0x3e8
add ebx, edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x18], ebx
cmp ebx, 0xf4240
jl 0x40d9fc
add ebp, 1
adc dword [esp + 0x14], 0
sub ebx, 0xf4240
mov dword [esp + 0x10], ebp
mov dword [esp + 0x18], ebx
mov eax, dword [esi + 0xf60]
mov edi, dword [esp + 0x40]
lea ecx, [esi + 0xf60]
test eax, eax
je 0x40da2c
mov edx, dword [eax]
cmp dword [edx + 0x20], edi
je 0x40da20
mov eax, dword [eax + 8]
test eax, eax
jne 0x40da10
jmp 0x40da2c
push 0
push eax
push ecx
call fcn.004372c0
add esp, 0xc
mov ecx, edi
lea eax, [esp + 0x10]
mov edx, esi
call fcn.0040d8c0
mov eax, dword [esi + 0xf28]
or eax, dword [esi + 0xf2c]
jne 0x40da53
cmp dword [esi + 0xf30], eax
je 0x40dadd
mov ecx, dword [esi + 0xf28]
mov edx, dword [esi + 0xf2c]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esi + 0xf30]
mov dword [eax + 4], edx
mov edx, dword [esi + 0xf34]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x2c]
sub esp, 0x10
mov eax, esp
mov dword [eax], ebp
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], edx
call fcn.0041ae70
add esp, 0x20
test edx, edx
jg 0x40db45
jl 0x40daad
test eax, eax
jne 0x40db45
mov edi, dword [esp + 0x34]
mov edx, dword [edi + 0x5c]
lea eax, [edi + 0x5c]
push eax
lea ecx, [esi + 0xf38]
push ecx
push edx
call fcn.0043dc70
add esp, 0xc
test eax, eax
je 0x40dae1
push eax
push str.Internal_error_removing_splay_node___d_n
push esi
call fcn.0040ffd0
add esp, 0xc
jmp 0x40dae1
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0xf28], ebp
mov dword [esi + 0xf2c], eax
mov dword [esi + 0xf30], ebx
mov dword [esi + 0xf34], ecx
mov dword [esi + 0xf58], esi
mov eax, dword [edi + 0x5c]
mov ecx, dword [esi + 0xf28]
lea edx, [esi + 0xf38]
push edx
mov edx, dword [esi + 0xf2c]
push eax
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esi + 0xf30]
mov dword [eax + 4], edx
mov edx, dword [esi + 0xf34]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
call fcn.0043da50
add esp, 0x18
mov dword [edi + 0x5c], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
Function at 0x40fe70
Capabilities:
Receive data
Receive data on socket

Disassembly:
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
push 0
push eax
push ecx
push edx
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x40feb3
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, dword [esp + 0x10]
xor ecx, ecx
cmp eax, 0x2733
sete cl
mov dword [edx], 0
mov eax, ecx
neg eax
sbb eax, eax
and eax, 0x19
add eax, 0x38
ret
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
xor eax, eax
ret

Function at 0x40ff30
Capabilities:
Write file on windows

Disassembly:
push esi
mov esi, dword [esp + 8]
push edi
xor edi, edi
cmp dword [esi + 0xbfc], edi
je 0x40ffc5
cmp dword [esi + 0x620], edi
je 0x40ff85
push 1
push esi
call fcn.0040dc70
mov eax, dword [esi + 0x5b4]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [esi + 0x620]
push edx
push eax
push esi
call ecx
push 0
push esi
mov edi, eax
call fcn.0040dc70
add esp, 0x24
mov eax, edi
pop edi
pop esi
ret
mov eax, dword [esp + 0x10]
test eax, eax
js 0x40ffc5
cmp eax, 2
jg 0x40ffc5
mov edx, dword [esi + 0x5b0]
push edx
push 1
lea eax, [eax + eax*2 + 0x54b814]
push 2
push eax
call fcn.005066de
mov ecx, dword [esi + 0x5b0]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push ecx
push 1
push edx
push eax
call fcn.005066de
add esp, 0x20
mov eax, edi
pop edi
pop esi
ret

Function at 0x4100a0
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x104
push esi
mov esi, dword [esp + 0x10c]
cmp dword [esi + 0xbfc], 0
jne 0x4100c4
cmp dword [esi + 0x5b8], 0
je 0x4101a0
mov ecx, dword [esp + 0x110]
lea eax, [esp + 0x114]
push eax
push ecx
lea edx, [esp + 0xc]
push 0x100
push edx
call fcn.00419970
lea eax, [esp + 0x14]
add esp, 0x10
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4100f0
sub eax, edx
mov edx, dword [esi + 0x5b8]
push edi
mov edi, eax
test edx, edx
je 0x410127
cmp dword [esi + 0x1230], 0
jne 0x410127
lea ecx, [esp + 8]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x410113
mov dword [esi + 0x1230], 1
mov byte [esp + edi + 8], 0xa
inc edi
cmp dword [esi + 0xbfc], 0
je 0x41019f
cmp dword [esi + 0x620], 0
je 0x410173
push 1
push esi
call fcn.0040dc70
mov eax, dword [esi + 0x5b4]
mov edx, dword [esi + 0x620]
push eax
push edi
lea ecx, [esp + 0x18]
push ecx
push 0
push esi
call edx
push 0
push esi
call fcn.0040dc70
add esp, 0x24
pop edi
pop esi
add esp, 0x104
ret
mov eax, dword [esi + 0x5b0]
push eax
push 1
push 2
push 0x54b814
call fcn.005066de
mov ecx, dword [esi + 0x5b0]
push ecx
push 1
lea edx, [esp + 0x20]
push edi
push edx
call fcn.005066de
add esp, 0x20
pop edi
pop esi
add esp, 0x104
ret
Function at 0x4104a0
Capabilities:
Receive data
Receive data on socket

Disassembly:
mov edx, dword [ebx + 0x5f0]
push ebp
mov ebp, dword [ebx + eax*4 + 0x420]
mov ecx, eax
add ecx, ecx
push esi
lea esi, [ebx + ecx*8 + 0x448]
push edi
mov edi, dword [esi + 4]
sub edi, dword [esi + 8]
test byte [edx + 0x40], 3
je 0x410542
cmp dword [ebx + eax*4 + 0x438], 0x4101b0
jne 0x410542
cmp dword [esi], 0
je 0x4104dd
test edi, edi
je 0x410542
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push ebp
call fcn.00437800
add esp, 0x14
cmp eax, 0xffffffff
je 0x410542
test al, 1
je 0x410542
cmp dword [esi], 0
jne 0x41052b
mov eax, dword [ebx]
mov eax, dword [eax + 0x97c]
add eax, eax
push eax
mov dword [esi + 4], eax
call dword [0x5910bc]
xor ecx, ecx
add esp, 4
mov dword [esi], eax
cmp eax, ecx
jne 0x410522
pop edi
pop esi
lea eax, [ecx + 0x1b]
pop ebp
ret
mov edi, dword [esi + 4]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ecx
mov ecx, dword [esi]
add ecx, dword [esi + 8]
push 0
push edi
push ecx
push ebp
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x410542
add dword [esi + 8], eax
pop edi
pop esi
xor eax, eax
pop ebp
ret

Function at 0x410550
Capabilities:
Send data
Send data on socket

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x100
push ebx
mov ebx, dword [esp + 0x108]
push esi
mov esi, dword [ebx + eax*4 + 0x420]
call fcn.004104a0
test eax, eax
je 0x41058c
mov eax, dword [esp + 0x11c]
pop esi
mov dword [eax], 0x1b
or eax, 0xffffffff
pop ebx
add esp, 0x100
ret
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x114]
push edi
push 0
push ecx
push edx
push esi
call dword [sym.imp.WS2_32.dll_send]
mov edi, dword [esp + 0x120]
mov esi, eax
mov dword [edi], 0
cmp esi, 0xffffffff
jne 0x410610
push ebp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebp, eax
cmp ebp, 0x2733
jne 0x4105e0
pop ebp
xor esi, esi
mov dword [edi], 0x51
pop edi
mov eax, esi
pop esi
pop ebx
add esp, 0x100
ret
push 0x100
lea eax, [esp + 0x14]
push eax
push ebp
call fcn.00405770
mov ecx, dword [ebx]
push eax
push str.Send_failure:__s
push ecx
call fcn.004100a0
mov edx, dword [ebx]
add esp, 0x18
mov dword [edx + 0xec4], ebp
mov dword [edi], 0x37
pop ebp
pop edi
mov eax, esi
pop esi
pop ebx
add esp, 0x100
ret

Function at 0x4142f0
Capabilities:
Hash data using djb2

Disassembly:
push ebx
push esi
mov esi, ecx
push edi
lea edi, [esi + eax]
mov ebx, 0x1505
cmp esi, edi
jae 0x41431e
movzx eax, byte [esi]
push eax
call fcn.00418b30
mov edx, ebx
shl edx, 5
movsx ecx, al
add ebx, edx
inc esi
add esp, 4
xor ebx, ecx
cmp esi, edi
jb 0x414301
pop edi
pop esi
movzx eax, bl
pop ebx
ret

Function at 0x414330
Capabilities:
Encode data using xor
Hash data using djb2

Disassembly:
sub esp, 0x14
push esi
mov esi, eax
test esi, esi
je 0x41437e
lea eax, [esp + 4]
push eax
push esi
push 2
call fcn.0043e9b0
add esp, 0xc
test eax, eax
jne 0x41437e
lea ecx, [esp + 8]
push ecx
push esi
push 0x17
call fcn.0043e9b0
add esp, 0xc
test eax, eax
jne 0x41437e
lea edx, [esp + 4]
push edx
call fcn.00414290
add esp, 4
mov ecx, eax
mov eax, dword [esp + 4]
pop esi
add esp, 0x14
jmp fcn.004142f0
xor eax, eax
pop esi
add esp, 0x14
ret
Function at 0x416440
Capabilities:
Set socket configuration

Disassembly:
sub esp, 0x14
xor eax, eax
cmp dword [esi + 0xc34], eax
push 4
lea ecx, [esp + 4]
push ecx
setne al
push 8
push 0xffff
push edi
mov dword [esp + 0x14], eax
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jns 0x41647e
push edi
push str.Failed_to_set_SO_KEEPALIVE_on_fd__d_n
push esi
call fcn.0040ffd0
add esp, 0xc
add esp, 0x14
ret
mov edx, dword [esi + 0xb48]
push edx
mov dword [esp + 0xc], 1
call fcn.004131e0
imul eax, eax, 0x3e8
mov dword [esp + 4], eax
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0xb4c]
push eax
call fcn.004131e0
imul eax, eax, 0x3e8
add esp, 8
push 0
push 0
lea ecx, [esp + 0xc]
push ecx
push 0
push 0
push 0xc
lea edx, [esp + 0x20]
push edx
push 0x98000004
push edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x34], eax
call dword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
je 0x4164f7
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push edi
push str.Failed_to_set_SIO_KEEPALIVE_VALS_on_fd__d:__d_n
push esi
call fcn.0040ffd0
add esp, 0x10
add esp, 0x14
ret