joyce8/EMBER2024-capa huggingface dataset:
Function at 0x451610
Capabilities:
Access peb ldr_data

Disassembly:
push eax
push ebx
mov ebx, dword fs:[0x14]
mov ebx, dword [ebx]
lea eax, [esp + 0xc]
mov dword [ebx + 0x20], eax
mov eax, dword [eax - 4]
mov dword [ebx + 0x24], eax
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x2c], 0
pop ebx
pop eax
ret

Function at 0x451920
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0xc]
lea edx, [esp + 0x10]
jmp 0x451960
movd xmm0, dword [esp + 8]
pinsrw xmm0, ebx, 4
pshufhw xmm0, xmm0, 0
movdqa xmm1, xmm0
pxor xmm0, xmmword [0x6cfec0]
aesenc xmm0, xmm0
cmp ebx, 0x10
jb 0x451b62
je 0x451b4a
cmp ebx, 0x20
jbe 0x451b0c
cmp ebx, 0x40
jbe 0x451a7b
movdqa xmm2, xmm1
movdqa xmm3, xmm1
pxor xmm1, xmmword [0x6cfed0]
pxor xmm2, xmmword [0x6cfee0]
pxor xmm3, xmmword [0x6cfef0]
aesenc xmm1, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
movdqu xmm4, xmmword [eax + ebx - 0x40]
movdqu xmm5, xmmword [eax + ebx - 0x30]
movdqu xmm6, xmmword [eax + ebx - 0x20]
movdqu xmm7, xmmword [eax + ebx - 0x10]
aesenc xmm4, xmm0
aesenc xmm5, xmm1
aesenc xmm6, xmm2
aesenc xmm7, xmm3
dec ebx
shr ebx, 6
movdqu xmm0, xmmword [eax]
movdqu xmm1, xmmword [eax + 0x10]
movdqu xmm2, xmmword [eax + 0x20]
movdqu xmm3, xmmword [eax + 0x30]
aesenc xmm4, xmm0
aesenc xmm5, xmm1
aesenc xmm6, xmm2
aesenc xmm7, xmm3
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
add eax, 0x40
dec ebx
jne 0x451a01
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
pxor xmm4, xmm6
pxor xmm5, xmm7
pxor xmm4, xmm5
movd dword [edx], xmm4
ret
movdqa xmm2, xmm1
movdqa xmm3, xmm1
pxor xmm1, xmmword [0x6cfed0]
pxor xmm2, xmmword [0x6cfee0]
pxor xmm3, xmmword [0x6cfef0]
aesenc xmm1, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
movdqu xmm4, xmmword [eax]
movdqu xmm5, xmmword [eax + 0x10]
movdqu xmm6, xmmword [eax + ebx - 0x20]
movdqu xmm7, xmmword [eax + ebx - 0x10]
aesenc xmm4, xmm0
aesenc xmm5, xmm1
aesenc xmm6, xmm2
aesenc xmm7, xmm3
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
pxor xmm4, xmm6
pxor xmm5, xmm7
pxor xmm4, xmm5
movd dword [edx], xmm4
ret
pxor xmm1, xmmword [0x6cfed0]
aesenc xmm1, xmm1
movdqu xmm2, xmmword [eax]
movdqu xmm3, xmmword [eax + ebx - 0x10]
aesenc xmm2, xmm0
aesenc xmm3, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
aesenc xmm2, xmm2
aesenc xmm3, xmm3
pxor xmm2, xmm3
movd dword [edx], xmm2
ret
movdqu xmm1, xmmword [eax]
aesenc xmm1, xmm0
aesenc xmm1, xmm1
aesenc xmm1, xmm1
movd dword [edx], xmm1
ret
test ebx, ebx
je 0x451b95
add eax, 0x10
test ax, 0xff0
je 0x451b81
movdqu xmm1, xmmword [eax - 0x10]
add ebx, ebx
pand xmm1, xmmword [ebx*8 + 0x613120]
jmp 0x451b4e
movdqu xmm1, xmmword [eax + ebx - 0x20]
add ebx, ebx
pshufb xmm1, xmmword [ebx*8 + 0x613220]
jmp 0x451b4e
aesenc xmm0, xmm0
movd dword [edx], xmm0
ret
Function at 0x452ae0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
push dword fs:[0x14]
mov edx, esp
sub esp, 0x24c
mov dword [esp], esp
mov dword [esp + 4], 0x24c
call fcn.00452570
lea ecx, [esp + 0x30]
mov dword fs:[0x14], ecx
mov ebx, esp
sub esp, 0xe4
mov dword [ecx], esp
mov dword [ebx], esp
mov dword [esp], esp
mov dword [esp + 4], 0xe4
call fcn.00452570
lea ebx, [esp + 0xe4]
mov dword [esp + 0x18], ebx
lea ecx, [esp - 0x8000]
mov dword [esp], ecx
add ecx, 0xad0
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edx
push eax
push dword [ebp + 0x10]
call dword [ebp + 8]
pop ecx
pop eax
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
mov esp, dword [ecx + 4]
pop dword fs:[0x14]
pop edi
pop esi
pop ebx
pop ebp
ret
Function at 0x45fe60
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x460067
sub esp, 0x74
xor ebx, ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
mov ebx, dword [esp + 0x78]
mov ebp, dword [ebx + 0xc]
cmp ebp, 0
je 0x45ff29
mov ebx, dword [esp + 0x78]
cmp ebx, 0
je 0x460060
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
mov ebx, dword [esp + 0x7c]
mov ebp, dword [ebx + 8]
mov dword [esp + 4], ebp
mov dword [esp + 0x4c], eax
mov dword [esp], eax
mov dword [esp + 0x48], ecx
mov ebx, dword [ecx + 0x14]
call ebx
mov edx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x64], ecx
xor ecx, ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x5c], edx
mov eax, edx
mov ebp, dword [esp + 0x28]
cmp ecx, ebp
jge 0x45ff29
mov dword [esp + 0x34], eax
mov ebp, dword [eax]
mov dword [esp + 0x2c], ecx
mov ebx, dword [esp + 0x7c]
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0047c9e0
mov eax, dword [esp + 0x34]
add eax, 4
mov ecx, dword [esp + 0x2c]
inc ecx
mov ebp, dword [esp + 0x28]
cmp ecx, ebp
jl 0x45fefb
mov eax, dword [esp + 0x78]
xor ebx, ebx
mov ebp, dword [eax]
cmp ebp, 0
je 0x46004f
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov ebx, dword [esp + 0x7c]
mov dword [esp], ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 4], ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x80]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x18], ebx
call fcn.00460250
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], eax
cmp eax, 0
je 0x45ffc1
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
add esp, 0x74
ret
mov ebx, dword [esp + 0x78]
mov ebp, dword [ebx + 0xc]
cmp ebp, 0
je 0x46002c
mov ebx, dword [esp + 0x30]
mov dword [esp], ebx
call fcn.0047e4f0
mov esi, dword [esp + 4]
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xc]
cmp eax, 0
jle 0x46002c
mov ebx, dword [esp + 0x78]
cmp ebx, 0
je 0x46004b
mov edi, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov ebx, dword [esp + 0x7c]
mov ebp, dword [ebx + 8]
mov dword [esp + 4], ebp
mov dword [esp + 0x50], esi
mov dword [esp + 8], esi
mov dword [esp + 0x54], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x4c], ecx
mov dword [esp], ecx
mov dword [esp + 0x48], edi
mov ebx, dword [edi + 0x18]
call ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x90], ebx
xor ebx, ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
add esp, 0x74
ret
mov dword [ebx], eax
jmp 0x45fff3
mov ecx, dword [0x6be4e0]
mov eax, dword [0x6be4e4]
jmp 0x45ff3f
mov dword [ebx], eax
jmp 0x45fea6
call fcn.0044ff60
jmp fcn.0045fe60
Function at 0x4f3f00
Capabilities:
Parse credit card information

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4f40f6
mov edx, dword [esp + 8]
movzx ecx, byte [esp + 4]
cmp cl, 0x41
jb 0x4f3f2f
cmp cl, 0x5a
ja 0x4f3f2f
mov byte [esp + 0xc], 0
ret
cmp cl, 0x61
jb 0x4f3f39
cmp cl, 0x7a
jbe 0x4f3f29
cmp cl, 0x30
jb 0x4f3f43
cmp cl, 0x39
jbe 0x4f3f29
cmp edx, 2
je 0x4f4044
cmp edx, 3
je 0x4f4044
cmp cl, 0x2f
ja 0x4f3ff7
cmp cl, 0x2b
ja 0x4f3fd2
cmp cl, 0x24
jne 0x4f3fc6
cmp edx, 4
jg 0x4f3fb0
cmp edx, 1
jne 0x4f3f84
cmp cl, 0x3f
je 0x4f3f7d
mov byte [esp + 0xc], 0
ret
mov byte [esp + 0xc], 1
jmp 0x4f3f7c
cmp edx, 4
jne 0x4f3faa
cmp cl, 0x40
je 0x4f3fa3
cmp cl, 0x2f
je 0x4f3fa3
cmp cl, 0x3f
je 0x4f3fa3
cmp cl, 0x3a
je 0x4f3fa3
mov byte [esp + 0xc], 0
ret
mov byte [esp + 0xc], 1
jmp 0x4f3fa2
mov byte [esp + 0xc], 1
ret
cmp edx, 5
jne 0x4f3fbb
mov byte [esp + 0xc], 1
ret
cmp edx, 6
jne 0x4f3faa
mov byte [esp + 0xc], 0
ret
cmp cl, 0x26
je 0x4f3f68
cmp cl, 0x2b
je 0x4f3f68
jmp 0x4f3faa
cmp cl, 0x2d
ja 0x4f3fe7
cmp cl, 0x2c
je 0x4f3f68
cmp cl, 0x2d
jne 0x4f3faa
mov byte [esp + 0xc], 0
ret
cmp cl, 0x2e
je 0x4f3fe1
cmp cl, 0x2f
je 0x4f3f68
jmp 0x4f3faa
cmp cl, 0x3d
ja 0x4f4019
cmp cl, 0x3a
je 0x4f3f68
cmp cl, 0x3b
je 0x4f3f68
cmp cl, 0x3d
je 0x4f3f68
jmp 0x4f3faa
cmp cl, 0x40
ja 0x4f4035
cmp cl, 0x3f
je 0x4f3f68
cmp cl, 0x40
je 0x4f3f68
jmp 0x4f3faa
cmp cl, 0x5f
je 0x4f3fe1
cmp cl, 0x7e
je 0x4f3fe1
jmp 0x4f3faa
cmp cl, 0x2a
ja 0x4f409a
cmp cl, 0x26
ja 0x4f4077
cmp cl, 0x22
ja 0x4f4068
cmp cl, 0x21
jne 0x4f405e
mov byte [esp + 0xc], 0
ret
cmp cl, 0x22
je 0x4f4058
jmp 0x4f3f55
cmp cl, 0x24
je 0x4f4058
cmp cl, 0x26
je 0x4f4058
jmp 0x4f3f55
cmp cl, 0x28
ja 0x4f408b
cmp cl, 0x27
je 0x4f4058
cmp cl, 0x28
je 0x4f4058
jmp 0x4f3f55
cmp cl, 0x29
je 0x4f4058
cmp cl, 0x2a
je 0x4f4058
jmp 0x4f3f55
cmp cl, 0x3b
ja 0x4f40c2
cmp cl, 0x2c
ja 0x4f40b3
cmp cl, 0x2b
je 0x4f4058
cmp cl, 0x2c
je 0x4f4058
jmp 0x4f3f55
cmp cl, 0x3a
je 0x4f4058
cmp cl, 0x3b
je 0x4f4058
jmp 0x4f3f55
cmp cl, 0x3d
ja 0x4f40d6
cmp cl, 0x3c
je 0x4f4058
cmp cl, 0x3d
je 0x4f4058
jmp 0x4f3f55
cmp cl, 0x3e
je 0x4f4058
cmp cl, 0x5b
je 0x4f4058
cmp cl, 0x5d
je 0x4f4058
jmp 0x4f3f55
call fcn.0044ff60
jmp fcn.004f3f00
Function at 0x4f67f0
Capabilities:
Parse credit card information

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4f6939
sub esp, 0x10
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
xor ecx, ecx
cmp ecx, edx
jge 0x4f6844
cmp ecx, edx
jae 0x4f6932
mov ebp, esi
add ebp, ecx
movzx ebx, byte [ebp]
cmp bl, 0x2a
ja 0x4f68c7
cmp bl, 0x26
ja 0x4f68a6
cmp bl, 0x24
ja 0x4f689a
cmp bl, 0x21
jne 0x4f684d
inc ecx
cmp ecx, edx
jl 0x4f6817
mov byte [esp + 0x1c], 1
add esp, 0x10
ret
cmp bl, 0x24
je 0x4f683f
mov dword [esp + 0xc], ecx
cmp ecx, edx
jae 0x4f6893
mov ebp, esi
add ebp, ecx
movzx ebx, byte [ebp]
mov byte [esp], bl
mov dword [esp + 4], 1
call fcn.004f3f00
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
movzx ebx, byte [esp + 8]
cmp bl, 0
je 0x4f6891
mov byte [esp + 0x1c], 0
add esp, 0x10
ret
jmp 0x4f683f
call fcn.00427990
ud2
cmp bl, 0x25
je 0x4f683f
cmp bl, 0x26
je 0x4f683f
jmp 0x4f6852
cmp bl, 0x28
ja 0x4f68b7
cmp bl, 0x27
je 0x4f683f
cmp bl, 0x28
je 0x4f683f
jmp 0x4f6852
cmp bl, 0x29
je 0x4f683f
cmp bl, 0x2a
je 0x4f683f
jmp 0x4f6852
cmp bl, 0x3b
ja 0x4f68ff
cmp bl, 0x2c
ja 0x4f68e8
cmp bl, 0x2b
je 0x4f683f
cmp bl, 0x2c
je 0x4f683f
jmp 0x4f6852
cmp bl, 0x3a
je 0x4f683f
cmp bl, 0x3b
je 0x4f683f
jmp 0x4f6852
cmp bl, 0x40
ja 0x4f691b
cmp bl, 0x3d
je 0x4f683f
cmp bl, 0x40
je 0x4f683f
jmp 0x4f6852
cmp bl, 0x5b
je 0x4f683f
cmp bl, 0x5d
je 0x4f683f
jmp 0x4f6852
call fcn.00427990
ud2
call fcn.0044ff60
jmp fcn.004f67f0
Function at 0x54b6d0
Capabilities:
Encrypt data using des

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x54b87d
sub esp, 0x3c
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 8
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
cmp ebx, ebp
jge 0x54b83b
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ebx
xor ecx, ecx
cmp ecx, 4
jge 0x54b822
xor eax, eax
cmp eax, 0x10
jge 0x54b818
mov ebx, dword [esp + 0x1c]
mov edi, 7
sub edi, ebx
mov ebx, dword [esp + 0x1c]
mov ebp, 0x6adf80
cmp ebx, 8
jae 0x54b876
shl ebx, 6
add ebp, ebx
mov dword [esp + 0x24], ecx
mov ebx, ecx
mov esi, ebp
cmp ecx, 4
jae 0x54b86f
shl ebx, 4
add esi, ebx
mov dword [esp + 0x20], eax
mov ebp, esi
cmp eax, 0x10
jae 0x54b868
add ebp, eax
movzx ebx, byte [ebp]
xor edx, edx
mov eax, ebx
mov ecx, edi
shl ecx, 2
cmp ecx, 0x40
jae 0x54b85f
cmp ecx, 0x20
jae 0x54b854
shld edx, eax, cl
shl eax, cl
mov ecx, edx
mov edx, 0x6a8400
cmp edx, 0
je 0x54b84d
mov edi, 0x20
mov esi, 0x20
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 8], edx
mov dword [esp + 0x34], edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x10], esi
call fcn.0054b5d0
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, esi
shl esi, 4
add esi, edi
mov ebx, dword [esp + 0x1c]
mov ebp, 0x6d1680
cmp ebx, 8
jae 0x54b846
shl ebx, 8
add ebp, ebx
mov ebx, esi
mov esi, ebp
cmp ebx, 0x40
jae 0x54b83f
shl ebx, 2
add esi, ebx
mov dword [esi], edx
mov eax, edi
inc eax
cmp eax, 0x10
jl 0x54b727
inc ecx
cmp ecx, 4
jl 0x54b71c
mov ebx, dword [esp + 0x2c]
inc ebx
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
cmp ebx, ebp
jl 0x54b709
add esp, 0x3c
ret
call fcn.00427990
ud2
call fcn.00427990
ud2
mov dword [edx], eax
jmp 0x54b7a4
mov edx, eax
shl edx, cl
xor eax, eax
jmp 0x54b794
xor edx, edx
xor eax, eax
jmp 0x54b786
call fcn.00427990
ud2
call fcn.00427990
ud2
call fcn.00427990
ud2
call fcn.0044ff60
jmp fcn.0054b6d0
Function at 0x1002c9d5
Capabilities:
Get memory capacity

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
movzx eax, byte [ebp + 0x10]
test eax, eax
je 0x1002ca23
mov eax, dword [ebp + 0x14]
mov dword [ebp - 8], eax
lea eax, [ebp + 8]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax]
test eax, eax
je 0x1002ca03
push 0
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
jmp 0x1002ca21
mov eax, dword [ebp - 8]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax]
test eax, eax
je 0x1002ca21
push 0
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
jmp 0x1002ca3b
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x14], eax
push 1
push dword [ebp - 0x14]
push 0xe15
call fcn.10028002
add esp, 0xc
mov esp, ebp
pop ebp
ret

Function at 0x1002d595
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
movzx eax, byte [ebp + 0x14]
test eax, eax
je 0x1002d5b6
push 0x343d
push 0
call fcn.10039df5
pop ecx
pop ecx
jmp 0x1002d663
lea eax, [ebp + 0x10]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax]
test eax, eax
je 0x1002d5e9
push 0
push 0x1d98
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x1002d663
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x14], 0x19d6
cmp dword [ebp - 0x14], 0xa7f
jge 0x1002d634
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 4]
push eax
push 0x1000c368
call fcn.10050cbb
add esp, 0xc
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x18]
lea eax, [ecx + eax - 1]
cdq
idiv dword [ebp - 4]
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x1c]
push 0x1000c2b4
call fcn.10050eef
pop ecx
pop ecx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
cmp dword [eax], 0
jl 0x1002d657
mov dword [ebp - 8], 1
jmp 0x1002d65b
and dword [ebp - 8], 0
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 8]
mov dword [eax], ecx
mov esp, ebp
pop ebp
ret
Function at 0x10030763
Capabilities:
Suspend thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
movzx eax, byte [ebp + 0x20]
test eax, eax
je 0x100307ac
mov eax, dword [ebp + 0x10]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 8], eax
push dword [ebp - 4]
push 0x71d
push dword [ebp - 8]
push 0x4387
push 0x6705
push 0x5ef2
push dword [ebp - 0xc]
push 1
call fcn.100307ff
add esp, 0x20
jmp 0x100307fb
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x18], eax
lea eax, [ebp + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax]
test eax, eax
je 0x100307f3
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [ecx], eax
jmp 0x100307fb
push 0
call dword [sym.imp.KERNEL32.dll_SuspendThread]
mov esp, ebp
pop ebp
ret
Function at 0x1003c796
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1006b5a2
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2c
movzx eax, byte [ebp + 0x14]
test eax, eax
je 0x1003c8a3
lea eax, [ebp + 8]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax]
test eax, eax
je 0x1003c88d
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [eax], 0x12
jmp 0x1003c7f9
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
dec eax
mov ecx, dword [ebp - 0x14]
mov dword [ecx], eax
mov eax, dword [ebp - 0x14]
cmp dword [eax], 0xfffffff2
jl 0x1003c88b
push 4
lea ecx, [ebp - 0x38]
call fcn.100140c9
and dword [ebp - 4], 0
mov dword [ebp - 0x18], 0
jmp 0x1003c823
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 4
jge 0x1003c83c
push dword [ebp - 0x18]
lea ecx, [ebp - 0x38]
call fcn.10014130
mov dword [eax], 0xd05b
jmp 0x1003c81c
push 3
lea ecx, [ebp - 0x38]
call fcn.10014130
cmp dword [eax], 0
je 0x1003c859
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.1001412b
jmp 0x1003c88b
mov byte [ebp - 0xd], 0
movzx eax, byte [ebp - 0xd]
test eax, eax
je 0x1003c87a
push 0
push 0x1d98
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.1001412b
jmp 0x1003c7ee
jmp 0x1003c8a1
mov byte [ebp - 0xe], 0
movzx eax, byte [ebp - 0xe]
test eax, eax
je 0x1003c8a1
push 0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1003c8c4
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x28], eax
push dword [ebp - 0x28]
push 0x6b8f
push 0
push dword [ebp - 0x2c]
call fcn.1002dae7
add esp, 0x10
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
Function at 0x1003d21c
Capabilities:
Suspend thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
movzx eax, byte [ebp + 0x14]
test eax, eax
je 0x1003d299
lea eax, [ebp + 0x18]
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
movzx eax, byte [eax]
test eax, eax
je 0x1003d280
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
push 0x6ef6
mov eax, dword [ebp - 0x1c]
push dword [eax]
mov eax, dword [ebp - 0x20]
push dword [eax]
push 1
push 0
push 0x3881
call fcn.10037d84
add esp, 0x18
jmp 0x1003d294
mov byte [ebp - 1], 0
movzx eax, byte [ebp - 1]
test eax, eax
je 0x1003d294
push 0
call dword [sym.imp.KERNEL32.dll_SuspendThread]
jmp 0x1003d36d
lea eax, [ebp + 0x10]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax]
test eax, eax
je 0x1003d35e
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax]
test eax, eax
je 0x1003d35c
mov dword [ebp - 0x34], 0x18cb
cmp dword [ebp - 0x34], 0x5be
jge 0x1003d34d
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x3c]
push eax
push 0x1000c2bc
call fcn.10050cbb
add esp, 0xc
cmp eax, 2
jne 0x1003d34d
cvtsi2sd xmm0, dword [ebp - 0x38]
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.1003d199
pop ecx
pop ecx
fstp qword [ebp - 0x44]
movsd xmm0, qword [ebp - 0x44]
cvtsi2sd xmm1, dword [ebp - 0x3c]
push ecx
push ecx
movsd qword [esp], xmm1
movsd qword [ebp - 0x4c], xmm0
call fcn.1003d199
pop ecx
pop ecx
fstp qword [ebp - 0x54]
movsd xmm0, qword [ebp - 0x4c]
subsd xmm0, qword [ebp - 0x54]
push ecx
push ecx
movsd qword [esp], xmm0
push 0x1000c66c
call fcn.10050eef
add esp, 0xc
jmp 0x1003d2dd
push 0xf44
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
jmp 0x1003d36d
push 0
push 0xc19
push 0
call dword [sym.imp.GDI32.dll_GetEnhMetaFileHeader]
mov esp, ebp
pop ebp
ret
Function at 0x10065cc5
Capabilities:
Link many functions at runtime
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x1006f770]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_EncodePointer]
push esi
push edi
mov dword [ebp - 0x1c], eax
xor esi, esi
mov eax, dword [ebp + 0xc]
push esi
mov dword [ebp - 0x20], eax
call ebx
mov edi, eax
mov dword [ebp - 0x18], edi
call fcn.10055918
mov dword [ebp - 0x14], eax
cmp dword [0x1065bf48], esi
jne 0x10065db8
push 0x800
push esi
push 0x1000c120
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
jne 0x10065d45
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
jne 0x10065e98
push esi
push esi
push 0x1000c120
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
je 0x10065e98
push 0x1000c138
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x10065e98
push eax
call ebx
push 0x1000c144
push edi
mov dword [0x1065bf48], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push 0x1000c154
push edi
mov dword [0x1065bf4c], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push 0x1000c168
push edi
mov dword [0x1065bf50], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x1065bf58], eax
test eax, eax
je 0x10065db5
push 0x1000c184
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x1065bf54], eax
mov edi, dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x10065ddd
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x10065dd0
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [ebp - 0x14], esi
je 0x10065df2
push 4
pop eax
jmp 0x10065e9a
cmp dword [ebp - 0x14], esi
je 0x10065df2
push dword [0x1065bf48]
call dword [sym.imp.KERNEL32.dll_DecodePointer]
push 3
jmp 0x10065dd7
mov eax, dword [0x1065bf54]
mov ebx, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, edi
je 0x10065e50
cmp dword [0x1065bf58], edi
je 0x10065e50
push eax
call ebx
push dword [0x1065bf58]
mov dword [ebp - 0x14], eax
call ebx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x10065e50
test eax, eax
je 0x10065e50
call ecx
test eax, eax
je 0x10065e45
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call dword [ebp - 0x18]
test eax, eax
je 0x10065e45
test byte [ebp - 8], 1
jne 0x10065e50
mov edi, dword [ebp + 0x10]
or edi, 0x200000
jmp 0x10065e80
mov eax, dword [0x1065bf4c]
cmp eax, edi
je 0x10065e7d
push eax
call ebx
test eax, eax
je 0x10065e7d
call eax
mov esi, eax
test esi, esi
je 0x10065e7d
mov eax, dword [0x1065bf50]
cmp eax, edi
je 0x10065e7d
push eax
call ebx
test eax, eax
je 0x10065e7d
push esi
call eax
mov esi, eax
mov edi, dword [ebp + 0x10]
push dword [0x1065bf48]
call ebx
test eax, eax
je 0x10065e98
push edi
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
push esi
call eax
jmp 0x10065e9a
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10052f89
mov esp, ebp
pop ebp
ret
Function at 0x100137df
Capabilities:
Generate random numbers via winapi

Disassembly:
call fcn.100b0a27
sub byte [eax], al
add byte [eax - 0x64846fe], al
sub esp, dword [ebx + 0x14]
xchg esp, eax
or esi, dword [ebp + 0xd508a03]
sbb eax, 0x6e64b0a0
dec ebx
jae 0x1001385c
dec edi
lds esi, [edx - 0x7b1f398d]
out dx, al
out dx, eax
ljmp 0xfdb3
mov ebp, esp
push esi
xor esi, esi
cmp dword [0x10120740], 1
je 0x10013871
mov esi, 0x8000ffff
jmp 0x10013899
push dword [ebp + 8]
push dword [ebp + 0xc]
push dword [0x10120730]
call dword [sym.imp.ADVAPI32.dll_CryptGenRandom]
test eax, eax
jne 0x100138be
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
call fcn.100db7e0
mov esi, eax
test esi, esi
jge 0x100138be
mov eax, dword [0x1011faf4]
cmp eax, 0x1011faf4
je 0x100138be
test byte [eax + 0x3c], 2
je 0x100138be
push esi
push 0x100034d8
push 0xa
push dword [eax + 0x34]
push dword [eax + 0x30]
call fcn.100db7e0
mov eax, esi
pop esi
pop ebp
ret 8