joyce8/EMBER2024-capa huggingface dataset:
Function at 0x404430
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x467b1d
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push esi
push edi
mov eax, dword [0x7b2d00]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], ecx
mov esi, dword [ebp + 8]
mov dword [ebp - 0x18], ecx
cmp byte [esi + 0xc], 0
je 0x404482
xor edx, edx
nop dword [eax]
lea ecx, [esi + edx]
lea eax, [edx + 0x65]
inc edx
xor byte [ecx], al
cmp edx, 0xb
jb 0x404470
mov byte [esi + 0xc], 0
lea eax, [ebp - 0xd]
push eax
lea eax, [esi + 0xb]
push eax
push esi
lea ecx, [ebp - 0x34]
call fcn.00408330
mov dword [ebp - 4], 0
cmp dword [edi + 0x14], 0x10
mov eax, dword [edi + 0x10]
jb 0x4044a5
mov edi, dword [edi]
push eax
push edi
push 0
lea ecx, [ebp - 0x34]
call fcn.0040abf0
mov esi, dword [ebp - 0x14]
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
movups xmm0, xmmword [eax]
movups xmmword [esi], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esi + 0x10], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x10
jb 0x40451f
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x404515
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x404515
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0041d132
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x4142e0
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10c
mov eax, dword [0x7b2d00]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [ebp - 0x108], eax
mov esi, edx
mov eax, dword [ebp + 0x10]
mov edi, ecx
push 0x40
mov dword [ebp - 0x10c], eax
lea eax, [ebp - 0x104]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push 0x40
lea eax, [ebp - 0x44]
push 0x36
push eax
call sub.VCRUNTIME140.dll_memset
push 0x40
lea eax, [ebp - 0x84]
push 0x5c
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0x24
lea eax, [ebp - 0x104]
cmp esi, 0x40
jbe 0x414358
push 0x40
push eax
mov edx, esi
mov ecx, edi
call fcn.00414490
add esp, 8
jmp 0x414363
push esi
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor eax, eax
nop word [eax + eax]
movups xmm1, xmmword [ebp + eax - 0x104]
movups xmm0, xmmword [ebp + eax - 0x44]
xorps xmm0, xmm1
movups xmmword [ebp + eax - 0x44], xmm0
movups xmm0, xmmword [ebp + eax - 0x84]
xorps xmm0, xmm1
movups xmmword [ebp + eax - 0x84], xmm0
add eax, 0x10
cmp eax, 0x40
jl 0x414370
mov esi, dword [ebp + 0xc]
lea ebx, [esi + 0x40]
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
movups xmm0, xmmword [ebp - 0x44]
mov edi, eax
push esi
push dword [ebp - 0x108]
movups xmmword [edi], xmm0
lea eax, [edi + 0x40]
movups xmm0, xmmword [ebp - 0x34]
push eax
movups xmmword [edi + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x24]
movups xmmword [edi + 0x20], xmm0
movups xmm0, xmmword [ebp - 0x14]
movups xmmword [edi + 0x30], xmm0
call sub.VCRUNTIME140.dll_memcpy
lea eax, [ebp - 0xa4]
mov edx, ebx
push 0x20
push eax
mov ecx, edi
call fcn.00414490
push edi
mov edi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
call edi
push 0x60
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
movups xmm0, xmmword [ebp - 0x84]
mov esi, eax
mov edx, 0x60
lea eax, [ebp - 0xc4]
mov ecx, esi
push 0x20
push eax
movups xmmword [esi], xmm0
movups xmm0, xmmword [ebp - 0x74]
movups xmmword [esi + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x64]
movups xmmword [esi + 0x20], xmm0
movups xmm0, xmmword [ebp - 0x54]
movups xmmword [esi + 0x30], xmm0
movups xmm0, xmmword [ebp - 0xa4]
movups xmmword [esi + 0x40], xmm0
movups xmm0, xmmword [ebp - 0x94]
movups xmmword [esi + 0x50], xmm0
call fcn.00414490
push esi
call edi
mov esi, dword [ebp + 0x14]
mov eax, 0x20
cmp esi, eax
cmova esi, eax
lea eax, [ebp - 0xc4]
push esi
push eax
push dword [ebp - 0x10c]
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 4]
add esp, 0x38
mov eax, esi
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.0041cef6
mov esp, ebp
pop ebp
ret
Function at 0x414490
Capabilities:
Hash data using sha256

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x9c
mov eax, dword [0x7b2d00]
xor eax, esp
mov dword [esp + 0x98], eax
push esi
mov esi, dword [ebp + 8]
xorps xmm0, xmm0
push edx
mov edx, ecx
mov dword [esp + 0x34], 0
lea ecx, [esp + 0xc]
movlpd qword [esp + 0xc], xmm0
mov dword [esp + 0x14], 0x6a09e667
mov dword [esp + 0x18], 0xbb67ae85
mov dword [esp + 0x1c], 0x3c6ef372
mov dword [esp + 0x20], 0xa54ff53a
mov dword [esp + 0x24], 0x510e527f
mov dword [esp + 0x28], 0x9b05688c
mov dword [esp + 0x2c], 0x1f83d9ab
mov dword [esp + 0x30], 0x5be0cd19
call fcn.00414740
lea edx, [esp + 0x80]
lea ecx, [esp + 0xc]
call fcn.004147f0
mov eax, dword [ebp + 0xc]
mov ecx, 0x20
cmp eax, ecx
cmova eax, ecx
push eax
lea eax, [esp + 0x84]
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0xac]
add esp, 0x10
pop esi
xor ecx, esp
call fcn.0041cef6
mov esp, ebp
pop ebp
ret
Function at 0x4147f0
Capabilities:
Enumerate pe sections

Disassembly:
push esi
mov esi, ecx
push edi
mov edi, edx
mov ecx, dword [esi + 0x28]
cmp ecx, 0x40
jae 0x414984
lea eax, [ecx*8]
add dword [esi], eax
push ebx
adc dword [esi + 4], 0
mov byte [ecx + esi + 0x2c], 0x80
mov eax, dword [esi + 0x28]
inc eax
mov dword [esi + 0x28], eax
cmp eax, 0x38
jbe 0x41484e
cmp eax, 0x40
jae 0x414837
mov byte [eax + esi + 0x2c], 0
mov eax, dword [esi + 0x28]
inc eax
mov dword [esi + 0x28], eax
cmp eax, 0x40
jb 0x414826
lea ebx, [esi + 0x2c]
mov ecx, esi
mov edx, ebx
call fcn.00414550
mov dword [esi + 0x28], 0
xor eax, eax
jmp 0x414853
lea ebx, [esi + 0x2c]
jae 0x414864
mov byte [eax + esi + 0x2c], 0
mov eax, dword [esi + 0x28]
inc eax
mov dword [esi + 0x28], eax
cmp eax, 0x38
jb 0x414853
movzx eax, byte [esi + 7]
mov edx, ebx
mov byte [esi + 0x64], al
mov ecx, esi
movzx eax, byte [esi + 6]
mov byte [esi + 0x65], al
movzx eax, byte [esi + 5]
mov byte [esi + 0x66], al
movzx eax, byte [esi + 4]
mov byte [esi + 0x67], al
movzx eax, byte [esi + 3]
mov byte [esi + 0x68], al
movzx eax, byte [esi + 2]
mov byte [esi + 0x69], al
movzx eax, byte [esi + 1]
mov byte [esi + 0x6a], al
movzx eax, byte [esi]
mov byte [esi + 0x6b], al
call fcn.00414550
movzx eax, byte [esi + 0xb]
mov byte [edi], al
movzx eax, byte [esi + 0xa]
mov byte [edi + 1], al
movzx eax, byte [esi + 9]
mov byte [edi + 2], al
movzx eax, byte [esi + 8]
mov byte [edi + 3], al
movzx eax, byte [esi + 0xf]
mov byte [edi + 4], al
movzx eax, byte [esi + 0xe]
mov byte [edi + 5], al
movzx eax, byte [esi + 0xd]
mov byte [edi + 6], al
movzx eax, byte [esi + 0xc]
mov byte [edi + 7], al
movzx eax, byte [esi + 0x13]
mov byte [edi + 8], al
movzx eax, byte [esi + 0x12]
mov byte [edi + 9], al
movzx eax, byte [esi + 0x11]
mov byte [edi + 0xa], al
movzx eax, byte [esi + 0x10]
mov byte [edi + 0xb], al
movzx eax, byte [esi + 0x17]
mov byte [edi + 0xc], al
movzx eax, byte [esi + 0x16]
mov byte [edi + 0xd], al
movzx eax, byte [esi + 0x15]
mov byte [edi + 0xe], al
movzx eax, byte [esi + 0x14]
mov byte [edi + 0xf], al
movzx eax, byte [esi + 0x1b]
mov byte [edi + 0x10], al
movzx eax, byte [esi + 0x1a]
mov byte [edi + 0x11], al
movzx eax, byte [esi + 0x19]
mov byte [edi + 0x12], al
movzx eax, byte [esi + 0x18]
mov byte [edi + 0x13], al
movzx eax, byte [esi + 0x1f]
mov byte [edi + 0x14], al
movzx eax, byte [esi + 0x1e]
mov byte [edi + 0x15], al
movzx eax, byte [esi + 0x1d]
mov byte [edi + 0x16], al
movzx eax, byte [esi + 0x1c]
mov byte [edi + 0x17], al
movzx eax, byte [esi + 0x23]
mov byte [edi + 0x18], al
movzx eax, byte [esi + 0x22]
mov byte [edi + 0x19], al
movzx eax, byte [esi + 0x21]
mov byte [edi + 0x1a], al
movzx eax, byte [esi + 0x20]
mov byte [edi + 0x1b], al
movzx eax, byte [esi + 0x27]
mov byte [edi + 0x1c], al
movzx eax, byte [esi + 0x26]
mov byte [edi + 0x1d], al
movzx eax, byte [esi + 0x25]
mov byte [edi + 0x1e], al
movzx eax, byte [esi + 0x24]
mov byte [edi + 0x1f], al
pop ebx
pop edi
pop esi
ret
Function at 0x418290
Capabilities:
Download url
Get common file path
Receive data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x469050
mov eax, dword fs:[0]
push eax
sub esp, 0x124
mov eax, dword [0x7b2d00]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea eax, [ebp - 0x114]
mov dword [ebp - 4], 1
push eax
push 0x104
mov dword [ebp - 0x118], 0x4a1154
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
xorps xmm0, xmm0
mov dword [ebp - 0x120], 0
lea ecx, [ebp - 0x114]
mov dword [ebp - 0x11c], 0
movups xmmword [ebp - 0x130], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x418306
sub ecx, edx
lea eax, [ebp - 0x114]
push ecx
push eax
lea ecx, [ebp - 0x130]
call fcn.00408900
cmp dword [ebp + 0x34], 0xf
lea edx, [ebp + 0x20]
mov byte [ebp - 4], 2
cmova edx, dword [ebp + 0x20]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x418336
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x130]
call fcn.00406ef0
cmp dword [eax + 0x14], 0xf
jbe 0x418354
mov eax, dword [eax]
cmp dword [ebp + 0x1c], 0xf
lea edx, [ebp - 0x118]
push edx
push 0
lea ecx, [ebp + 8]
cmova ecx, dword [ebp + 8]
push eax
push ecx
push 0
call sub.urlmon.dll_URLDownloadToFileA
mov ecx, dword [ebp - 0x11c]
mov esi, eax
cmp ecx, 0xf
jbe 0x4183af
mov edx, dword [ebp - 0x130]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4183a5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4183a5
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0041d132
add esp, 8
test esi, esi
jne 0x4183c2
push 0x4a1180
call fcn.004149e0
add esp, 4
jmp 0x4183fe
cmp esi, 0x8007000e
jne 0x4183d9
push str.Buffer_length_invalid__or_insufficient_memory_n
call fcn.004149e0
add esp, 4
jmp 0x4183fe
cmp esi, 0x800c0008
jne 0x4183f0
push str.URL_is_invalid_n
call fcn.004149e0
add esp, 4
jmp 0x4183fe
push esi
push str.Other_error:__d_n
call fcn.004149e0
add esp, 8
mov ecx, dword [ebp + 0x1c]
cmp ecx, 0xf
jbe 0x41842e
mov edx, dword [ebp + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x418424
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x418466
push ecx
push edx
call fcn.0041d132
add esp, 8
mov ecx, dword [ebp + 0x34]
mov dword [ebp + 0x18], 0
mov dword [ebp + 0x1c], 0xf
mov byte [ebp + 8], 0
cmp ecx, 0xf
jbe 0x418476
mov edx, dword [ebp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41846c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x41846c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0041d132
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041cef6
mov esp, ebp
pop ebp
ret
Function at 0x418730
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46908d
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0x7b2d00]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x30], ecx
mov edi, dword [ebp + 0xc]
mov eax, edi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x2c], 0
cmp dword [edi + 0x14], 7
jbe 0x418777
mov eax, dword [edi]
lea edx, [ebp - 0x2c]
push edx
push 0
push 0
push 2
push eax
push 0
push dword [ecx]
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
je 0x41879b
mov dword [esi], eax
mov byte [esi + 0x18], 0
jmp 0x418835
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x28]
shr eax, 1
xorps xmm0, xmm0
push eax
push 0x20
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
call fcn.004158e0
cmp dword [ebp - 0x14], 7
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0
cmova eax, dword [ebp - 0x28]
cmp dword [edi + 0x14], 7
jbe 0x4187da
mov edi, dword [edi]
lea ecx, [ebp - 0x2c]
push ecx
push eax
mov eax, dword [ebp - 0x30]
push 0
push 2
push edi
push 0
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
je 0x418854
mov ecx, dword [ebp - 0x14]
mov dword [esi], eax
mov byte [esi + 0x18], 0
cmp ecx, 7
jbe 0x418835
mov edx, dword [ebp - 0x28]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x41882b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4188c7
push ecx
push edx
call fcn.0041d132
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041cef6
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
shr ecx, 1
dec ecx
cmp ecx, eax
ja 0x418877
cmp dword [ebp - 0x14], 7
lea eax, [ebp - 0x28]
mov dword [ebp - 0x18], ecx
cmova eax, dword [ebp - 0x28]
xor edx, edx
mov word [eax + ecx*2], dx
jmp 0x418884
sub ecx, eax
push 0
push ecx
lea ecx, [ebp - 0x28]
call fcn.0041a400
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.004165e0
mov ecx, dword [ebp - 0x14]
mov byte [esi + 0x18], 1
cmp ecx, 7
jbe 0x418835
mov edx, dword [ebp - 0x28]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x41882b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x41882b
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
Function at 0x419dd0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x7b2d00]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
cmp dword [esi + 0x38], 0
je 0x419e8c
cmp byte [esi + 0x3d], 0
je 0x419e8c
mov eax, dword [esi]
push edi
push 0xffffffffffffffff
call dword [eax + 0xc]
cmp eax, 0xffffffff
je 0x419e7a
mov ecx, dword [esi + 0x38]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [esi + 0x40]
push eax
call dword [sym.imp.MSVCP140.dll_public:_int___thiscall_std::codecvt_char__char__struct__Mbstatet_::unshift_struct__Mbstatet___char___char___char___const]
sub eax, 0
je 0x419e41
sub eax, 1
je 0x419e45
sub eax, 2
jne 0x419e7a
mov byte [esi + 0x3d], al
mov al, 1
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041cef6
mov esp, ebp
pop ebp
ret
mov byte [esi + 0x3d], 0
mov edi, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
sub edi, eax
je 0x419e63
push dword [esi + 0x4c]
push edi
push 1
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
add esp, 0x10
cmp edi, eax
jne 0x419e7a
cmp byte [esi + 0x3d], 0
pop edi
sete al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041cef6
mov esp, ebp
pop ebp
ret
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041cef6
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov al, 1
xor ecx, ebp
pop esi
call fcn.0041cef6
mov esp, ebp
pop ebp
ret
Function at 0x41cc70
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, ecx
mov ecx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 4], esi
test ecx, ecx
jg 0x41cc9a
jl 0x41cc8e
test eax, eax
jne 0x41cc9a
pop esi
xor eax, eax
xor edx, edx
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [ebx + 0x38], 0
je 0x41ccb3
push ecx
push eax
push esi
mov ecx, ebx
call dword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::xsgetn_char___long_long___int64__]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push edi
mov ecx, ebx
mov edi, eax
call dword [sym.imp.MSVCP140.dll_protected:_long_long___int64____thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::_Gnavail_void_const]
mov ecx, eax
test ecx, ecx
je 0x41ccf8
mov esi, dword [ebp + 0xc]
cmp ecx, esi
cmovb esi, ecx
mov ecx, ebx
call dword [sym.imp.MSVCP140.dll_protected:_char____thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::gptr_void_const]
mov edi, dword [ebp - 4]
push esi
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add edi, esi
add esp, 0xc
mov dword [ebp - 4], edi
mov ecx, ebx
mov edi, dword [ebp + 0xc]
sub edi, esi
push esi
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::gbump_int_]
mov esi, dword [ebp - 4]
cmp dword [ebx + 0x4c], 0
je 0x41cd68
mov ecx, ebx
call dword [sym.imp.MSVCP140.dll_protected:_char____thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::eback_void_const]
lea ecx, [ebx + 0x3c]
cmp eax, ecx
jne 0x41cd1d
push dword [ebx + 0x54]
mov eax, dword [ebx + 0x50]
mov ecx, ebx
push eax
push eax
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::setg_char___char___char__]
mov eax, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
mov ecx, edi
cmp edi, 0xfff
jbe 0x41cd56
nop dword [eax]
push dword [ebx + 0x4c]
push 0xfff
push 1
push esi
call eax
sub edi, eax
add esp, 0x10
add esi, eax
mov ecx, edi
cmp eax, 0xfff
jne 0x41cd68
cmp edi, eax
mov eax, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
ja 0x41cd30
test ecx, ecx
je 0x41cd68
push dword [ebx + 0x4c]
push edi
push 1
push esi
call eax
add esp, 0x10
sub edi, eax
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
sub eax, edi
pop edi
pop esi
sbb edx, 0
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x41cd80
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, ecx
cmp dword [ebx + 0x38], 0
je 0x41cda5
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::xsputn_char_const___long_long___int64__]
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x10]
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], edi
call dword [sym.imp.MSVCP140.dll_protected:_long_long___int64____thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::_Pnavail_void_const]
mov dword [ebp + 0x10], eax
mov ecx, edx
mov dword [ebp - 4], ecx
test edi, edi
jl 0x41ce10
jg 0x41cdcb
test esi, esi
je 0x41ce10
test ecx, ecx
jl 0x41ce4a
jg 0x41cdd5
test eax, eax
je 0x41ce4a
cmp edi, ecx
jg 0x41cde5
jl 0x41cddf
cmp esi, eax
jae 0x41cde5
mov dword [ebp + 0x10], esi
mov dword [ebp - 4], edi
mov ecx, ebx
call dword [sym.imp.MSVCP140.dll_protected:_char____thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::pptr_void_const]
push dword [ebp + 0x10]
push dword [ebp + 8]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp + 0x10]
add esp, 0xc
add dword [ebp + 8], ecx
sub esi, ecx
sbb edi, dword [ebp - 4]
push ecx
mov ecx, ebx
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::pbump_int_]
mov eax, dword [ebp + 8]
test edi, edi
jl 0x41ce37
jg 0x41ce1d
test esi, esi
je 0x41ce37
mov ecx, dword [ebx + 0x4c]
test ecx, ecx
je 0x41ce37
push ecx
push esi
push 1
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
add esp, 0x10
sub esi, eax
sbb edi, 0
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
sub eax, esi
sbb edx, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp + 8]
jmp 0x41ce1d

Function at 0x41dd6a
Capabilities:
Parse pe header

Disassembly:
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x41dda9
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x41dda9
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x41dda9
mov eax, 0x10b
cmp word [ecx + 0x18], ax
jne 0x41dda9
cmp dword [ecx + 0x74], 0xe
jbe 0x41dda9
cmp dword [ecx + 0xe8], 0
setne al
ret
xor al, al
ret

Function at 0x41e02d
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push ecx
push 2
lea eax, [ebp - 4]
push eax
push 0x20000001
push str._x_sys_default_locale
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
xor ecx, ecx
test eax, eax
jne 0x41e054
mov eax, ecx
mov dword [ebp - 4], eax
jmp 0x41e057
mov eax, dword [ebp - 4]
push esi
mov esi, dword [ebp + 0xc]
push ecx
push ecx
push esi
push eax
push dword [ebp + 8]
push ecx
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push eax
push dword [esi]
call fcn.0041e009
pop esi
leave
ret 8
Function at 0x427a10
Capabilities:
Encode data using xor
Hash data using djb2

Disassembly:
sub esp, 0x18
mov eax, dword [0x7b2d00]
xor eax, esp
mov dword [esp + 0x14], eax
push esi
mov esi, dword [esp + 0x20]
test esi, esi
je 0x427adb
lea eax, [esp + 4]
push eax
push esi
push 2
call fcn.00442ae0
add esp, 0xc
test eax, eax
jne 0x427adb
lea eax, [esp + 8]
push eax
push esi
push 0x17
call fcn.00442ae0
add esp, 0xc
test eax, eax
jne 0x427adb
push ebx
push edi
mov edi, esi
xor ebx, ebx
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x427a64
sub edi, ecx
push edi
push 0x2e
push esi
call fcn.00442ab0
add esp, 0xc
test eax, eax
je 0x427a98
sub eax, esi
push eax
push 0x2e
push esi
call fcn.00442ab0
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x427a9a
inc ebx
mov ecx, esi
sub ecx, ebx
add edi, ecx
test ebx, ebx
cmovne esi, ebx
mov ebx, 0x1505
add edi, esi
cmp esi, edi
jae 0x427ac6
mov al, byte [esi]
push eax
call fcn.00435d40
movsx ecx, al
inc esi
mov eax, ebx
add esp, 4
shl eax, 5
add eax, ebx
xor ecx, eax
mov ebx, ecx
cmp esi, edi
jb 0x427aa8
pop edi
movzx eax, bl
pop ebx
pop esi
mov ecx, dword [esp + 0x14]
xor ecx, esp
call fcn.0041cef6
add esp, 0x18
ret
mov ecx, dword [esp + 0x18]
xor eax, eax
pop esi
xor ecx, esp
call fcn.0041cef6
add esp, 0x18
ret