joyce8/EMBER2024-capa huggingface dataset:
Function at 0x418702
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x28
push ebx
push ebp
push esi
push edi
xor edi, edi
call dword [sym.imp.USER32.dll_GetFocus]
mov ebp, dword [esp + 0x3c]
mov ebx, eax
and dword [esp + 0x10], edi
push str.PB_WindowID
push ebp
call dword [sym.imp.USER32.dll_GetPropW]
mov esi, eax
push 9
pop eax
test esi, esi
je 0x418798
lea eax, [esp + 0x14]
push eax
push ebp
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
test eax, eax
je 0x418795
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [esp + 0x14], eax
jne 0x418795
lea eax, [esi - 1]
push eax
push dword [0x43c064]
call fcn.0040588f
mov edi, eax
mov dword [esp + 0x10], 1
xor eax, eax
push 9
cmp dword [edi + 0x10], eax
jle 0x418797
mov ecx, dword [edi + 4]
add ecx, 4
pop esi
cmp word [ecx - 2], si
jne 0x418785
mov edx, 0xfa01
cmp word [ecx], dx
je 0x418790
inc eax
add ecx, 6
cmp eax, dword [edi + 0x10]
jl 0x418775
jmp 0x418795
and dword [esp + 0x10], 0
push 9
pop eax
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
test ebx, ebx
je 0x41883e
push eax
call esi
test al, al
jns 0x41883e
push 0x11
call esi
test al, al
js 0x41883e
push 0x10
call esi
test al, al
js 0x41883e
push 0x12
call esi
test al, al
js 0x41883e
push 0x10
lea eax, [esp + 0x1c]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetClassNameW]
cmp dword [esp + 0x10], 0
jne 0x41883e
push 5
lea eax, [esp + 0x1c]
push str.RichE
push eax
call fcn.0041cfc4
add esp, 0xc
test eax, eax
je 0x418812
push 4
lea eax, [esp + 0x1c]
push str.RICHE
push eax
call fcn.0041cfc4
add esp, 0xc
test eax, eax
jne 0x418829
push 0
push 0
push 0x44e
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, 0x800
je 0x41887f
lea eax, [esp + 0x18]
push str.Scintilla
push eax
call fcn.004240d0
pop ecx
pop ecx
test eax, eax
je 0x41887f
test ebp, ebp
je 0x418862
push 0x11
call esi
test al, al
js 0x41885a
push 0x10
call esi
test al, al
js 0x41885a
push 0x12
call esi
test al, al
jns 0x418862
push 1
push ebp
call fcn.004189a3
test ebx, ebx
je 0x418876
push str.PB_Hotkey
push ebx
call dword [sym.imp.USER32.dll_GetPropW]
test eax, eax
jne 0x41887f
test edi, edi
je 0x41887f
mov eax, dword [edi + 8]
jmp 0x418881
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 4
Function at 0x419856
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov ecx, eax
push ebx
mov ebx, dword [ebp + 0xc]
and eax, 0x3f
sar ecx, 6
push esi
push edi
imul edi, eax, 0x38
mov eax, dword [ecx*4 + 0x43c408]
mov dword [ebp - 0xc], ecx
mov ecx, dword [edi + eax + 0x18]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x419896
cmp byte [ebx], 0xa
jne 0x419896
or byte [edi + eax + 0x28], 4
jmp 0x41989b
and byte [edi + eax + 0x28], 0xfb
add ecx, ebx
mov eax, ebx
mov dword [ebp - 0x10], ecx
mov esi, ebx
mov dword [ebp - 8], eax
cmp ebx, ecx
jae 0x41999a
mov dl, byte [eax]
cmp dl, 0x1a
je 0x41997d
inc eax
cmp dl, 0xd
je 0x4198c7
mov dword [ebp - 8], eax
mov byte [esi], dl
jmp 0x4198ed
cmp eax, ecx
jae 0x4198fb
mov cl, byte [eax]
xor eax, eax
cmp cl, 0xa
sete al
inc eax
add dword [ebp - 8], eax
cmp cl, 0xa
sete al
dec al
and al, 3
add al, 0xa
mov byte [esi], al
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
xor edx, edx
inc edx
add esi, edx
cmp eax, ecx
jb 0x4198af
jmp 0x41999a
push 0
lea eax, [ebp - 0x10]
push eax
push 1
lea eax, [ebp - 1]
push eax
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x419978
cmp dword [ebp - 0x10], 0
je 0x419978
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx*4 + 0x43c408]
test byte [eax + edi + 0x28], 0x48
je 0x419952
mov dl, byte [ebp - 1]
lea eax, [esi + 1]
mov dword [ebp - 0x14], eax
cmp dl, 0xa
jne 0x41993d
mov byte [esi], dl
jmp 0x41994e
mov byte [esi], 0xd
mov eax, dword [ecx*4 + 0x43c408]
mov byte [eax + edi + 0x2a], dl
mov eax, dword [ebp - 0x14]
mov esi, eax
jmp 0x41999a
cmp byte [ebp - 1], 0xa
jne 0x419961
cmp esi, ebx
jne 0x419961
mov byte [esi], 0xa
jmp 0x419999
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.00419cf7
add esp, 0x10
cmp byte [ebp - 1], 0xa
je 0x41999a
mov byte [esi], 0xd
jmp 0x419999
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx*4 + 0x43c408]
mov al, byte [ecx + edi + 0x28]
test al, 0x40
jne 0x419997
or al, 2
mov byte [ecx + edi + 0x28], al
jmp 0x41999a
mov byte [esi], dl
inc esi
sub esi, ebx
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret
Function at 0x4199a3
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [ebp + 8]
mov ecx, eax
push ebx
mov ebx, dword [ebp + 0xc]
and eax, 0x3f
push esi
sar ecx, 6
push edi
imul edi, eax, 0x38
mov dword [ebp - 8], ecx
mov eax, dword [ecx*4 + 0x43c408]
push 0xa
pop edx
mov dword [ebp - 0x18], edx
mov ecx, dword [eax + edi + 0x18]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x4199e9
cmp word [ebx], dx
jne 0x4199e9
or byte [eax + edi + 0x28], 4
jmp 0x4199ee
and byte [eax + edi + 0x28], 0xfb
lea edx, [ebx + ecx*2]
mov eax, ebx
mov dword [ebp - 0xc], edx
mov esi, ebx
mov dword [ebp - 4], eax
cmp ebx, edx
jae 0x419b51
mov dword [ebp - 0x10], 0xd
movzx ecx, word [eax]
mov edx, ecx
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0xc]
cmp ecx, 0x1a
je 0x419b31
add eax, 2
cmp cx, word [ebp - 0x10]
je 0x419a2f
mov dword [ebp - 4], eax
mov word [esi], cx
jmp 0x419a65
cmp eax, edx
jae 0x419a73
movzx eax, word [eax]
xor ecx, ecx
cmp ax, word [ebp - 0x18]
mov edx, eax
push 0xa
sete cl
xor eax, eax
lea ecx, [ecx*2 + 2]
add dword [ebp - 4], ecx
pop ecx
cmp dx, cx
mov edx, dword [ebp - 0xc]
sete al
dec eax
and eax, 3
add eax, ecx
mov word [esi], ax
mov eax, dword [ebp - 4]
push 2
pop ecx
add esi, ecx
cmp eax, edx
jb 0x419a0a
jmp 0x419b51
push 0
lea eax, [ebp - 0x18]
push eax
push 2
lea eax, [ebp - 4]
push eax
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x419b2c
cmp dword [ebp - 0x18], 0
je 0x419b2c
mov edx, dword [ebp - 8]
push 0xa
mov eax, dword [edx*4 + 0x43c408]
test byte [eax + edi + 0x28], 0x48
je 0x419b02
lea eax, [esi + 2]
mov dword [ebp - 0x1c], eax
mov ax, word [ebp - 4]
pop ecx
mov word [ebp - 2], ax
cmp ax, cx
jne 0x419ac6
mov word [esi], cx
jmp 0x419afd
push 0xd
pop ecx
mov word [esi], cx
movzx ecx, ax
mov eax, dword [edx*4 + 0x43c408]
mov dx, word [ebp - 2]
shr ecx, 8
push 0xa
mov byte [eax + edi + 0x2a], dl
mov edx, dword [ebp - 8]
mov eax, dword [edx*4 + 0x43c408]
mov byte [eax + edi + 0x2b], cl
mov eax, dword [edx*4 + 0x43c408]
pop ecx
mov byte [eax + edi + 0x2c], cl
mov esi, dword [ebp - 0x1c]
jmp 0x419b51
pop eax
cmp word [ebp - 4], ax
jne 0x419b12
cmp esi, ebx
jne 0x419b12
mov word [esi], ax
jmp 0x419b4e
push 1
push 0xffffffffffffffff
push 0xfffffffffffffffe
push dword [ebp + 8]
call fcn.00419cf7
add esp, 0x10
push 0xa
pop eax
cmp word [ebp - 4], ax
je 0x419b51
push 0xd
pop eax
jmp 0x419b0d
mov edx, dword [ebp - 8]
mov edx, dword [edx*4 + 0x43c408]
mov al, byte [edx + edi + 0x28]
test al, 0x40
jne 0x419b4b
or al, 2
mov byte [edx + edi + 0x28], al
jmp 0x419b51
mov word [esi], cx
add esi, 2
sub esi, ebx
and esi, 0xfffffffe
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret

Function at 0x41b7ca
Capabilities:
Parse pe header

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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x43b2d0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 0x18], eax
call fcn.0040c516
add eax, 0x50
lea edi, [ebp - 0x10]
mov dword [ebp - 0x14], eax
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
call fcn.0040c516
lea ecx, [ebp - 0x10]
xor edx, edx
mov dword [eax + 0x34c], ecx
lea ecx, [esi + 0x80]
mov eax, dword [ebp - 0x14]
mov dword [eax], esi
lea edi, [eax + 4]
mov dword [edi], ecx
test ecx, ecx
je 0x41f081
cmp word [ecx], dx
je 0x41f081
mov eax, dword [0x430564]
push edi
dec eax
push eax
push 0x430450
call fcn.0041f1fa
mov eax, dword [ebp - 0x14]
add esp, 0xc
xor edx, edx
mov dword [ebp - 0x10], edx
mov eax, dword [eax]
test eax, eax
je 0x41f0f4
cmp word [eax], dx
je 0x41f0f4
mov eax, dword [edi]
test eax, eax
je 0x41f0a5
cmp word [eax], dx
je 0x41f0a5
lea eax, [ebp - 0x10]
push eax
call fcn.0041f25b
jmp 0x41f0ae
lea eax, [ebp - 0x10]
push eax
call fcn.0041f549
cmp dword [ebp - 0x10], 0
pop ecx
jne 0x41f11e
mov eax, dword [0x43044c]
push dword [ebp - 0x14]
dec eax
push eax
push 0x430140
call fcn.0041f1fa
add esp, 0xc
test al, al
je 0x41f11e
mov eax, dword [edi]
xor edi, edi
test eax, eax
je 0x41f0e9
cmp word [eax], di
je 0x41f0e9
lea eax, [ebp - 0x10]
push eax
call fcn.0041f25b
pop ecx
jmp 0x41f120
lea eax, [ebp - 0x10]
push eax
call fcn.0041f549
jmp 0x41f0e6
mov eax, dword [edi]
test eax, eax
je 0x41f10b
cmp word [eax], dx
je 0x41f10b
lea eax, [ebp - 0x10]
push eax
call fcn.0041f67d
pop ecx
jmp 0x41f11e
mov dword [ebp - 0x10], 0x104
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], eax
xor edi, edi
cmp dword [ebp - 0x10], 0
je 0x41f1e9
lea eax, [ebp - 0x10]
push eax
lea eax, [esi + 0x100]
neg esi
sbb esi, esi
and esi, eax
push esi
call fcn.0041f76f
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x41f1e9
movzx ecx, si
push ecx
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
test eax, eax
je 0x41f1e9
push 1
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_IsValidLocale]
test eax, eax
je 0x41f1e9
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x41f176
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
push edi
push 0x55
add eax, 0x250
push eax
push dword [ebp - 0xc]
call fcn.0040ceb0
test ebx, ebx
je 0x41f1e4
push edi
push 0x55
lea eax, [ebx + 0x120]
push eax
push dword [ebp - 0xc]
call fcn.0040ceb0
push 0x40
push ebx
push 0x1001
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x41f1e9
push 0x40
lea eax, [ebx + 0x80]
push eax
push 0x1002
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x41f1e9
push 0xa
push 0x10
lea ecx, [ebx + 0x100]
push ecx
push esi
call fcn.00427a5c
add esp, 0x10
xor eax, eax
inc eax
jmp 0x41f1eb
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041839c
leave
ret
Function at 0x41f875
Capabilities:
Get geographical location

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push esi
push edi
call fcn.0040c516
mov esi, dword [ebp + 8]
mov edi, eax
push 2
lea eax, [ebp - 4]
mov ecx, esi
push eax
and ecx, 0x3ff
push 0x20000001
or ecx, 0x400
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x41f8e4
cmp esi, dword [ebp - 4]
je 0x41f8df
cmp dword [ebp + 0xc], 0
je 0x41f8df
mov esi, dword [edi + 0x50]
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x41f8bc
push dword [edi + 0x50]
sub esi, ecx
sar esi, 1
call fcn.0041f93e
pop ecx
xor ecx, ecx
cmp eax, esi
setne cl
mov eax, ecx
jmp 0x41f8e6
xor eax, eax
inc eax
jmp 0x41f8e6
xor eax, eax
pop edi
pop esi
leave
ret

Function at 0x420ff0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x42101d
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x42101d
mov edx, 0x10b
xor eax, eax
cmp word [ecx + 0x18], dx
sete al
pop ebp
ret
xor eax, eax
pop ebp
ret
Function at 0x42ca5c
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 0x42caf9
push ebx
push esi
call fcn.0042cafc
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.0041c07b
add esp, 0x24
mov dword [ebp - 4], eax
test eax, eax
jne 0x42caa6
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x42caf8
push edi
push eax
call fcn.0040bde8
mov edi, eax
pop ecx
push ebx
test edi, edi
jne 0x42cac6
call fcn.0040bdae
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x42caf7
push ebx
push dword [ebp - 4]
push edi
push dword [ebp - 8]
push esi
push ebx
push ebx
call fcn.0041c07b
add esp, 0x20
test eax, eax
jne 0x42cae5
push edi
call fcn.0040bdae
jmp 0x42caed
push ebx
call fcn.0040bdae
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 0x43d000
Capabilities:
Allocate thread local storage

Disassembly:
push 0x30
push 0
push 0x43ba04
call fcn.00401020
add esp, 0xc
push 0
call sub.KERNEL32.dll_GetModuleHandleW
mov dword [0x43ba08], eax
push 0
push 0x1000
push 0
call sub.KERNEL32.dll_HeapCreate
mov dword [0x43ba04], eax
call fcn.00401000
call fcn.00403cc0
call fcn.00403c42
call fcn.00403be0
call fcn.004039f0
call fcn.00403682
call fcn.00403630
call fcn.00402d43
call fcn.00402af7
call fcn.00402a51
call fcn.004028b1
call fcn.0040280d
call fcn.004027d0
call fcn.004026d4
call fcn.00402634
call fcn.0040254f
call fcn.00402530
call fcn.00402436
call fcn.00401f96
call fcn.00401ed0
call fcn.00401277
call fcn.00401d5e
mov eax, 0x43b02c
push eax
push 0x262
push 0x32a
push 0
push 0
push 0
call fcn.004023aa
push 0x258
push 0x320
push 5
push 5
push 0
call fcn.004023d7
push eax
call fcn.00401a43
mov dword [0x43ba2c], 0
call fcn.004023cf
mov dword [0x43ba30], eax
mov ebx, dword [0x43ba30]
cmp ebx, 0x333c
jne 0x43d121
mov dword [0x43ba2c], 1
call fcn.004011ac
push 1
call fcn.00401385
and eax, eax
je 0x43d13e
mov dword [0x43ba2c], 1
call fcn.00401c1b
push eax
call fcn.004028f9
push 0
push 0
push 0
call fcn.004028e4
push eax
call fcn.004013df
mov dword [0x43ba28], 0
jmp 0x43d16f
mov eax, 0xb4
cmp eax, dword [0x43ba28]
jl 0x43d2a8
fild dword [0x43ba28]
sub esp, 8
fstp qword [esp]
call fcn.00401190
fstp qword [0x43ba1c]
lea edx, [0x43ba1c]
push dword [edx + 4]
push dword [edx]
call fcn.004011a0
fstp qword [0x43ba0c]
lea edx, [0x43ba1c]
push dword [edx + 4]
push dword [edx]
call fcn.00401180
fstp qword [0x43ba14]
push dword [0x43ba28]
push dword [0x43ba28]
push 0x64
call fcn.004028e4
push eax
fld qword [0x43ba14]
fmul qword [0x43b048]
fadd qword [0x43b050]
push eax
fistp dword [esp]
fld qword [0x43ba0c]
fmul qword [0x43b048]
fadd qword [0x43b050]
push eax
fistp dword [esp]
call fcn.004028bd
mov edx, dword [0x43bf7c]
push edx
push edx
push dword [0x43bf7c]
lea edx, [0x43ba0c]
push dword [edx + 4]
push dword [edx]
call fcn.00403a20
mov edx, 0x43b028
push edx
call fcn.00403d30
mov edx, dword [0x43bf7c]
push edx
push edx
lea edx, [0x43ba14]
push dword [edx + 4]
push dword [edx]
call fcn.00403a20
pop eax
add dword [0x43bf7c], 2
fld qword [0x43ba14]
fmul qword [0x43b058]
fadd qword [0x43b050]
sub esp, 8
fstp qword [esp]
fld qword [0x43ba0c]
fmul qword [0x43b058]
fadd qword [0x43b050]
sub esp, 8
fstp qword [esp]
mov edx, dword [0x43b068]
add dword [esp + 0x10], edx
call fcn.00402840
pop dword [0x43bf7c]
fstp st(0)
add dword [0x43ba28], 0x1e
jno 0x43d16f
call fcn.0040295e
mov ebx, dword [0x43ba2c]
cmp ebx, 1
jne 0x43d0ff
jmp 0x43d2be
push 0
call 0x43d2dd
call fcn.00403d00
push dword [0x43ba04]
call sub.KERNEL32.dll_HeapDestroy
call sub.KERNEL32.dll_ExitProcess
call fcn.00401354
call fcn.004013c1
call fcn.00401550
call fcn.00401d59
call fcn.00401f73
call fcn.004024da
call sub.ole32.dll_OleUninitialize
call fcn.0040253f
call fcn.004025be
call fcn.004027a9
call fcn.00402834
call fcn.00402a45
call fcn.00402d69
call fcn.00403a10
call fcn.00403c36
call fcn.00403a10
call fcn.00401d7b
call fcn.00403bd0
ret
Function at 0x43b656
Capabilities:
Encode data using xor

Disassembly:
mov ecx, 0x43b3c1
sub ebx, edx
or edx, ebx
dec ebx
call fcn.0043b690
sub edx, edx
xor dword [esi], ecx
sub edx, 0xd8179772
sub edx, ebx
inc esi
or ebx, edx
add edx, 0xe7816074
cmp esi, edi
jne fcn.0043b656
mov edx, edx
sub ebx, 1
ret
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, 0x58286c74
nop
nop
test eax, eax
nop
nop
nop
nop
je 0x43304e
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
cmp eax, ebx
nop
nop
nop
jne 0x433024
nop
nop
nop
nop
mov eax, section..data
nop
mov ebx, 0x4304d8
mov ecx, 0x388c5acd
nop
nop
nop
nop
test eax, eax
nop
nop
je 0x433084
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
add eax, 4
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
jne 0x43306c
popal
nop
nop
nop
nop
nop
jmp 0x431219
Function at 0x4035d4
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
movzx eax, word [0x46d00c]
mov dword [ebp - 8], eax
lea eax, [ebp - 4]
push eax
push 1
push 0
push 0x40366c
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
jne 0x40364c
xor eax, eax
push ebp
push 0x403645
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0xc], 4
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push 0
push 0
push 0x403688
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegQueryValueExA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40364c
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegCloseKey
ret
mov ax, word [0x46d00c]
and ax, 0xffc0
mov dx, word [ebp - 8]
and dx, 0x3f
or ax, dx
mov word [0x46d00c], ax
mov esp, ebp
pop ebp
ret

Function at 0x40434c
Capabilities:
Write file on windows

Disassembly:
push ecx
cmp byte [0x46f048], 0
je 0x4043ad
cmp word [0x46f21c], 0xd7b2
jne 0x404375
cmp dword [0x46f224], 0
jbe 0x404375
mov eax, 0x46f218
call dword [0x46f234]
push 0
lea eax, [esp + 4]
push eax
push 0x1e
push 0x46d074
push 0xfffffffffffffff5
call sub.kernel32.dll_GetStdHandle
push eax
call sub.kernel32.dll_WriteFile
push 0
lea eax, [esp + 4]
push eax
push 2
push 0x4043d4
push 0xfffffffffffffff5
call sub.kernel32.dll_GetStdHandle
push eax
call sub.kernel32.dll_WriteFile
pop edx
ret
cmp byte [0x46d01c], 0
jne 0x4043c9
push 0
push 0x46d094
push 0x46d074
push 0
call sub.user32.dll_MessageBoxA
pop edx
ret
Function at 0x405dd8
Capabilities:
Get geographical location
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffee0
push ebx
push esi
mov dword [ebp - 4], eax
push 0x105
lea eax, [ebp - 0x11d]
push eax
push 0
call sub.kernel32.dll_GetModuleFileNameA
mov byte [ebp - 0x12], 0
lea eax, [ebp - 8]
push eax
push 0xf0019
push 0
push 0x406008
push 0x80000001
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
je 0x405e5b
lea eax, [ebp - 8]
push eax
push 0xf0019
push 0
push 0x406008
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
je 0x405e5b
lea eax, [ebp - 8]
push eax
push 0xf0019
push 0
push 0x406024
push 0x80000001
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
jne 0x405ee4
xor eax, eax
push ebp
push 0x405edd
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x18], 5
lea eax, [ebp - 0x11d]
mov edx, 0x105
call fcn.00405c20
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x12]
push eax
push 0
push 0
lea eax, [ebp - 0x11d]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA
test eax, eax
je 0x405ec2
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x12]
push eax
push 0
push 0
push 0x406044
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA
test eax, eax
je 0x405ec2
mov byte [ebp - 0x12], 0
mov byte [ebp - 0xe], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x405ee4
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegCloseKey
ret
push 0x105
mov eax, dword [ebp - 4]
push eax
lea eax, [ebp - 0x11d]
push eax
call sub.kernel32.dll_lstrcpynA
push 5
lea eax, [ebp - 0xd]
push eax
push 3
call sub.kernel32.dll_GetThreadLocale
push eax
call sub.kernel32.dll_GetLocaleInfoA
xor esi, esi
cmp byte [ebp - 0x11d], 0
je 0x405ffe
cmp byte [ebp - 0xd], 0
jne 0x405f2b
cmp byte [ebp - 0x12], 0
je 0x405ffe
lea eax, [ebp - 0x11d]
push eax
call sub.kernel32.dll_lstrlenA
mov ebx, eax
lea eax, [ebp - 0x11d]
add ebx, eax
jmp 0x405f44
dec ebx
cmp byte [ebx], 0x2e
je 0x405f53
lea eax, [ebp - 0x11d]
cmp ebx, eax
jne 0x405f43
lea eax, [ebp - 0x11d]
cmp ebx, eax
je 0x405ffe
inc ebx
cmp byte [ebp - 0x12], 0
je 0x405f90
mov edx, ebx
sub edx, eax
mov eax, 0x105
sub eax, edx
push eax
lea eax, [ebp - 0x12]
push eax
push ebx
call sub.kernel32.dll_lstrcpynA
push 2
push 0
lea eax, [ebp - 0x11d]
push eax
call sub.kernel32.dll_LoadLibraryExA
mov esi, eax
test esi, esi
jne 0x405ffe
cmp byte [ebp - 0xd], 0
je 0x405ffe
lea eax, [ebp - 0x11d]
mov edx, ebx
sub edx, eax
mov eax, 0x105
sub eax, edx
push eax
lea eax, [ebp - 0xd]
push eax
push ebx
call sub.kernel32.dll_lstrcpynA
push 2
push 0
lea eax, [ebp - 0x11d]
push eax
call sub.kernel32.dll_LoadLibraryExA
mov esi, eax
test esi, esi
jne 0x405ffe
mov byte [ebp - 0xb], 0
lea eax, [ebp - 0x11d]
mov edx, ebx
sub edx, eax
mov eax, 0x105
sub eax, edx
push eax
lea eax, [ebp - 0xd]
push eax
push ebx
call sub.kernel32.dll_lstrcpynA
push 2
push 0
lea eax, [ebp - 0x11d]
push eax
call sub.kernel32.dll_LoadLibraryExA
mov esi, eax
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x409984
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff00
push ebx
push esi
mov esi, ecx
mov ebx, dword [ebp + 8]
push pe_nt_image_headers32
lea ecx, [ebp - 0x100]
push ecx
push edx
push eax
call sub.kernel32.dll_GetLocaleInfoA_1
test eax, eax
jle 0x4099bd
mov ecx, eax
dec ecx
lea edx, [ebp - 0x100]
mov eax, ebx
call fcn.004045b8
jmp 0x4099c6
mov eax, ebx
mov edx, esi
call fcn.0040451c
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x4099d0
Capabilities:
Get geographical location

Disassembly:
push ebx
push esi
push edi
push ecx
mov ebx, ecx
mov esi, edx
mov edi, eax
push 2
lea eax, [esp + 4]
push eax
push esi
push edi
call sub.kernel32.dll_GetLocaleInfoA_1
test eax, eax
jle 0x4099f1
mov al, byte [esp]
jmp 0x4099f3
mov eax, ebx
pop edx
pop edi
pop esi
pop ebx
ret

Function at 0x40a078
Capabilities:
Write file on windows

Disassembly:
add esp, 0xfffffbbc
push 0x400
lea ecx, [esp + 0x48]
call 0x409ef0
mov eax, dword [0x46e900]
cmp byte [eax], 0
je 0x40a0e0
mov eax, dword [0x46e73c]
call fcn.00402ce4
push 0
lea eax, [esp + 4]
push eax
lea eax, [esp + 0x4c]
call fcn.00408ba8
push eax
lea eax, [esp + 0x50]
push eax
push 0xfffffffffffffff5
call sub.kernel32.dll_GetStdHandle_1
push eax
call sub.kernel32.dll_WriteFile_1
push 0
lea eax, [esp + 4]
push eax
push 2
push 0x40a128
push 0xfffffffffffffff5
call sub.kernel32.dll_GetStdHandle_1
push eax
call sub.kernel32.dll_WriteFile_1
jmp 0x40a116
push 0x40
lea eax, [esp + 8]
push eax
mov eax, dword [0x46e6f8]
mov eax, dword [eax + 4]
push eax
mov eax, dword [0x46f714]
call fcn.00405be4
push eax
call sub.user32.dll_LoadStringA_1
push 0x2010
lea eax, [esp + 8]
push eax
lea eax, [esp + 0x4c]
push eax
push 0
call sub.user32.dll_MessageBoxA_1
add esp, 0x444
ret

Function at 0x40ac8c
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
xor edx, edx
mov dword [ebp - 0xc], edx
xor edx, edx
push ebp
push 0x40acf0
push dword fs:[edx]
mov dword fs:[edx], esp
push 7
lea edx, [ebp - 7]
push edx
push 0x1004
push eax
call sub.kernel32.dll_GetLocaleInfoA_1
lea eax, [ebp - 0xc]
lea edx, [ebp - 7]
mov ecx, 7
call fcn.00404730
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_GetACP
mov edx, eax
pop eax
call fcn.004088a0
mov ebx, eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40acf7
lea eax, [ebp - 0xc]
call fcn.004044c8
ret