joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1001b760
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6d8
push esi
push edi
mov dword [ebp - 4], 0
mov ecx, 0x10
mov esi, dword [ebp + 8]
lea edi, [ebp - 0x50]
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x50]
cmp eax, 0x5a4d
jne 0x1001b997
cmp dword [ebp - 0x14], 0x40
jbe 0x1001b7ba
mov ecx, dword [ebp - 0x14]
sub ecx, 0x40
push ecx
mov edx, dword [ebp + 8]
add edx, 0x40
push edx
mov eax, 1
imul ecx, eax, 0
lea edx, [ebp + ecx - 0x6d8]
push edx
call fcn.10074f50
add esp, 0xc
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x14]
mov dword [ebp - 0xc], eax
mov ecx, 0x3e
mov esi, dword [ebp - 0xc]
lea edi, [ebp - 0x148]
rep movsd dword es:[edi], dword [esi]
cmp dword [ebp - 0x148], 0x4550
jne 0x1001b997
movzx ecx, word [ebp - 0x142]
imul edx, ecx, 0x28
push edx
mov eax, dword [ebp - 0xc]
add eax, 0xf8
push eax
mov ecx, 0x28
imul edx, ecx, 0
lea eax, [ebp + edx - 0x2d8]
push eax
call fcn.10074f50
add esp, 0xc
push 0x40
push 0x103000
mov ecx, dword [ebp - 0xf8]
push ecx
push 0
push 0
push 0
call fcn.100012c0
call eax
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x1001b997
mov ecx, 0x10
lea esi, [ebp - 0x50]
mov edi, dword [ebp - 4]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 4]
add edi, dword [ebp - 0x14]
mov ecx, 0x3e
lea esi, [ebp - 0x148]
rep movsd dword es:[edi], dword [esi]
movzx edx, word [ebp - 0x142]
imul eax, edx, 0x28
push eax
mov ecx, 0x28
imul edx, ecx, 0
lea eax, [ebp + edx - 0x2d8]
push eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
lea eax, [edx + ecx + 0xf8]
push eax
call fcn.10074f50
add esp, 0xc
cmp dword [ebp - 0x14], 0x40
jbe 0x1001b8b4
mov ecx, dword [ebp - 0x14]
sub ecx, 0x40
push ecx
mov edx, 1
imul eax, edx, 0
lea ecx, [ebp + eax - 0x6d8]
push ecx
mov edx, dword [ebp - 4]
add edx, 0x40
push edx
call fcn.10074f50
add esp, 0xc
mov dword [ebp - 8], 0
jmp 0x1001b8c6
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
movzx ecx, word [ebp - 0x142]
cmp dword [ebp - 8], ecx
jge 0x1001b90c
imul edx, dword [ebp - 8], 0x28
mov eax, dword [ebp + 8]
add eax, dword [ebp + edx - 0x2c4]
mov dword [ebp - 0x10], eax
imul ecx, dword [ebp - 8], 0x28
mov edx, dword [ebp + ecx - 0x2c8]
push edx
mov eax, dword [ebp - 0x10]
push eax
imul ecx, dword [ebp - 8], 0x28
mov edx, dword [ebp - 4]
add edx, dword [ebp + ecx - 0x2cc]
push edx
call fcn.10074f50
add esp, 0xc
jmp 0x1001b8bd
mov eax, dword [ebp - 4]
push eax
call fcn.1002a5b0
test eax, eax
jne 0x1001b938
push 0x8000
push 0
mov ecx, dword [ebp - 4]
push ecx
push 0
push 0
call fcn.100012f0
call eax
mov dword [ebp - 4], 0
jmp 0x1001b997
mov edx, dword [ebp - 4]
push edx
call fcn.10004da0
test eax, eax
jne 0x1001b964
push 0x8000
push 0
mov eax, dword [ebp - 4]
push eax
push 0
push 0
call fcn.100012f0
call eax
mov dword [ebp - 4], 0
jmp 0x1001b997
movzx ecx, word [ebp - 0x132]
and ecx, 0x2000
jne 0x1001b97c
mov edx, dword [ebp - 4]
push edx
call fcn.1002a540
mov eax, dword [ebp - 4]
push eax
call fcn.1000a380
mov eax, dword [ebp - 0x120]
add eax, dword [ebp - 4]
push 0
push 1
push dword [ebp - 4]
call eax
mov eax, dword [ebp - 4]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
Function at 0x1002c610
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [ebp + 8]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
cmp dword [ecx], 0x4550
je 0x1002c640
xor eax, eax
jmp 0x1002c6cb
mov edx, 8
imul eax, edx, 0
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 4]
add edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
add ecx, dword [eax + 0x1c]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
add eax, dword [edx + 0x20]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
add edx, dword [ecx + 0x24]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 8], 0
jmp 0x1002c68b
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
cmp edx, dword [ecx + 0x14]
jae 0x1002c6c9
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
add eax, dword [edx + ecx*4]
push eax
call fcn.10046050
test eax, eax
jne 0x1002c6c7
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x1c]
movzx eax, word [edx + ecx*2]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 4]
add edx, dword [ecx + eax*4]
mov eax, edx
jmp 0x1002c6cb
jmp 0x1002c682
xor eax, eax
mov esp, ebp
pop ebp
ret 8
Function at 0x10045f40
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
pop ebp
ret

Function at 0x10045f90
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp + 8]
movsx eax, byte [edx + ecx]
test eax, eax
jne 0x10045faf
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 4], ecx
jmp 0x10045fdc
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp + 8]
movsx edx, byte [ecx + eax]
xor edx, dword [ebp + 0xc]
imul eax, edx, 0x1000193
push eax
mov ecx, 1
shl ecx, 0
add ecx, dword [ebp + 8]
push ecx
call fcn.10045f90
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret 8
Function at 0x1007d390
Capabilities:
Query environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
mov esi, eax
test esi, esi
je 0x1007d42d
push ebx
push esi
call fcn.1007d359
xor ebx, ebx
sub eax, esi
push ebx
push ebx
push ebx
push ebx
sar eax, 1
push eax
push esi
push ebx
push ebx
mov dword [ebp - 8], eax
call fcn.1007d2a2
add esp, 0x24
mov dword [ebp - 4], eax
test eax, eax
jne 0x1007d3da
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x1007d42c
push edi
push eax
call fcn.1007a38c
mov edi, eax
pop ecx
push ebx
test edi, edi
jne 0x1007d3fa
call fcn.1007a352
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x1007d42b
push ebx
push dword [ebp - 4]
push edi
push dword [ebp - 8]
push esi
push ebx
push ebx
call fcn.1007d2a2
add esp, 0x20
test eax, eax
jne 0x1007d419
push edi
call fcn.1007a352
jmp 0x1007d421
push ebx
call fcn.1007a352
mov ebx, edi
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov eax, ebx
pop edi
pop ebx
pop esi
leave
ret

Function at 0x1007d62b
Capabilities:
Allocate thread local storage

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x10088448
push 0x10088440
push str.FlsAlloc
push 0x1e
call fcn.1007d549
mov esi, eax
add esp, 0x10
test esi, esi
je 0x1007d65f
push dword [ebp + 8]
mov ecx, esi
call dword [0x100861fc]
call esi
jmp 0x1007d665
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
pop esi
pop ebp
ret 4

Function at 0x1007d6a9
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x10088458
push 0x10088450
push str.FlsGetValue
push 0x20
call fcn.1007d549
mov esi, eax
add esp, 0x10
test esi, esi
je 0x1007d6e0
push dword [ebp + 8]
mov ecx, esi
call dword [0x100861fc]
call esi
pop esi
pop ebp
ret 4
pop esi
pop ebp
jmp dword [sym.imp.KERNEL32.dll_TlsGetValue]
Function at 0x10084c40
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x10084c6d
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x10084c6d
mov edx, 0x10b
xor eax, eax
cmp word [ecx + 0x18], dx
sete al
pop ebp
ret
xor eax, eax
pop ebp
ret
Function at 0x4b6d60
Capabilities:
Get common file path

Disassembly:
push ebx
add esp, 0xfffffe00
mov ebx, eax
lea eax, [esp + 0x100]
push eax
push 0xff
call sub.kernel32.dll_GetTempPathA
push esp
push 0
push 0x4b6da4
lea eax, [esp + 0x10c]
push eax
call sub.kernel32.dll_GetTempFileNameA
mov edx, ebx
mov eax, esp
call fcn.00409784
add esp, 0x200
pop ebx
ret

Function at 0x4b95ea
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword [esp + 8]
push esi
push edi
xor edi, edi
movzx eax, word [ecx + 0x14]
inc ecx
adc al, 0xf
mov bh, 0x71
push es
test esi, esi
lea eax, [eax + ecx + 0x18]
Function at 0x4b9c0c
Capabilities:
Inspect section memory permissions

Disassembly:
cmp dword [eax], ebx
je 0x4b9c5e
mov edx, dword [eax + 4]
lea ecx, [eax + 8]
add edx, eax
mov dword [ebp + 8], ecx
cmp ecx, edx
push eax
add al, 0x8d
dec eax
or byte [ebx], al
ror byte [ecx - 0x35c4f7b3], 1
jae 0x4b9c59
mov ecx, dword [ebp + 8]
movzx ecx, word [ecx]
mov edx, ecx
and edx, 0xf000
cmp edx, 0x3000
jne 0x4b9c43
and ecx, 0xfff
mov edx, esi
sub edx, dword [edi + 0x34]
add ecx, esi
add ecx, dword [eax]
add dword [ecx], edx
jmp 0x4b9c4b
cmp edx, ebx
jne 0x4b9d99
mov ecx, dword [eax + 4]
add dword [ebp + 8], 2
add ecx, eax
cmp dword [ebp + 8], ecx
jb 0x4b9c1a
add eax, dword [eax + 4]
jmp 0x4b9c07
mov dword [ebp + 0xc], ebx
jmp 0x4b9c69
mov edi, dword [ebp - 0x88]
mov eax, dword [ebp + 0xc]
cmp ax, word [edi + 6]
jne 0x4b9c81
mov edx, dword [ebp - 0xb4]
xor ecx, ecx
mov edi, 0x60000000
jmp 0x4b9c9f
movzx eax, ax
lea eax, [eax + eax*4]
mov ecx, dword [edi + eax*8 + 0x104]
mov edx, dword [edi + eax*8 + 0x108]
lea eax, [edi + eax*8 + 0xf8]
mov edi, dword [eax + 0x24]
lea eax, [edx + ecx - 1]
xor edx, edx
div dword [ebp - 0xac]
xor edx, edx
mov dword [ebp - 0x44], eax
mov eax, ecx
div dword [ebp - 0xac]
cmp eax, dword [ebp - 0x44]
ja 0x4b9cfd
mov edx, edi
mov dword [ebp + 8], edi
and dword [ebp + 8], 0x40000000
mov dword [ebp + 0x10], edi
and edx, 0x20000000
and dword [ebp + 0x10], 0x80000000
mov ecx, dword [ebp + 0x18]
cmp edx, ebx
je 0x4b9ce4
or byte [eax + ecx], 1
cmp dword [ebp + 8], ebx
je 0x4b9ced
or byte [eax + ecx], 2
cmp dword [ebp + 0x10], ebx
je 0x4b9cf7
add ecx, eax
or byte [ecx], 4
inc eax
cmp eax, dword [ebp - 0x44]
jbe 0x4b9cd9
inc dword [ebp + 0xc]
mov eax, dword [ebp - 0x88]
mov cx, word [ebp + 0xc]
cmp cx, word [eax + 6]
jbe 0x4b9c63
mov dword [ebp + 8], esi
xor edi, edi
mov eax, dword [ebp + 0x18]
push 2
pop ecx
movzx eax, byte [edi + eax]
sub eax, ecx
je 0x4b9d4a
dec eax
je 0x4b9d41
sub eax, 3
je 0x4b9d38
mov dword [ebp - 4], 0x40
jmp 0x4b9d67
mov dword [ebp - 4], 4
jmp 0x4b9d4d
mov dword [ebp - 4], 0x20
jmp 0x4b9d4d
mov dword [ebp - 4], ecx
lea eax, [ebp - 4]
push eax
push dword [ebp - 4]
push dword [ebp - 0xac]
push dword [ebp + 8]
call dword [ebp - 0xbc]
test eax, eax
je 0x4b9d99
mov eax, dword [ebp - 0xac]
add dword [ebp + 8], eax
inc edi
cmp edi, dword [ebp - 0x8c]
jbe 0x4b9d19
mov eax, dword [ebp - 0x88]
mov edi, dword [eax + 0x28]
add edi, esi
call fcn.004b95aa
sahf
jne 0x4b9ddc
sar edi, 1
jne 0x4b9da4
push 1
push esi
call edi
mov eax, esi
jmp 0x4b9da5
push 0x8000
push ebx
push esi
call dword [ebp - 8]
xor eax, eax
rcr byte [edi + 0x5e], 0x5b
pop edi
pop esi
pop ebx
leave
ret
cld
invalid

Function at 0x4b9ea0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
inc dword [eax]
and byte [ebp - 0x3c3], 0
mov byte [ebp - 0x3c2], 0x99
and byte [ebp - 0x3c1], 0
mov byte [ebp - 0x3c0], 0x21
mov byte [ebp - 0x3bf], 3
mov byte [ebp - 0x3be], 0x12
mov byte [ebp - 0x3bd], 0x2b
mov byte [ebp - 0x3bc], 9
mov byte [ebp - 0x3bb], 2
mov byte [ebp - 0x3ba], 0x13
mov byte [ebp - 0x3b9], 0xa
mov byte [ebp - 0x3b8], 3
invalid
invalid
Function at 0x4bb0f0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
test dword [eax + 0x6afffff8], ecx
xor byte [ebp - 0x77b7b], cl
call dword [eax - 0x18]
mov bh, 0xe4
invalid
Function at 0x414dee
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
xor dword [ecx], esi
add ecx, 4
and edi, ebx
sub edx, edi
cmp ecx, eax
jne fcn.00414dee
dec ebx
ret

Function at 0x108e8058
Capabilities:
Decompress data using aplib

Disassembly:
call 0x108e81a8
push ebx
mov ebx, esp
push ebx
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 0x10]
cld
mov dl, 0x80
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
mov ebx, 2
add dl, dl
jne 0x108e807e
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x108e806a
add dl, dl
jne 0x108e8089
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x108e80dc
xor eax, eax
add dl, dl
jne 0x108e8096
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x108e817d
add dl, dl
jne 0x108e80a5
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x108e80b0
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x108e80bb
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x108e80c6
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
je 0x108e80d2
push edi
mov eax, eax
sub edi, eax
mov al, byte [edi]
pop edi
mov byte [edi], al
inc edi
mov ebx, 2
jmp 0x108e8075
mov eax, 1
add dl, dl
jne 0x108e80ea
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x108e80f5
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x108e80e1
sub eax, ebx
mov ebx, 1
jne 0x108e8128
mov ecx, 1
add dl, dl
jne 0x108e810e
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x108e8119
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x108e8105
push esi
mov esi, edi
sub esi, ebp
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x108e8075
dec eax
shl eax, 8
mov al, byte [esi]
inc esi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x108e813f
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x108e814a
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x108e8136
cmp eax, 0x7d00
jae 0x108e816d
cmp eax, 0x500
jb 0x108e8168
inc ecx
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x108e8075
cmp eax, 0x7f
ja 0x108e8170
add ecx, 2
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x108e8075
mov al, byte [esi]
inc esi
xor ecx, ecx
shr al, 1
je 0x108e819e
adc ecx, 2
mov ebp, eax
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
mov ebx, 1
jmp 0x108e8075
pop ebx
sub edi, dword [ebx + 0x10]
mov eax, edi
pop ebx
ret 0x10
Function at 0x433000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
nop
mov eax, section..text
nop
mov ebx, 0x40de38
mov ecx, 0xdd7408
nop
nop
nop
nop
test eax, eax
nop
je 0x43304e
nop
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
cmp eax, ebx
nop
jne 0x433024
nop
nop
nop
nop
nop
mov eax, section..data
nop
mov ebx, 0x4304d8
mov ecx, 0x60874584
nop
nop
nop
nop
nop
test eax, eax
je 0x433084
nop
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
add eax, 4
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
jne 0x43306c
nop
nop
popal
nop
nop
nop
jmp 0x431219
Function at 0x405e40
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x45a0f8]
jne 0x405e4a
repz ret
jmp fcn.0040a412

Function at 0x40a135
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
call fcn.00407ebb
and dword [ebp - 4], 0
cmp dword [0x45c994], 0
mov ebx, eax
jne 0x40a1e6
push 0x401a3c
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x40a297
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x401a30
push edi
call esi
test eax, eax
je 0x40a297
push eax
call fcn.00407e49
mov dword [esp], 0x401a20
push edi
mov dword [0x45c994], eax
call esi
push eax
call fcn.00407e49
mov dword [esp], 0x401a0c
push edi
mov dword [0x45c998], eax
call esi
push eax
call fcn.00407e49
mov dword [esp], 0x4019f0
push edi
mov dword [0x45c99c], eax
call esi
push eax
call fcn.00407e49
pop ecx
mov dword [0x45c9a4], eax
test eax, eax
je 0x40a1e6
push 0x4019d8
push edi
call esi
push eax
call fcn.00407e49
pop ecx
mov dword [0x45c9a0], eax
mov eax, dword [0x45c9a0]
cmp eax, ebx
je 0x40a23e
cmp dword [0x45c9a4], ebx
je 0x40a23e
push eax
call fcn.00407ec4
push dword [0x45c9a4]
mov esi, eax
call fcn.00407ec4
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x40a23e
test edi, edi
je 0x40a23e
call esi
test eax, eax
je 0x40a235
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x40a235
test byte [ebp - 0xc], 1
jne 0x40a23e
or dword [ebp + 0x10], 0x200000
jmp 0x40a277
mov eax, dword [0x45c998]
cmp eax, ebx
je 0x40a277
push eax
call fcn.00407ec4
pop ecx
test eax, eax
je 0x40a277
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x40a277
mov eax, dword [0x45c99c]
cmp eax, ebx
je 0x40a277
push eax
call fcn.00407ec4
pop ecx
test eax, eax
je 0x40a277
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x45c994]
call fcn.00407ec4
pop ecx
test eax, eax
je 0x40a297
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x40a299
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret

Function at 0x403d61
Capabilities:
Encode data using xor

Disassembly:
push eax
push ebx
mov eax, 0x499
mov ecx, 0x404498
mov bl, byte [ecx]
sub bl, 0xf2
rol bl, 2
sub bl, cl
ror bl, 1
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d6d
mov eax, 0x261d
mov ecx, 0x403764
mov bl, byte [ecx]
rol bl, 7
ror bl, 2
sub bl, cl
xor bl, 0x91
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d8a
pop ebx
pop eax
add ecx, 0x2c1a
jmp ecx
Function at 0x940058
Capabilities:
Decompress data using aplib

Disassembly:
call 0x9401a8
push ebx
mov ebx, esp
push ebx
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 0x10]
cld
mov dl, 0x80
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
mov ebx, 2
add dl, dl
jne 0x94007e
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x94006a
add dl, dl
jne 0x940089
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x9400dc
xor eax, eax
add dl, dl
jne 0x940096
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x94017d
add dl, dl
jne 0x9400a5
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x9400b0
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x9400bb
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x9400c6
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
je 0x9400d2
push edi
mov eax, eax
sub edi, eax
mov al, byte [edi]
pop edi
mov byte [edi], al
inc edi
mov ebx, 2
jmp 0x940075
mov eax, 1
add dl, dl
jne 0x9400ea
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x9400f5
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x9400e1
sub eax, ebx
mov ebx, 1
jne 0x940128
mov ecx, 1
add dl, dl
jne 0x94010e
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x940119
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x940105
push esi
mov esi, edi
sub esi, ebp
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x940075
dec eax
shl eax, 8
mov al, byte [esi]
inc esi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x94013f
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x94014a
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x940136
cmp eax, 0x7d00
jae 0x94016d
cmp eax, 0x500
jb 0x940168
inc ecx
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x940075
cmp eax, 0x7f
ja 0x940170
add ecx, 2
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x940075
mov al, byte [esi]
inc esi
xor ecx, ecx
shr al, 1
je 0x94019e
adc ecx, 2
mov ebp, eax
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
mov ebx, 1
jmp 0x940075
pop ebx
sub edi, dword [ebx + 0x10]
mov eax, edi
pop ebx
ret 0x10
Function at 0x433000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..text
nop
push 4
nop
nop
nop
nop
nop
pop edi
nop
nop
nop
nop
nop
cmp eax, 0
nop
nop
nop
je 0x433072
nop
nop
nop
nop
mov ebx, 0x40de38
nop
nop
mov ecx, ebx
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
push eax
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
div edi
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
pop eax
nop
nop
nop
mov esi, 0x4863709e
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
loop 0x433060
nop
mov eax, section..data
nop
nop
cmp eax, 0
nop
nop
je 0x4330d2
nop
nop
nop
mov ebx, 0x4304d8
nop
nop
nop
mov ecx, ebx
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
push eax
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
nop
div edi
xchg ecx, eax
nop
nop
nop
nop
nop
nop
pop eax
nop
nop
nop
nop
nop
mov esi, 0x78ef767b
nop
nop
xor dword [eax], esi
nop
nop
nop
add eax, edi
nop
nop
nop
nop
nop
nop
nop
loop 0x4330c0
nop
nop
popal
nop
nop
nop
jmp 0x431219
Function at 0x10018110
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, ecx
cmp dword [edi], 0
jne 0x10018179
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [edi], eax
test eax, eax
je 0x10018195
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.HttpInit
push eax
call esi
push str.HttpUninit
push dword [edi]
mov dword [edi + 4], eax
call esi
push str.zlib_uncompress
push dword [edi]
mov dword [edi + 8], eax
call esi
push str.zlib_compress
push dword [edi]
mov dword [edi + 0x10], eax
call esi
push str.zlib_compressBound
push dword [edi]
mov dword [edi + 0x14], eax
call esi
mov dword [edi + 0x18], eax
mov eax, dword [edi + 4]
pop esi
test eax, eax
je 0x10018179
call eax
mov dword [edi + 0xc], eax
cmp dword [edi + 8], 0
je 0x10018195
cmp dword [edi + 4], 0
je 0x10018195
cmp dword [edi + 0xc], 0
je 0x10018195
mov eax, 1
pop edi
pop ebp
ret 4
xor eax, eax
pop edi
pop ebp
ret 4
Function at 0x100181a0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1017dd36
mov eax, dword fs:[0]
push eax
sub esp, 0x41c
mov eax, dword [0x101dd594]
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 ebx, ecx
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.10150460
add esp, 0xc
lea eax, [ebp - 0x420]
push 0x104
push eax
push 0x10000000
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov edi, dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp - 0x420]
push eax
call edi
mov esi, dword [ebp + 8]
test esi, esi
je 0x10018221
lea eax, [ebp - 0x420]
push eax
call edi
sub esi, 1
jne 0x10018213
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.10150460
add esp, 0xc
lea eax, [ebp - 0x420]
push str.NetBridge.dll
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x424]
call fcn.10016670
push dword [ebp - 0x424]
mov dword [ebp - 4], 0
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1001827d
xor esi, esi
jmp 0x10018293
push dword [ebp - 0x424]
call fcn.100d3e20
add esp, 4
mov esi, eax
neg esi
sbb esi, esi
neg esi
mov edx, dword [ebp - 0x424]
or edi, 0xffffffff
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100182ba
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test esi, esi
je 0x100182da
lea eax, [ebp - 0x218]
mov ecx, ebx
push eax
call fcn.10018110
test eax, eax
je 0x100182da
mov eax, 1
jmp 0x10018374
push str.NetBase.dll
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x428]
call fcn.10016670
push dword [ebp - 0x428]
mov dword [ebp - 4], 1
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x10018320
xor esi, esi
jmp 0x10018336
push dword [ebp - 0x428]
call fcn.100d3e20
add esp, 4
mov esi, eax
neg esi
sbb esi, esi
neg esi
mov edx, dword [ebp - 0x428]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x10018358
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test esi, esi
je 0x10018372
lea eax, [ebp - 0x218]
mov ecx, ebx
push eax
call fcn.10018110
test eax, eax
jne 0x100182d0
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 - 0x10]
xor ecx, ebp
call fcn.10128191
mov esp, ebp
pop ebp
ret 4