joyce8/EMBER2024-capa huggingface dataset:
Function at 0x41edd7
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 0x41ee74
push ebx
push esi
call fcn.0041eda0
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.0041d23e
add esp, 0x24
mov dword [ebp - 4], eax
test eax, eax
jne 0x41ee21
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x41ee73
push edi
push eax
call fcn.0041a631
mov edi, eax
pop ecx
push ebx
test edi, edi
jne 0x41ee41
call fcn.00417e1d
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x41ee72
push ebx
push dword [ebp - 4]
push edi
push dword [ebp - 8]
push esi
push ebx
push ebx
call fcn.0041d23e
add esp, 0x20
test eax, eax
jne 0x41ee60
push edi
call fcn.00417e1d
jmp 0x41ee68
push ebx
call fcn.00417e1d
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 0x41ee77
Capabilities:
Query environment variable

Disassembly:
mov edi, edi
push esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
mov esi, eax
test esi, esi
jne 0x41ee88
pop esi
ret
push ebx
push edi
push esi
call fcn.0041eda0
mov ebx, eax
sub ebx, esi
and ebx, 0xfffffffe
push ebx
call fcn.0041a631
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x41eeb0
push ebx
push esi
push edi
call fcn.0040c300
add esp, 0xc
push 0
call fcn.00417e1d
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov eax, edi
pop edi
pop ebx
pop esi
ret
Function at 0x424c05
Capabilities:
Clear file content

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
mov ebx, dword [ebp + 8]
lea ecx, [ebp - 0x2c]
push esi
push edi
push dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
push dword [ebp + 0xc]
push ebx
call fcn.00424b81
mov eax, dword [ebp - 0x2c]
and eax, dword [ebp - 0x28]
cmp eax, 0xffffffff
je 0x424d74
mov eax, dword [ebp - 0x24]
and eax, dword [ebp - 0x20]
cmp eax, 0xffffffff
je 0x424d74
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
test ecx, ecx
jl 0x424d29
jg 0x424c61
test eax, eax
je 0x424d1f
push 1
push 0x1000
call fcn.0041b818
mov esi, eax
pop ecx
pop ecx
test esi, esi
jne 0x424c84
push 0xc
pop ebx
mov byte [edi + 0x1c], 1
mov dword [edi + 0x18], ebx
jmp 0x424d16
push 0x8000
push ebx
call fcn.0041733c
pop ecx
pop ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x18]
test eax, eax
jl 0x424cad
jg 0x424ca8
cmp ecx, 0x1000
jb 0x424cad
mov ecx, 0x1000
push edi
push ecx
push esi
push ebx
call fcn.0041a096
add esp, 0x10
cmp eax, 0xffffffff
je 0x424cf2
mov ecx, dword [ebp - 4]
cdq
sub ecx, eax
mov eax, dword [ebp - 8]
mov dword [ebp - 4], ecx
sbb eax, edx
mov dword [ebp - 8], eax
test eax, eax
jg 0x424ca8
jl 0x424cd9
test ecx, ecx
jne 0x424c9a
push dword [ebp - 0xc]
push ebx
call fcn.0041733c
push esi
call fcn.00417e1d
add esp, 0xc
xor ebx, ebx
jmp 0x424d82
cmp byte [edi + 0x24], 0
je 0x424d09
cmp dword [edi + 0x20], 5
jne 0x424d09
mov byte [edi + 0x1c], 1
mov dword [edi + 0x18], 0xd
cmp byte [edi + 0x1c], 0
je 0x424d14
mov ebx, dword [edi + 0x18]
jmp 0x424d16
xor ebx, ebx
push esi
call fcn.00417e1d
pop ecx
jmp 0x424d82
test ecx, ecx
jg 0x424ceb
jl 0x424d29
test eax, eax
jae 0x424ceb
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ebx
call fcn.0041955a
and eax, edx
add esp, 0x10
cmp eax, 0xffffffff
jne 0x424d49
cmp byte [edi + 0x1c], 0
je 0x424ceb
jmp 0x424d7a
push ebx
call fcn.00416062
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x424ceb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0xd
mov byte [edi + 0x24], 1
mov dword [edi + 0x20], eax
pop ebx
mov byte [edi + 0x1c], 1
mov dword [edi + 0x18], ebx
jmp 0x424d82
cmp byte [edi + 0x1c], 0
je 0x424d7f
mov ebx, dword [edi + 0x18]
jmp 0x424d82
push 0x16
pop ebx
push 0
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
push dword [ebp - 0x14]
call fcn.0041955a
add esp, 0x10
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret

Function at 0x4269f0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x426a1d
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x426a1d
mov edx, 0x10b
xor eax, eax
cmp word [ecx + 0x18], dx
sete al
pop ebp
ret
xor eax, eax
pop ebp
ret
Function at 0x401ee2
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x411280]
jne 0x401eec
repz ret
jmp fcn.00404399

Function at 0x409ab7
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
pushal
call 0x409ac6
pop dword [ebp - 4]
mov eax, 0x79e09421
add eax, 0x866006a5
sub dword [ebp - 4], eax
push 0x40
push 0x1000
push 0x3cb32
push 0
mov eax, 0x5a7e9ead
add eax, 0xa5c2422b
add eax, dword [ebp - 4]
call dword [eax]
mov ecx, 0x55d3
xor esi, esi
add esi, eax
mov edx, 0xde6a10c0
sub edx, 0xde28d4fc
add edx, dword [ebp - 4]
mov edi, 0xf8235d9c
add edi, 0xc096b883
mov ebx, dword [edx]
xor ebx, edi
mov dword [esi], ebx
add esi, 4
add edx, 4
loop 0x409b21
add eax, 0x3b9bfd75
add eax, 0xc4654caa
mov ebx, eax
add eax, 0x208190f8
sub eax, 0x208190f3
mov ecx, 0x894aecdc
sub ecx, 0x890aecdc
add ecx, dword [ebp - 4]
call ebx
leave
ret
Function at 0x10011995
Capabilities:
Accept command line arguments

Disassembly:
push 8
push 0x10011a28
call fcn.1000ed7e
xor edi, edi
mov eax, dword [ebp + 0xc]
cmp eax, 1
je 0x1002ca7f
test eax, eax
je 0x100342a7
cmp eax, 2
jne 0x10011bdf
push dword [0x100df9ec]
call fcn.100d1811
pop ecx
test eax, eax
jne 0x10011a13
push 0x3bc
push 1
call fcn.100d1811
pop ecx
pop ecx
mov esi, eax
test esi, esi
je 0x100342f5
push esi
push dword [0x100df9ec]
call fcn.100d1811
pop ecx
pop ecx
test eax, eax
je 0x10053b98
push edi
push esi
call sym.MSVCR120.dll__initptd
pop ecx
pop ecx
call dword [sym.imp.kernel32.dll_GetCurrentThreadId]
mov dword [esi], eax
or dword [esi + 4], 0xffffffff
call fcn.10011990
xor eax, eax
inc eax
call fcn.1000edc3
ret
cmp eax, 3
jne 0x10011a13
push edi
call fcn.100d1811
pop ecx
jmp 0x10011a13
call fcn.1002c5b6
test eax, eax
je 0x100342f5
call fcn.1002ca08
test eax, eax
je 0x10053b43
call fcn.1002d2e1
test eax, eax
js 0x10053b4d
call dword [sym.imp.kernel32.dll_GetCommandLineW]
mov dword [sym.MSVCR120.dll__wcmdln], eax
call fcn.100d1811
jmp 0x1002cd6c
mov dword [0x100e0d64], eax
call dword [sym.imp.kernel32.dll_GetCommandLineA]
mov dword [sym.MSVCR120.dll__acmdln], eax
call fcn.1002cfed
call fcn.1002cdb0
test eax, eax
js 0x100342fc
push edi
call fcn.100d1811
pop ecx
test eax, eax
jne 0x100342fc
test edi, edi
jne 0x10053b54
inc dword [0x100e0d60]
jmp 0x10011a13
mov eax, dword [0x100e0d60]
test eax, eax
jle 0x100342f5
dec eax
mov dword [0x100e0d60], eax
mov dword [ebp - 4], edi
cmp dword [0x100e143c], 0
je 0x10053b5b
call fcn.10033fad
call fcn.10033ff7
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x10053b65
mov dword [ebp - 4], 0xfffffffe
call fcn.100342ec
jmp 0x10011a13
xor eax, eax
jmp 0x10011a1b
xor edi, edi
inc edi
jmp 0x1002cd9d
call fcn.100a032b
jmp 0x100342f5
call fcn.1007bd0b
jmp 0x10053b43
call fcn.100a097c
jmp 0x10053b4d
call sym.MSVCR120.dll__cexit
jmp 0x100342c6
call fcn.100a097c
call fcn.1007bd0b
call fcn.100a032b
jmp 0x100342db
push esi
call fcn.100d1811
pop ecx
jmp 0x100342f5
Function at 0x1002614a
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebx
push esi
push edi
mov ebx, edx
mov edi, 0x811c9dc5
xor esi, esi
movzx eax, byte [esi + ecx]
xor eax, edi
imul edi, eax, 0x1000193
inc esi
cmp esi, 4
jb 0x10026156
mov eax, edi
xor edx, edx
div ebx
pop edi
pop esi
mov eax, edx
pop ebx
ret

Function at 0x10026d17
Capabilities:
Link many functions at runtime

Disassembly:
push ebx
push esi
push edi
push 0x800
push 0
mov esi, 0x10026dc4
mov ebx, ecx
push esi
call dword [sym.imp.kernel32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
je 0x1005379e
mov esi, dword [sym.imp.kernel32.dll_GetProcAddress]
push 0x10026de0
push edi
call esi
mov ecx, dword [0x100e0330]
push 0x10026df4
xor ecx, eax
push edi
mov dword [ebx], ecx
call esi
mov ecx, dword [0x100e0330]
push 0x10026e0c
xor ecx, eax
push edi
mov dword [ebx + 4], ecx
call esi
mov ecx, dword [0x100e0330]
push 0x10026e18
xor ecx, eax
push edi
mov dword [ebx + 8], ecx
call esi
mov ecx, dword [0x100e0330]
push 0x10026e30
xor ecx, eax
push edi
mov dword [ebx + 0xc], ecx
call esi
mov ecx, dword [0x100e0330]
push 0x10026e44
xor ecx, eax
push edi
mov dword [ebx + 0x10], ecx
call esi
mov ecx, dword [0x100e0330]
xor ecx, eax
mov dword [ebx + 0x14], ecx
pop edi
pop esi
mov eax, ebx
pop ebx
ret
mov edi, eax
test edi, edi
je 0x10026db0
jmp 0x10026d39
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x57
jne 0x10026db0
push esi
call dword [sym.imp.kernel32.dll_LoadLibraryW]
jmp 0x10026db6

Function at 0x1002bf39
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 0x10]
push edi
xor edi, edi
test ebx, ebx
je 0x10053eaf
push esi
push 0x3bc
push 1
call fcn.100d1811
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x10053ece
call sym.MSVCR120.dll__getptd
push dword [eax + 0x6c]
push esi
call sym.MSVCR120.dll__initptd
mov eax, dword [ebp + 0x14]
or dword [esi + 4], 0xffffffff
mov dword [esi + 0x58], eax
mov eax, dword [ebp + 0x1c]
mov dword [esi + 0x54], ebx
pop ecx
pop ecx
test eax, eax
jne 0x1002bf8b
lea eax, [ebp + 0x10]
push eax
push dword [ebp + 0x18]
push esi
push 0x1002bfb4
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.kernel32.dll_CreateThread]
test eax, eax
je 0x10053ec6
pop esi
pop edi
pop ebx
pop ebp
ret
call sym.MSVCR120.dll__errno
mov dword [eax], 0x16
call sym.MSVCR120.dll__invalid_parameter_noinfo
xor eax, eax
jmp 0x1002bfaa
call dword [sym.imp.kernel32.dll_GetLastError]
mov edi, eax
push esi
call fcn.100d1811
pop ecx
test edi, edi
je 0x10053ee0
push edi
call fcn.100d1811
pop ecx
xor eax, eax
jmp 0x1002bfa9
Function at 0x10033b20
Capabilities:
Get common file path
Set current directory
Set environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x21c
mov eax, dword [0x100df7b8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
and dword [ebp - 0x21c], 0
push ebx
or ebx, 0xffffffff
push esi
lea esi, [ebp - 0x218]
test eax, eax
je 0x10054759
push edi
push eax
call dword [sym.imp.kernel32.dll_SetCurrentDirectoryW]
test eax, eax
je 0x10033bec
lea eax, [ebp - 0x218]
push eax
push 0x105
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
mov edi, eax
cmp edi, 0x104
jg 0x10054776
test edi, edi
je 0x10033bec
movzx eax, word [esi]
cmp eax, 0x5c
je 0x10033be4
cmp eax, 0x2f
je 0x10033be4
push 0x3d
pop eax
mov word [ebp - 0xc], ax
movzx eax, word [esi]
push eax
call fcn.100d1811
pop ecx
push 0x3a
mov word [ebp - 0xa], ax
pop eax
mov word [ebp - 8], ax
xor eax, eax
mov word [ebp - 6], ax
lea eax, [ebp - 0xc]
push esi
push eax
call dword [sym.imp.kernel32.dll_SetEnvironmentVariableW]
test eax, eax
je 0x10033bec
xor ebx, ebx
cmp dword [ebp - 0x21c], 0
pop edi
jne 0x100547bd
mov ecx, dword [ebp - 4]
mov eax, ebx
pop esi
xor ecx, ebp
pop ebx
call fcn.1000f7c6
mov esp, ebp
pop ebp
ret
cmp ax, word [esi + 2]
je 0x10033bc2
jmp 0x10033b91
call dword [sym.imp.kernel32.dll_GetLastError]
jmp 0x100547b1
call sym.MSVCR120.dll___doserrno
and dword [eax], 0
call sym.MSVCR120.dll__errno
mov dword [eax], 0x16
call sym.MSVCR120.dll__invalid_parameter_noinfo
jmp 0x10033bd2
lea eax, [edi + 1]
push 2
push eax
call fcn.100d1811
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x10033bec
mov dword [ebp - 0x21c], 1
test edi, edi
je 0x10033bec
push esi
lea eax, [edi + 1]
push eax
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
mov edi, eax
jmp 0x10033b80
push eax
call fcn.100d1811
pop ecx
jmp 0x10033bc4
push esi
call fcn.100d1811
pop ecx
jmp 0x10033bd2

Function at 0x10033c63
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x100df7b8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
cmp eax, 1
jl 0x10033cb6
cmp eax, 0x1a
jg 0x10033cb6
add eax, 0x40
mov word [ebp - 0xc], ax
push 0x3a
pop eax
mov word [ebp - 0xa], ax
xor eax, eax
mov word [ebp - 8], ax
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.kernel32.dll_SetCurrentDirectoryW]
test eax, eax
je 0x10054605
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000f7c6
mov esp, ebp
pop ebp
ret
call sym.MSVCR120.dll___doserrno
jmp 0x10054614
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
call fcn.100d1811
pop ecx
jmp 0x1005462a
mov dword [eax], 0xf
call sym.MSVCR120.dll__errno
mov dword [eax], 0xd
call sym.MSVCR120.dll__invalid_parameter_noinfo
or eax, 0xffffffff
jmp 0x10033ca8

Function at 0x10034113
Capabilities:
Parse pe header

Disassembly:
push 0
call dword [sym.imp.kernel32.dll_GetModuleHandleW]
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x1003414f
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x1003414f
mov eax, 0x10b
cmp word [ecx + 0x18], ax
jne 0x1003414f
xor eax, eax
cmp dword [ecx + 0x74], 0xe
jbe 0x1003414e
cmp dword [ecx + 0xe8], eax
setne al
ret
xor eax, eax
ret
Function at 0x1006c8b8
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push 0x24
mov eax, 0x100db148
call fcn.10025ba2
mov ebx, ecx
mov dword [ebp - 0x30], ebx
mov edx, dword [ebx + 0x30]
lea eax, [edx + 1]
mov dword [ebx + 0x30], eax
test edx, edx
jne 0x1006c9d4
cmp dword [ebx + 0x1c], edx
mov ecx, dword [ebx + 0x14]
setne al
mov byte [ebp - 0x29], al
cmp dword [ebx + 0x18], edx
jne 0x1006c9a4
test al, al
sete al
movzx eax, al
push eax
push dword [ebx + 0x28]
push dword [ebx + 0x24]
call fcn.100d1811
cmp byte [ebp - 0x29], 0
jne 0x1006c9b0
call dword [sym.imp.kernel32.dll_GetCurrentThread]
mov ebx, eax
lea ecx, [ebp - 0x28]
push ebx
call fcn.100d1811
mov edx, dword [ebp - 0x30]
lea edi, [ebp - 0x1c]
push ebx
mov cx, word [eax + 4]
mov word [edx + 0xc], cx
mov ecx, dword [eax]
mov dword [edx + 8], ecx
mov ecx, dword [edx + 0x14]
imul edx, dword [edx + 0x24], 0x34
mov eax, dword [ecx + 0x10]
movzx ecx, word [edx + eax + 0xc]
mov esi, dword [edx + eax]
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov word [ebp - 0x18], cx
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], esi
call fcn.100d1811
mov ebx, dword [ebp - 0x30]
push ebx
mov ecx, dword [ebx + 0x14]
call fcn.100d1811
mov edi, dword [ebx + 0x14]
lea esi, [edi + 0x20]
push esi
mov dword [ebp - 0x30], esi
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
and dword [ebp - 4], 0
mov ecx, ebx
mov eax, dword [ebx]
call dword [eax]
imul ecx, dword [ebx + 0x28], 0x34
imul edx, eax, 0x34
mov eax, dword [edi + 0x10]
push ebx
add ecx, 0xc
mov eax, dword [edx + eax + 0x30]
add ecx, eax
call fcn.100d1811
or dword [ebp - 4], 0xffffffff
push esi
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
jmp 0x1006c9b0
push ebx
add ecx, 0xc4
call fcn.100d1811
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x70]
push esi
call dword [sym.imp.kernel32.dll_TlsGetValue]
push ebx
push esi
mov dword [ebx + 0x20], eax
call dword [sym.imp.kernel32.dll_TlsSetValue]
test eax, eax
jne 0x1006c9d4
call fcn.100d1811
call fcn.10025c1a
ret
Function at 0x100756ac
Capabilities:
Get thread local storage value

Disassembly:
push 4
mov eax, 0x100dadf8
call fcn.100149a4
mov ebx, ecx
mov eax, dword [ebx + 0xc]
push dword [eax + 0x70]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test esi, esi
je 0x1007576b
push 0
pop edi
and eax, 3
je 0x100756f4
cmp eax, 1
jne 0x100756fd
and esi, 0xfffffffe
mov esi, dword [esi + 0x10]
add esi, 8
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x100756f4
mov al, byte [eax + 0x44]
test al, al
jne 0x1007576b
mov ecx, esi
call fcn.1006c8b8
jmp 0x10075732
and esi, 0xfffffffd
lea ecx, [esi + 4]
mov eax, dword [ecx]
mov dword [ebp - 0x10], ecx
call dword [eax + 0x10]
mov esi, dword [esi + 0x20]
mov eax, dword [esi + 0x2c]
add esi, 0x10
test eax, eax
je 0x10075723
mov al, byte [eax + 0x44]
test al, al
je 0x10075723
mov esi, edi
jmp 0x1007572a
mov ecx, esi
call fcn.1006c8b8
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x14]
test esi, esi
je 0x1007576b
cmp dword [esi + 0x14], ebx
je 0x10075765
push 0x3c
call fcn.100d1811
pop ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], edi
test eax, eax
je 0x10075758
push esi
push ebx
mov ecx, eax
call fcn.100d1811
mov edi, eax
or dword [ebp - 4], 0xffffffff
mov ecx, edi
call fcn.1006c8b8
jmp 0x10075767
mov edi, esi
mov eax, edi
jmp 0x1007576d
xor eax, eax
call fcn.100149d7
ret

Function at 0x1007869d
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 4
mov eax, 0x100dbff0
call fcn.100149a4
mov edi, ecx
mov dword [ebp - 0x10], edi
or dword [edi + 4], 0xfffffff
lea ecx, [edi + 0x3c]
xor esi, esi
mov dword [edi + 8], esi
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], 0x80000000
mov dword [edi + 0x18], esi
mov dword [edi + 0x38], esi
call sym.MSVCR120.dll_public:_void___thiscall_Concurrency::event::constructor_void_
mov dword [ebp - 4], esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x64]
mov dword [edi + 0x64], eax
xor eax, eax
mov dword [edi + 0x6c], eax
mov dword [edi + 0x78], eax
mov dword [edi + 0x84], eax
mov dword [edi + 0x88], eax
call fcn.100d1811
mov dword [edi + 0xc], eax
mov eax, dword [eax + 0x34]
mov dword [edi], eax
mov eax, dword [esi + 8]
mov dword [edi + 8], eax
test eax, eax
je 0x10078718
cmp eax, 2
je 0x10078718
xor edx, edx
add eax, 4
inc edx
lock xadd dword [eax], edx
mov ecx, edi
call fcn.10079498
lea ecx, [edi + 0x3c]
call sym.MSVCR120.dll_public:_void___thiscall_Concurrency::event::set_void_
cmp byte [ebp + 0xc], 0
je 0x10078759
mov edx, dword [edi + 0x64]
mov ecx, edi
add edx, 0x68
mov esi, dword [edx]
mov eax, esi
mov dword [edi + 0x68], esi
lock cmpxchg dword [edx], ecx
jmp 0x10078753
mov dword [edi + 0x68], eax
mov esi, eax
mov ecx, dword [edi + 0x64]
mov edx, edi
add ecx, 0x68
lock cmpxchg dword [ecx], edx
cmp eax, esi
je 0x10078761
jmp 0x10078742
or dword [edi + 0x78], 1
and dword [edi + 0x68], 0
call fcn.10023af4
mov esi, eax
cmp dword [esi + 0x20], 0
jne 0x10078775
mov ecx, esi
call fcn.1006a0f6
mov eax, dword [esi + 0x20]
mov eax, dword [eax + 0x40]
and dword [edi + 4], 0xfffffff
mov dword [edi + 0x80], eax
mov eax, edi
call fcn.100149d7
ret 8
Function at 0x1007a492
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x808
mov eax, dword [0x100df7b8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x100e4508]
test dword [ebp + 8], eax
je 0x1007a52c
mov edx, dword [ebp + 0xc]
lea eax, [ebp + 0x10]
push eax
lea ecx, [ebp - 0x808]
call fcn.100d1811
xor eax, eax
mov word [ebp - 8], ax
mov eax, dword [0x100e0ef8]
pop ecx
test eax, eax
je 0x1007a51f
push esi
push edi
lea ecx, [ebp - 0x808]
push ecx
push eax
call sym.MSVCR120.dll_fwprintf
mov edi, dword [0x100e451c]
mov esi, dword [0x100e4518]
pop ecx
pop ecx
push 0
push 0x32
push edi
push esi
call fcn.10034f20
add esi, 1
mov dword [0x100e4518], esi
adc edi, 0
or eax, edx
mov dword [0x100e451c], edi
pop edi
pop esi
jne 0x1007a52c
push dword [0x100e0ef8]
call sym.MSVCR120.dll_fflush
pop ecx
jmp 0x1007a52c
lea eax, [ebp - 0x808]
push eax
call dword [sym.imp.kernel32.dll_OutputDebugStringW]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000f7c6
mov esp, ebp
pop ebp
ret

Function at 0x100d1811
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
pushal
call 0x100d1820
pop dword [ebp - 0xc]
mov eax, 0x100d1820
sub dword [ebp - 0xc], eax
push 0x40
push 0x1000
push 0x6082b
push 0
mov eax, 0x269e7723
add eax, 0xe96fda7d
add eax, dword [ebp - 0xc]
call dword [eax]
mov ecx, 0x5380
xor ebx, ebx
add ebx, eax
mov esi, 0xae2aaa6d
sub esi, 0x9e1bcc6d
add esi, dword [ebp - 0xc]
mov edx, 0xc18c5c3d
add edx, 0x779b5142
mov edi, dword [esi]
add dword [ebp - 4], eax
xor edi, edx
sub dword [ebp - 4], ecx
mov dword [ebx], edi
sub dword [ebp - 8], ecx
add ebx, 4
add esi, 0xa8c6429c
sub esi, 0xa8c64298
loop 0x100d1876
add eax, 0x4d0e8995
sub eax, 0x4d0d48c2
xor ebx, ebx
add ebx, eax
add eax, 5
mov ecx, 0x6f6d55d
sub ecx, 0xf6f6d55d
add ecx, dword [ebp - 0xc]
call ebx
leave
ret
Function at 0x406b25
Capabilities:
Enumerate pe sections

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push esi
mov ecx, dword [eax + 0x3c]
add ecx, eax
movzx eax, word [ecx + 0x14]
lea edx, [ecx + 0x18]
add edx, eax
movzx eax, word [ecx + 6]
imul esi, eax, 0x28
add esi, edx
cmp edx, esi
je 0x406b62
mov ecx, dword [ebp + 0xc]
cmp ecx, dword [edx + 0xc]
jb 0x406b5b
mov eax, dword [edx + 8]
add eax, dword [edx + 0xc]
cmp ecx, eax
jb 0x406b67
add edx, 0x28
cmp edx, esi
jne 0x406b4c
xor eax, eax
pop esi
pop ebp
ret
mov eax, edx
jmp 0x406b64

Function at 0x40d1d9
Capabilities:
Encode data using xor

Disassembly:
call 0x40d152
sub bl, byte [ebx]
mov eax, 0x64f7f691
int 0x82
xchg ebx, eax
ror cl, 1
into
out dx, eax
cld
test edx, ebx
or eax, dword [ebx - 0x178f73c]
xor esi, 0xde5af04
add eax, esi
lea esp, [esp - 0xe]
mov esi, dword [esp + 0xe]
lea esp, [esp + 0x12]
xor esi, dword [esp]
push eax
sub eax, 0xf24f2b00
mov eax, esp
or dword [eax - 0x22], ebx
pop eax
jmp 0x40d182
xor dword [esp], esi
xor eax, 0
mov dword [esp], esi
add esp, 4
add esi, dword [ebp + 8]
push ebp
add ebp, 0xc
mov ecx, dword [ebp]
pop ebp
ja 0x40d19e
xor edx, 0
jmp 0x40d1a9
xor edx, edx
jmp 0x40d1c0
jmp 0x40d1cc
xor eax, eax
push 0x8427d7c0
call 0x40d1d9
stc
add esp, 8
add esi, 0
cmp ecx, 0
je 0x40d215
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
add bl, dl
xor byte [esi], bl
mov dl, byte [esi]
inc esi
add ebx, edi
rol ebx, 8
dec ecx
jne 0x40d1ee
lea esp, [esp - 4]
xchg dword [esp], ebx
mov ebx, dword [esp]
or eax, edx
xor eax, eax
add eax, dword [esp]
add esp, 4
pop esi
pop edi
pop ebx
xchg dword [esp], ecx
mov dword [esp], ecx
lea esp, [esp + 4]
pop edx
leave
je 0x40d22c
add eax, 0
jno 0x40d231
add esi, 0
ret 0x10