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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov ebx, dword [0x4f2fe8]
test ebx, ebx
jne 0x45c36a
push 0x28
call fcn.00494206
add esp, 4
mov esi, eax
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
push 0xc
call fcn.00494206
add esp, 4
mov dword [esi + 0xc], eax
lea ecx, [eax + 0xc]
mov dword [esi + 0x14], ecx
test eax, eax
je 0x45c374
xorps xmm0, xmm0
movsd qword [eax], xmm0
mov dword [eax + 8], 0
mov dword [esi + 0x10], ecx
mov eax, esi
add eax, 0x1c
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x18], eax
mov dword [esi + 0x24], 1
mov dword [0x4f2fe8], esi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
test eax, eax
je 0x45c383
mov edi, eax
push eax
call fcn.004b8b3c
add esp, 4
mov ecx, esi
push eax
push edi
call fcn.0045c3a0
test ebx, ebx
sete al
pop esi
pop edi
pop ebx
pop ebp
ret
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
push 0x4d348e
call fcn.00424574
push str....._third_partylibc_srcinclude_string_view:267:_assertion___s___nullptr_failed:_null_pointer_passed_to_non_null_argument_of_char_traits_..._::length_n
push 0x4d348e
call fcn.00424574
int3
Function at 0x45c3a0
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x24
mov edi, ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov edx, dword [0x4ea418]
xor edx, ebp
mov dword [ebp - 0x10], edx
lea edx, [ebp - 0x20]
push 3
push ecx
push eax
push edx
call fcn.00445ac0
add esp, 0x10
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x45c518
mov esi, dword [ebp - 0x20]
mov dword [edi], esi
mov dword [edi + 4], eax
mov dword [ebp - 0x14], 0
push 0x800
push 0
push 0x4d9e74
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
test eax, eax
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], eax
je 0x45c423
push 0x4d9ec4
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x45c433
mov ecx, eax
call dword [0x4e4884]
lea eax, [ebp - 0x14]
push eax
push esi
call ecx
jmp 0x45c42e
lea eax, [ebp - 0x14]
push eax
push esi
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov dword [ebp - 0x24], eax
jmp 0x45c43a
mov dword [ebp - 0x24], 0
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
test edi, edi
je 0x45c4a7
cmp edi, 0x15555556
jae 0x45c54a
shl edi, 2
lea esi, [edi + edi*2]
push esi
call fcn.00494206
add esp, 4
mov ebx, eax
mov dword [ebp - 0x20], eax
add eax, esi
mov dword [ebp - 0x18], eax
xor esi, esi
mov dword [ebp - 0x28], ebx
test ebx, ebx
je 0x45c52c
mov ecx, ebx
mov eax, dword [ebp - 0x24]
push dword [eax + esi]
call fcn.00411fe0
add ebx, 0xc
add esi, 4
cmp edi, esi
jne 0x45c480
mov dword [ebp - 0x1c], ebx
mov edi, dword [ebp - 0x28]
jmp 0x45c4ab
xor ebx, ebx
xor edi, edi
mov esi, dword [ebp - 0x30]
mov ecx, esi
lea eax, [ebp - 0x20]
push eax
call fcn.0045c0d0
mov dword [esi], 0
mov dword [esi + 4], 0
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x45c4dd
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
test edi, edi
je 0x45c518
cmp ebx, edi
je 0x45c50f
add ebx, 0xfffffff4
jmp 0x45c4f9
lea eax, [ebx - 0xc]
cmp ebx, edi
mov ebx, eax
je 0x45c50f
test ebx, ebx
je 0x45c53b
cmp byte [ebx + 0xb], 0
jns 0x45c4f0
push dword [ebx]
call fcn.00494236
add esp, 4
jmp 0x45c4f0
push edi
call fcn.00494236
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004961ed
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret 8
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
push 0x4d348e
call fcn.00424574
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:66:_assertion___loc___nullptr_failed:_null_pointer_given_to_destroy_at_n
push 0x4d348e
call fcn.00424574
lea ecx, [ebp - 0x20]
call fcn.00421de0
int3
Function at 0x45d070
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov dword [ebp - 0x24], edx
mov eax, dword [0x4ea418]
xor eax, ebp
mov dword [ebp - 0x10], eax
movzx eax, byte [0x4f2ff0]
cmp eax, 3
je 0x45d18b
mov edi, ecx
xor esi, esi
lea ebx, [ebp - 0x1c]
jmp 0x45d0c0
cmp byte [ebp - 0x20], 0
js 0x45d170
lea ebx, [ebp - 0x1c]
inc esi
movzx eax, byte [0x4f2ff0]
xor eax, 3
cmp esi, eax
jae 0x45d18b
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x14], 0xffffffff
lea eax, [esi*8 + 0x4d9e58]
mov ecx, ebx
push eax
call fcn.00429180
movzx edx, byte [ebp - 0x11]
test dl, dl
js 0x45d100
mov ecx, ebx
mov eax, edx
jmp 0x45d120
mov eax, dword [ebp - 0x18]
test eax, eax
js 0x45d1c0
mov ecx, dword [ebp - 0x1c]
je 0x45d120
test ecx, ecx
je 0x45d1b1
nop dword [eax + eax]
mov dword [ebp - 0x20], edx
mov ebx, dword [ebp - 0x24]
cmp ebx, eax
mov edx, eax
cmovb edx, ebx
test edi, edi
jne 0x45d135
test edx, edx
jne 0x45d1b1
cmp eax, dword [ebp - 0x24]
ja 0x45d0a0
test edx, edx
je 0x45d180
xor edx, edx
nop word cs:[eax + eax]
movzx ebx, word [edi + edx*2]
cmp bx, word [ecx + edx*2]
jne 0x45d0a0
inc edx
cmp eax, edx
jne 0x45d150
jmp 0x45d180
push dword [ebp - 0x1c]
call fcn.00494236
add esp, 4
jmp 0x45d0aa
mov eax, dword [ebp - 0x20]
test al, al
js 0x45d18f
mov esi, eax
jmp 0x45d19d
xor esi, esi
jmp 0x45d19d
mov esi, dword [ebp - 0x18]
push dword [ebp - 0x1c]
call fcn.00494236
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004961ed
mov eax, esi
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
push str....._third_partylibc_srcinclude_string_view:313:_assertion___len__0____s___nullptr_failed:_string_view::string_view__CharT___size_t_:_received_nullptr_n
push 0x4d348e
call fcn.00424574
push str....._third_partylibc_srcinclude_string_view:311:_assertion___len___static_cast_size_type__numeric_limits_difference_type_::max____failed:_string_view::string_view__CharT___size_t_:_length_does_not_fit_in_difference_type_n
push 0x4d348e
call fcn.00424574
int3
Function at 0x4608a0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0x10
mov eax, dword [ebp + 8]
mov edx, dword [0x4ea418]
xor edx, ebp
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], 4
mov dword [ebp - 0x14], 4
mov dword [ebp - 0x18], 0
lea edx, [ebp - 0x14]
lea esi, [ebp - 0x18]
lea edi, [ebp - 0x10]
push edx
push esi
push edi
push 0
push eax
push dword [ecx]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov esi, eax
test eax, eax
jne 0x460908
mov eax, dword [ebp - 0x10]
add eax, 0xfffffffd
mov esi, 0x3f4
cmp eax, 1
ja 0x460908
cmp dword [ebp - 0x14], 4
jne 0x460908
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x18]
mov dword [eax], ecx
xor esi, esi
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.004961ed
mov eax, esi
add esp, 0x10
pop esi
pop edi
pop ebp
ret 8

Function at 0x460920
Capabilities:
Query environment variable
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x100c
call fcn.0049af20
mov esi, ecx
mov edi, dword [ebp + 8]
mov eax, dword [0x4ea418]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea ebx, [ebp - 0x810]
push 0x800
push 0xff
push ebx
call fcn.0049dcc0
add esp, 0xc
mov dword [ebp - 0x1014], 1
mov dword [ebp - 0x1018], 0x800
lea eax, [ebp - 0x1018]
lea ecx, [ebp - 0x1014]
push eax
push ebx
push ecx
push 0
push edi
push dword [esi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, eax
test eax, eax
jne 0x4609ef
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1014]
cmp eax, 2
je 0x4609a7
mov edi, 0x3f4
cmp eax, 1
jne 0x4609ef
push ebx
jmp 0x4609e8
lea esi, [ebp - 0x1010]
push 0x800
push 0xff
push esi
call fcn.0049dcc0
add esp, 0xc
push 0x400
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov dword [ebp - 0x1018], eax
add eax, 0xfffffbff
mov edi, 0xea
cmp eax, 0xfffffc00
jb 0x4609ef
mov ecx, dword [ebp + 0xc]
push esi
call fcn.00442c80
xor edi, edi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004961ed
mov eax, edi
add esp, 0x100c
pop esi
pop edi
pop ebx
pop ebp
ret 8
Function at 0x463780
Capabilities:
Encode data using xor
Hash data using murmur2

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov dword [ebp - 0x10], ecx
mov esi, dword [ebp + 0xc]
movzx edx, byte [esi + 0xb]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
test dl, dl
mov dword [ebp - 0x14], ecx
lea ecx, [eax + ecx]
mov dword [ebp - 0x20], edx
lea edx, [esi + edx]
cmovs edx, ecx
cmovs esi, eax
sub edx, esi
cmp edx, 4
jb 0x4637ed
mov ecx, esi
mov eax, edx
nop word [eax + eax]
imul edi, dword [ecx], 0x5bd1e995
mov ebx, edi
shr ebx, 0x18
xor ebx, edi
imul edi, ebx, 0x5bd1e995
imul eax, eax, 0x5bd1e995
xor eax, edi
add ecx, 4
add edx, 0xfffffffc
cmp edx, 3
ja case.default.0x4637e6
jmp dword [edx*4 + 0x4da0d4]
mov eax, edx
mov ecx, esi
jmp dword [edx*4 + 0x4da0d4]
movzx edx, byte [ecx + 2]
shl edx, 0x10
xor eax, edx
movzx edx, byte [ecx + 1]
shl edx, 8
xor eax, edx
movzx ecx, byte [ecx]
xor ecx, eax
imul eax, ecx, 0x5bd1e995

Function at 0x465690
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov esi, ecx
mov edi, dword [ebp + 8]
cmp dword [ecx + 8], 0
mov eax, dword [ecx]
jne 0x4656b7
test eax, eax
jne 0x4656b7
cmp dword [esi + 0xc], 0
jne 0x4656b7
cmp dword [esi + 4], 0
je 0x4657ad
lea ecx, [eax + 1]
cmp ecx, 2
jb 0x4656d6
call fcn.0045a4c0
push dword [esi]
call fcn.00445180
add esp, 4
mov dword [esi], 0
xor eax, eax
mov ecx, dword [esi + 4]
lea edx, [ecx + 1]
cmp edx, 2
jb 0x4656fc
call fcn.0045a4c0
push dword [esi + 4]
call fcn.00445180
add esp, 4
mov dword [esi + 4], 0
mov eax, dword [esi]
xor ecx, ecx
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov ebx, dword [edi]
cmp eax, ebx
je 0x465751
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [esi]
inc eax
cmp eax, 2
jb 0x465735
call fcn.0045a4c0
push dword [esi]
call fcn.00445180
add esp, 4
mov dword [esi], 0
lea eax, [ebx + 1]
cmp eax, 2
jb 0x465744
mov dword [esi], ebx
call fcn.0045a4c0
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [esi + 4]
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 4]
cmp ecx, ebx
je 0x46579a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [esi + 4]
inc eax
cmp eax, 2
jb 0x465780
call fcn.0045a4c0
push dword [esi + 4]
call fcn.00445180
add esp, 4
mov dword [esi + 4], 0
lea eax, [ebx + 1]
cmp eax, 2
jb 0x465790
mov dword [esi + 4], ebx
call fcn.0045a4c0
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov edi, dword [ebp + 8]
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
pop esi
pop edi
pop ebx
pop ebp
ret 4
xor ecx, ecx
xor eax, eax
jmp 0x46570a
Function at 0x4683a0
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [eax + 4], 0
mov dword [eax], 0
lea edx, [ecx + ecx*4]
lea edx, [ecx + edx*2]
add edx, 0x67452301
mov dword [eax + 8], edx
imul edx, ecx, 0x47
add edx, 0xefcdab89
mov dword [eax + 0xc], edx
lea edx, [ecx + ecx*8]
lea edx, [ecx + edx*4]
add edx, 0x98badcfe
mov dword [eax + 0x10], edx
imul ecx, ecx, 0x61
add ecx, 0x10325476
mov dword [eax + 0x14], ecx
pop ebp
ret

Function at 0x46aca0
Capabilities:
Encode data using xor
Hash data using murmur3

Disassembly:
push ebp
mov ebp, esp
pop ebp
jmp fcn.0047e960

Function at 0x46ef90
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x70
mov esi, ecx
mov eax, dword [ecx + 0x1174]
mov ebx, dword [ecx + 0x1178]
add ebx, eax
mov eax, dword [ecx + 0x116c]
mov ecx, ebx
sub ecx, eax
cmp ecx, 0x40000001
jb 0x46efc6
push dword [ebp + 8]
call fcn.0047f170
mov dword [esp + 0xc], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea ecx, [esp + 0xc]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_IsWow64Process]
mov eax, dword [esp + 0xc]
test eax, eax
mov ecx, 0x40000000
mov edi, 0xaf000000
cmove edi, ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x54], 0x343677
mov dword [esp + 0x50], 0x6f777369
lea eax, [esp + 0x50]
push eax
call fcn.00410770
add esp, 4
cmp ebx, edi
jbe 0x46f026
push ebx
call fcn.0047f1a0
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], 0
mov dword [esp + 0x44], 0x657a69
mov dword [esp + 0x40], 0x735f6176
lea eax, [esp + 0x40]
push eax
call fcn.00410770
add esp, 4
mov eax, dword [esi + 0x117c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], 0
mov dword [esp + 0x34], 0x20200063
mov dword [esp + 0x30], 0x6f6c6c61
lea eax, [esp + 0x30]
push eax
call fcn.00410770
add esp, 4
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x10], xmm0
mov eax, dword [esi + 0x116c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x20007469
mov dword [esp + 0x10], 0x6d6d6f63
lea eax, [esp + 0x10]
push eax
call fcn.00410770
add esp, 4
mov esi, dword [ebp + 8]
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], 0x20202000
mov dword [esp + 0x20], 0x657a6973
lea eax, [esp + 0x20]
push eax
call fcn.00410770
add esp, 4
mov ecx, dword [0x4ff8a4]
test ecx, ecx
je 0x46f0f9
call dword [0x4e4884]
push esi
call ecx
add esp, 4
push esi
call fcn.0047f210
int3
Function at 0x478a10
Capabilities:
Get memory capacity

Disassembly:
push ebp
mov ebp, esp
call fcn.0045c560
mov ecx, eax
push str.enable_low_end_device_mode
call fcn.0045cb00
test al, al
je 0x478a43
call fcn.0047c800
cmp eax, 0x20000000
mov ecx, 0x20000000
cmovae eax, ecx
test edx, edx
cmovne eax, ecx
xor edx, edx
pop ebp
ret
cmp byte [0x4ff7b8], 0
je 0x478a60
mov eax, dword [0x4ff7b0]
mov edx, dword [0x4ff7b4]
shld edx, eax, 0x14
shl eax, 0x14
pop ebp
ret
pop ebp
jmp fcn.0047c800
Function at 0x47c800
Capabilities:
Get memory capacity

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x50
mov eax, dword [0x4ea418]
xor eax, ebp
mov dword [esp + 0x4c], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [esp], xmm0
movdqa xmmword [esp + 0x30], xmm0
movdqa xmmword [esp + 0x20], xmm0
movdqa xmmword [esp + 0x10], xmm0
mov dword [esp], 0x40
mov eax, esp
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
test eax, eax
je 0x47c84f
mov esi, dword [esp + 8]
mov edi, dword [esp + 0xc]
jmp 0x47c858
call fcn.0045eeb0
xor esi, esi
xor edi, edi
mov ecx, dword [esp + 0x4c]
xor ecx, ebp
call fcn.004961ed
mov eax, esi
mov edx, edi
lea esp, [ebp - 8]
pop esi
pop edi
pop ebp
ret

Function at 0x47ccc0
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov ebx, edx
mov edi, ecx
mov eax, dword [0x4ea418]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea esi, [ebp - 0x1c]
push edx
push ecx
push esi
call fcn.00455a00
add esp, 0xc
cmp byte [ebp - 0x11], 0
jns 0x47ccee
mov esi, dword [ebp - 0x1c]
push 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov esi, eax
cmp byte [ebp - 0x11], 0
js 0x47cd0c
cmp dword [ebp + 8], 0
jne 0x47cd21
jmp 0x47cdbc
push dword [ebp - 0x1c]
call fcn.00494236
add esp, 4
cmp dword [ebp + 8], 0
je 0x47cdbc
test esi, esi
je 0x47cdbc
lea eax, [esi + esi]
test esi, esi
mov ecx, 0xffffffff
cmovns ecx, eax
push ecx
call fcn.00494263
add esp, 4
mov ecx, edi
mov edi, eax
mov eax, ebx
lea ebx, [ebp - 0x1c]
push eax
push ecx
push ebx
call fcn.00455a00
add esp, 0xc
cmp byte [ebp - 0x11], 0
jns 0x47cd5c
mov ebx, dword [ebp - 0x1c]
push esi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
cmp byte [ebp - 0x11], 0
jns 0x47cd76
push dword [ebp - 0x1c]
call fcn.00494236
add esp, 4
test edi, edi
mov ebx, dword [ebp + 8]
je 0x47cdd5
push edi
call fcn.004b8b3c
add esp, 4
lea ecx, [ebp - 0x1c]
push eax
push edi
push ecx
call fcn.00455a30
add esp, 0xc
cmp byte [ebx + 0xb], 0
jns 0x47cda4
push dword [ebx]
call fcn.00494236
add esp, 4
mov eax, dword [ebp - 0x14]
mov dword [ebx + 8], eax
movsd xmm0, qword [ebp - 0x1c]
movsd qword [ebx], xmm0
push edi
call fcn.0049426c
add esp, 4
test esi, esi
setne bl
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004961ed
mov eax, ebx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
push str....._third_partylibc_srcinclude_string_view:267:_assertion___s___nullptr_failed:_null_pointer_passed_to_non_null_argument_of_char_traits_..._::length_n
push 0x4d348e
call fcn.00424574
int3
Function at 0x47ce70
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x4ea418]
xor ecx, ebp
mov dword [ebp - 0x10], ecx
cmp eax, 3
jne 0x47cf8d
mov dword [ebp - 0x14], 0x47cfb0
lea eax, [ebp - 0x14]
push 0
push eax
push 0x47ce50
push 0x4ff880
call dword [sym.imp.KERNEL32.dll_InitOnceExecuteOnce]
test eax, eax
je 0x47cfa1
cmp dword [0x4ff884], 0
jne 0x47cf8d
push dword [0x4ff888]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x47cf8d
mov esi, eax
push 0x4ff88c
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov edi, dword [0x4ff890]
mov ebx, dword [0x4ff894]
mov eax, dword [0x4ff898]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x4ff89c]
mov dword [ebp - 0x20], eax
mov eax, dword [0x4ff8a0]
mov dword [ebp - 0x24], eax
push 0x4ff88c
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test edi, edi
je 0x47cf2b
mov eax, dword [esi]
mov dword [ebp - 0x18], eax
mov ecx, edi
call dword [0x4e4884]
push dword [ebp - 0x18]
call edi
add esp, 4
test ebx, ebx
je 0x47cf40
mov edi, dword [esi + 4]
mov ecx, ebx
call dword [0x4e4884]
push edi
call ebx
add esp, 4
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x47cf56
mov edi, dword [esi + 8]
call dword [0x4e4884]
push edi
call ecx
add esp, 4
mov ecx, dword [ebp - 0x20]
test ecx, ecx
mov ebx, dword [ebp - 0x24]
je 0x47cf6f
mov edi, dword [esi + 0xc]
call dword [0x4e4884]
push edi
call ecx
add esp, 4
test ebx, ebx
je 0x47cf84
mov edi, dword [esi + 0x10]
mov ecx, ebx
call dword [0x4e4884]
push edi
call ebx
add esp, 4
push esi
call fcn.00460060
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004961ed
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
call fcn.004b086e
int3

Function at 0x480990
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov eax, dword [ebp + 0xc]
cmp eax, 3
je 0x4809a1
test eax, eax
jne 0x4809f1
test eax, eax
jne 0x4809b7
mov ecx, dword [0x4ff8c8]
test ecx, ecx
je 0x4809b7
call dword [0x4e4884]
call ecx
cmp dword [0x4ff8c0], 0
je 0x4809f1
mov esi, dword [0x4ff8c4]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
push esi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
test edi, edi
jne 0x4809f7
test esi, esi
je 0x4809f1
mov ecx, dword [0x4ff8c0]
call dword [0x4e4884]
push esi
call ecx
add esp, 4
pop esi
pop edi
pop ebp
ret 0xc
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
test esi, esi
jne 0x4809df
jmp 0x4809f1
Function at 0x480f00
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x20
mov eax, dword [0x4ea418]
xor eax, ebp
mov dword [esp + 0x18], eax
mov edi, dword [ecx + 0x38]
test edi, edi
jne 0x480fc5
mov esi, ecx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x14], 0x9ffffff
lea edx, [esp + 0xc]
cmp edx, str.discarded
ja 0x480f57
lea eax, [esp + 0x15]
cmp eax, str.discarded
ja 0x480fdc
mov dword [esp + 0x10], 0x65647261
mov dword [esp + 0xc], 0x63736964
mov word [esp + 0x14], 0x64
mov edi, esp
mov ecx, esi
push edx
push edi
call fcn.00480e70
push 0x40
call fcn.00494206
add esp, 4
mov ebx, eax
mov ecx, eax
push edi
push dword [esi + 0x28]
lea eax, [esp + 0x14]
push eax
call fcn.00481640
mov edi, dword [esi + 0x38]
mov dword [esi + 0x38], ebx
test edi, edi
je 0x480faf
mov ecx, edi
call fcn.004816b0
push edi
call fcn.00494236
add esp, 4
cmp byte [esp + 0x17], 0
jns 0x480fc2
push dword [esp + 0xc]
call fcn.00494236
add esp, 4
mov edi, dword [esi + 0x38]
mov ecx, dword [esp + 0x18]
xor ecx, ebp
call fcn.004961ed
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
push str....._third_partylibc_srcinclude__stringchar_traits.h:245:_assertion__std::__is_pointer_in_range___s1____s1____n____s2__failed:_char_traits::copy:_source_and_destination_ranges_overlap_n
push 0x4d348e
call fcn.00424574
int3

Function at 0x485190
Capabilities:
Get memory capacity

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x50
mov eax, dword [0x4ea418]
xor eax, ebp
mov dword [esp + 0x48], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [esp], xmm0
movdqa xmmword [esp + 0x30], xmm0
movdqa xmmword [esp + 0x20], xmm0
movdqa xmmword [esp + 0x10], xmm0
mov dword [esp], 0x40
mov eax, esp
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
test eax, eax
je 0x48522d
mov ecx, dword [ebp + 8]
mov edx, 0x200
mov esi, dword [esp + 0xc]
test esi, 0xfffffe00
jne 0x485247
mov edi, dword [esp + 8]
shld esi, edi, 0x16
mov dword [ecx], esi
mov esi, dword [esp + 0x14]
cmp esi, edx
jae 0x48524e
mov edi, dword [esp + 0x10]
shld esi, edi, 0x16
mov dword [ecx + 4], esi
mov esi, dword [esp + 0x1c]
cmp esi, edx
jae 0x485255
mov edi, dword [esp + 0x18]
shld esi, edi, 0x16
mov dword [ecx + 8], esi
mov esi, dword [esp + 0x24]
cmp esi, edx
jae 0x48525c
mov edx, dword [esp + 0x20]
shld esi, edx, 0x16
mov dword [ecx + 0xc], esi
test eax, eax
setne bl
mov ecx, dword [esp + 0x48]
xor ecx, ebp
call fcn.004961ed
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, 0x7fffffff
jmp 0x4851f2
mov esi, 0x7fffffff
jmp 0x485204
mov esi, 0x7fffffff
jmp 0x485217
mov esi, 0x7fffffff
jmp 0x48522a