joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4b0ca0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x24
call fcn.004eed60
mov eax, dword [0x573be0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
mov eax, esi
push edi
mov dword [ebp - 0x18], esi
lea ecx, [eax + 1]
jmp 0x4b0cd0
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4b0cd0
mov ebx, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0
push 0
sub eax, ecx
lea edi, [eax + 1]
push edi
push esi
push 8
push 0xfde9
mov dword [ebp - 0x20], 8
call ebx
mov esi, eax
test esi, esi
jg 0x4b0d48
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3ec
jne 0x4b0d2a
mov ecx, dword [ebp - 0x18]
push 0
push 0
push edi
push ecx
push 0
push 0xfde9
mov dword [ebp - 0x20], 0
call ebx
mov esi, eax
test esi, esi
jg 0x4b0d48
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x459
jne 0x4b0dda
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
push edx
push eax
jmp 0x4b0dc8
lea eax, [esi + esi]
call fcn.004ef030
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
mov eax, esp
push esi
push eax
push edi
push ecx
push edx
push 0xfde9
mov dword [ebp - 0x24], eax
call ebx
test eax, eax
je 0x4b0dda
mov esi, dword [ebp - 0x1c]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4b0d73
push 8
sub eax, edx
lea ecx, [ebp - 0x14]
push ecx
inc eax
push eax
push esi
push 0
push 0xfde9
call ebx
test eax, eax
je 0x4b0dda
mov eax, dword [ebp - 0x24]
lea edx, [ebp - 0x14]
push edx
push eax
call fcn.004ea73c
mov esi, eax
add esp, 8
test esi, esi
jne 0x4b0e7e
call fcn.004ee083
cmp dword [eax], 2
je 0x4b0dc0
call fcn.004ee083
cmp dword [eax], 9
jne 0x4b0dd2
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
push ecx
push edx
call fcn.004ee433
mov esi, eax
add esp, 8
test esi, esi
jne 0x4b0e7e
push 0xa9
push str..crypto_bio_bss_file.c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 1
push 2
call fcn.00499df0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
push 0x5287a8
push eax
push 0x5287a4
push ecx
push str.fopen_
push 5
call fcn.004999d0
add esp, 0x2c
call fcn.004ee083
cmp dword [eax], 2
jne 0x4b0e50
push 0xac
push str..crypto_bio_bss_file.c
push 0x80
push 0x6d
push 0x20
call fcn.00499df0
add esp, 0x14
xor eax, eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e8f3a
mov esp, ebp
pop ebp
ret
push 0xae
push str..crypto_bio_bss_file.c
push 2
push 0x6d
push 0x20
call fcn.00499df0
add esp, 0x14
xor eax, eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e8f3a
mov esp, ebp
pop ebp
ret
push 0x572b98
call fcn.00498960
mov edi, eax
add esp, 4
test edi, edi
jne 0x4b0eb0
push esi
call fcn.004eaf0c
add esp, 4
xor eax, eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e8f3a
mov esp, ebp
pop ebp
ret
push 0
push edi
call fcn.004983f0
push esi
push 1
push 0x6a
push edi
call fcn.00498750
add esp, 0x18
mov eax, edi
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e8f3a
mov esp, ebp
pop ebp
ret
Function at 0x4b1950
Capabilities:
Encode data using base64

Disassembly:
mov ecx, dword [esp + 4]
push ebp
push edi
mov edi, dword [esp + 0x14]
xor ebp, ebp
test edi, edi
jle 0x4b1a33
push esi
mov esi, dword [esp + 0x14]
lea esp, [esp]
cmp edi, 3
movzx edx, byte [esi]
jl 0x4b19ce
movzx eax, byte [esi + 1]
shl edx, 8
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 8
or edx, eax
mov eax, edx
shr eax, 0x12
and eax, 0x3f
movzx eax, byte [eax + 0x528930]
mov byte [ecx], al
mov eax, edx
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [eax + 0x528930]
mov byte [ecx + 1], al
inc ecx
mov eax, edx
shr eax, 6
and eax, 0x3f
movzx eax, byte [eax + 0x528930]
inc ecx
mov byte [ecx], al
inc ecx
and edx, 0x3f
mov dl, byte [edx + 0x528930]
mov byte [ecx], dl
jmp 0x4b1a20
shl edx, 0x10
cmp edi, 2
jne 0x4b19df
movzx eax, byte [esi + 1]
shl eax, 8
or edx, eax
mov eax, edx
shr eax, 0x12
and eax, 0x3f
movzx eax, byte [eax + 0x528930]
mov byte [ecx], al
mov eax, edx
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [eax + 0x528930]
inc ecx
mov byte [ecx], al
inc ecx
cmp edi, 1
jne 0x4b1a0d
lea edx, [edi + 0x3c]
jmp 0x4b1a1a
shr edx, 6
and edx, 0x3f
movzx edx, byte [edx + 0x528930]
mov byte [ecx], dl
inc ecx
mov byte [ecx], 0x3d
sub edi, 3
inc ecx
add ebp, 4
add esi, 3
test edi, edi
jg 0x4b1970
pop esi
pop edi
mov eax, ebp
mov byte [ecx], 0
pop ebp
ret
Function at 0x4cb7e0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
push ebx
push esi
push edi
mov edi, dword [esp + 0x18]
cmp ecx, dword [edi + 4]
jge 0x4cb7f9
mov esi, edi
mov edi, eax
jmp 0x4cb7fb
mov esi, eax
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x10]
cmp eax, dword [ebx + 8]
jg 0x4cb80b
mov eax, ebx
jmp 0x4cb815
push eax
push ebx
call fcn.0049ca40
add esp, 8
test eax, eax
jne 0x4cb81d
pop edi
pop esi
pop ebx
ret
jmp 0x5dccc0

Function at 0x4cd420
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov eax, 4
call fcn.004eed60
push ebp
mov ebp, dword [esp + 0xc]
push esi
push edi
mov edi, ecx
mov esi, edx
test edi, edi
je 0x4cd4e9
lea ecx, [ecx]
cmp ebp, 0x1001
jne 0x4cd453
movzx eax, byte [esi]
inc esi
mov dword [esp + 0xc], eax
dec edi
jmp 0x4cd4ce
cmp ebp, 0x1002
jne 0x4cd475
movzx eax, byte [esi]
shl eax, 8
inc esi
mov dword [esp + 0xc], eax
movzx ecx, byte [esi]
or eax, ecx
inc esi
mov dword [esp + 0xc], eax
sub edi, 2
jmp 0x4cd4ce
cmp ebp, 0x1004
jne 0x4cd4b3
movzx eax, byte [esi]
shl eax, 0x18
mov dword [esp + 0xc], eax
movzx edx, byte [esi + 1]
inc esi
shl edx, 0x10
or eax, edx
mov dword [esp + 0xc], eax
movzx ecx, byte [esi + 1]
inc esi
shl ecx, 8
or eax, ecx
inc esi
mov dword [esp + 0xc], eax
movzx edx, byte [esi]
or eax, edx
inc esi
mov dword [esp + 0xc], eax
sub edi, 4
jmp 0x4cd4ce
lea eax, [esp + 0xc]
push eax
push edi
push esi
call fcn.004ccfd0
add esp, 0xc
test eax, eax
jl 0x4cd4f3
sub edi, eax
add esi, eax
mov eax, dword [esp + 0xc]
test ebx, ebx
je 0x4cd4e1
mov ecx, dword [esp + 0x18]
push ecx
push eax
call ebx
add esp, 8
test eax, eax
jle 0x4cd4ee
test edi, edi
jne 0x4cd440
jmp 0x5e0cd0
pop edi
pop esi
pop ebp
pop ecx
ret
pop edi
pop esi
or eax, 0xffffffff
pop ebp
pop ecx
ret
Function at 0x4cfe60
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x130
call fcn.004eed60
mov eax, dword [0x573be0]
xor eax, esp
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x13c]
push ebx
push ebp
mov ebp, dword [esp + 0x158]
push esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x154]
push edi
mov edi, dword [esp + 0x144]
push eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], eax
mov ebx, 1
call fcn.004b2bf0
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
test esi, esi
jge 0x4cfec3
xor eax, eax
jmp 0x4d004d
lea ecx, [esp + 0x2c]
push ecx
call fcn.004e1860
mov edx, dword [esp + 0x160]
add esp, 4
mov dword [esp + 0x18], edx
test edi, edi
jne 0x4cfee8
mov dword [esp + 0x148], edi
jmp 0x4cff12
cmp dword [esp + 0x148], 0xffffffff
jne 0x4cff12
mov eax, edi
lea ecx, [eax + 1]
mov dword [esp + 0x10], ecx
jmp 0x4cff00
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4cff00
sub eax, dword [esp + 0x10]
mov dword [esp + 0x148], eax
test edx, edx
je 0x4d003b
jmp 0x4cff28
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
cmp edx, esi
jg 0x4cff2e
mov esi, edx
mov edx, ebx
shr edx, 0x18
mov eax, ebx
shr eax, 0x10
push 0
mov byte [esp + 0x18], dl
mov edx, dword [esp + 0x20]
push edx
mov byte [esp + 0x1d], al
mov eax, dword [esp + 0x150]
mov ecx, ebx
shr ecx, 8
push eax
mov byte [esp + 0x22], cl
lea ecx, [esp + 0x38]
push edi
push ecx
mov byte [esp + 0x2b], bl
call fcn.004e15a0
mov edx, dword [esp + 0x164]
mov eax, dword [esp + 0x38]
push edx
push eax
lea ecx, [esp + 0x48]
push ecx
call fcn.004e17a0
push 4
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x54]
push eax
call fcn.004e17a0
push 0
lea ecx, [esp + 0x12c]
push ecx
lea edx, [esp + 0x60]
push edx
call fcn.004e17b0
push esi
lea eax, [esp + 0x138]
push eax
push ebp
call fcn.004ee660
mov eax, dword [esp + 0x198]
add esp, 0x44
cmp eax, 1
jle 0x4d0026
dec eax
mov dword [esp + 0x10], eax
jmp 0x4cffd0
mov edx, dword [esp + 0x20]
push 0
lea ecx, [esp + 0x100]
push ecx
push edx
mov edx, dword [esp + 0x28]
mov eax, ecx
mov ecx, dword [esp + 0x154]
push eax
push ecx
push edi
push edx
call fcn.004e1970
add esp, 0x1c
test esi, esi
jle 0x4d001f
lea ecx, [esp + 0xfc]
mov eax, ebp
sub ecx, ebp
mov edi, esi
lea esp, [esp]
mov dl, byte [ecx + eax]
xor byte [eax], dl
inc eax
sub edi, 1
jne 0x4d0010
mov edi, dword [esp + 0x28]
sub dword [esp + 0x10], 1
jne 0x4cffd0
mov eax, dword [esp + 0x18]
sub eax, esi
inc ebx
add ebp, esi
mov dword [esp + 0x18], eax
test eax, eax
jne 0x4cff20
lea eax, [esp + 0x2c]
push eax
call fcn.004e1900
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0x13c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004e8f3a
add esp, 0x130
ret
Function at 0x4e15a0
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
mov eax, 0x8c
call fcn.004eed60
mov eax, dword [0x573be0]
xor eax, esp
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x94]
push ebx
push ebp
mov ebp, dword [esp + 0xa4]
push esi
mov esi, dword [esp + 0x9c]
mov dword [esp + 0xc], eax
xor eax, eax
push edi
mov dword [esp + 0x14], ecx
test ebp, ebp
je 0x4e15ef
mov eax, 1
mov dword [esi], ebp
jmp 0x4e15f1
mov ebp, dword [esi]
test ecx, ecx
je 0x4e16d4
push ebp
call fcn.004b2be0
mov ebx, eax
add esp, 4
cmp ebx, 0x80
jle 0x4e1620
push str.j____int_sizeof_ctx__key_
push 0x52
push str..cryptohmachmac.c
call fcn.0049d580
add esp, 0xc
mov edi, dword [esp + 0xa8]
cmp ebx, edi
jge 0x4e1677
mov ecx, dword [esp + 0x10]
push ecx
lea ebx, [esi + 4]
push ebp
push ebx
call fcn.004bbce0
add esp, 0xc
test eax, eax
je 0x4e1776
mov edx, dword [esp + 0x14]
push edi
push edx
push ebx
call fcn.004bbe90
add esp, 0xc
test eax, eax
je 0x4e1776
lea edi, [esi + 0x4c]
push edi
lea eax, [esi + 0x50]
push eax
push ebx
call fcn.004bbea0
add esp, 0xc
test eax, eax
je 0x4e1776
jmp 0x4e16b1
cmp edi, 0x80
jbe 0x4e1693
push str.len_0__len__int_sizeof_ctx__key_
push 0x5f
push str..cryptohmachmac.c
call fcn.0049d580
add esp, 0xc
mov ecx, dword [esp + 0x14]
push edi
push ecx
lea edx, [esi + 0x50]
push edx
call fcn.004ee660
mov eax, dword [esp + 0xb4]
lea edi, [esi + 0x4c]
add esp, 0xc
mov dword [edi], eax
mov edi, dword [edi]
cmp edi, 0x80
je 0x4e16dc
mov ecx, 0x80
sub ecx, edi
push ecx
lea edx, [edi + esi + 0x50]
push 0
push edx
call fcn.004eee10
add esp, 0xc
jmp 0x4e16dc
test eax, eax
je 0x4e1762
xor eax, eax
mov edi, edi
mov cl, byte [esi + eax + 0x50]
xor cl, 0x36
mov byte [esp + eax + 0x18], cl
inc eax
cmp eax, 0x80
jl 0x4e16e0
mov edi, dword [esp + 0x10]
push edi
lea ebx, [esi + 0x1c]
push ebp
push ebx
call fcn.004bbce0
add esp, 0xc
test eax, eax
je 0x4e1776
push ebp
call fcn.004b2be0
push eax
lea edx, [esp + 0x20]
push edx
push ebx
call fcn.004bbe90
add esp, 0x10
test eax, eax
je 0x4e1776
xor eax, eax
mov cl, byte [esi + eax + 0x50]
xor cl, 0x5c
mov byte [esp + eax + 0x18], cl
inc eax
cmp eax, 0x80
jl 0x4e1724
push edi
lea ebx, [esi + 0x34]
push ebp
push ebx
call fcn.004bbce0
add esp, 0xc
test eax, eax
je 0x4e1776
push ebp
call fcn.004b2be0
push eax
lea edx, [esp + 0x20]
push edx
push ebx
call fcn.004bbe90
add esp, 0x10
test eax, eax
je 0x4e1776
lea eax, [esi + 0x1c]
push eax
add esi, 4
push esi
call fcn.004bc000
add esp, 8
test eax, eax
jne 0x4e177a
xor eax, eax
jmp 0x4e177f
mov eax, 1
mov ecx, dword [esp + 0x98]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004e8f3a
add esp, 0x8c
ret
Function at 0x4e4420
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x28
call fcn.004eed60
mov eax, dword [esp + 0x38]
push ebx
push edi
xor edi, edi
push eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edi
call fcn.004b2bf0
mov ebx, eax
add esp, 4
cmp ebx, edi
jl 0x4e4661
push esi
mov esi, dword [esp + 0x48]
cmp esi, 0xffffffff
jne 0x4e44e7
mov esi, ebx
mov edi, dword [esp + 0x38]
mov ecx, dword [edi + 0x10]
push ebp
push ecx
call fcn.0049c800
mov ebp, eax
dec ebp
and ebp, 7
push edi
mov dword [esp + 0x24], ebp
call fcn.00498000
add esp, 8
mov edi, eax
mov dword [esp + 0x18], eax
test ebp, ebp
jne 0x4e4499
mov eax, dword [esp + 0x40]
mov byte [eax], 0
inc eax
dec edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x18], edi
cmp esi, 0xfffffffe
jne 0x4e451b
mov esi, edi
sub esi, ebx
sub esi, 2
test esi, esi
jle 0x4e4559
push 0xda
push str..crypto_rsa_rsa_pss.c
push esi
call fcn.0049c1a0
mov ebp, eax
add esp, 0xc
mov dword [esp + 0x10], ebp
test ebp, ebp
jne 0x4e4547
push 0xde
push str..crypto_rsa_rsa_pss.c
push 0x41
push 0x7d
push 4
call fcn.00499df0
add esp, 0x14
jmp 0x4e4644
cmp esi, 0xfffffffe
jne 0x4e44f1
jmp 0x4e445d
jge 0x4e445d
push 0xc3
push str..crypto_rsa_rsa_pss.c
push 0x88
push 0x7d
push 4
call fcn.00499df0
add esp, 0x14
pop esi
mov eax, edi
pop edi
pop ebx
add esp, 0x28
ret
lea edx, [ebx + esi + 2]
cmp edi, edx
jge 0x4e44a5
push 0xd5
push str..crypto_rsa_rsa_pss.c
push 0x6e
push 0x7d
push 4
call fcn.00499df0
add esp, 0x14
mov eax, dword [esp + 0x14]
pop ebp
pop esi
pop edi
pop ebx
add esp, 0x28
ret
push esi
push ebp
call fcn.0049f4e0
add esp, 8
test eax, eax
jle 0x4e4640
lea eax, [esp + 0x20]
sub edi, ebx
push eax
lea ebp, [edi - 1]
call fcn.004bbc90
mov ecx, dword [esp + 0x4c]
push 0
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.004bbce0
push 8
lea eax, [esp + 0x34]
push 0x542140
push eax
call fcn.004bbe90
mov ecx, dword [esp + 0x60]
push ebx
push ecx
lea edx, [esp + 0x44]
push edx
call fcn.004bbe90
add esp, 0x28
test esi, esi
je 0x4e45b4
mov eax, dword [esp + 0x10]
push esi
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.004bbe90
add esp, 0xc
mov edx, dword [esp + 0x40]
lea eax, [edx + ebp]
push 0
push eax
lea eax, [esp + 0x28]
push eax
call fcn.004bbfd0
lea ecx, [esp + 0x2c]
push ecx
call fcn.004bbf20
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x50]
push edx
push ebx
add eax, ebp
push eax
push ebp
mov ebp, dword [esp + 0x60]
push ebp
call fcn.004a7d20
add esp, 0x24
test eax, eax
jne 0x4e4640
sub edi, esi
xor byte [edi + ebp - 2], 1
lea eax, [edi + ebp - 2]
inc eax
test esi, esi
jle 0x4e4616
xor ecx, ecx
test esi, esi
jle 0x4e4616
mov edx, dword [esp + 0x10]
mov dl, byte [ecx + edx]
xor byte [eax], dl
inc ecx
inc eax
cmp ecx, esi
jl 0x4e4607
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4e462f
mov ecx, 8
sub ecx, eax
mov eax, 0xff
sar eax, cl
and byte [ebp], al
mov ecx, dword [esp + 0x18]
mov byte [ecx + ebp - 1], 0xbc
mov dword [esp + 0x14], 1
mov ebp, dword [esp + 0x10]
test ebp, ebp
je 0x4e453b
push ebp
call fcn.0049c340
mov eax, dword [esp + 0x18]
add esp, 4
pop ebp
pop esi
pop edi
pop ebx
add esp, 0x28
ret
mov eax, edi
pop edi
pop ebx
add esp, 0x28
ret
Function at 0x4e9fd4
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 0x10]
push edi
xor edi, edi
test ebx, ebx
jne 0x4e9ff6
call fcn.004ee083
mov dword [eax], 0x16
call fcn.004f191e
xor eax, eax
jmp 0x4ea069
push esi
push 0x3bc
jmp loc.005e17c0
pop edi
pop ebx
pop ebp
ret
Function at 0x4fb11f
Capabilities:
Link many functions at runtime
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x573be0]
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
mov eax, dword [ebp + 0xc]
xor edi, edi
push edi
mov dword [ebp - 0x20], eax
call ebx
mov esi, eax
mov dword [ebp - 0x18], esi
call fcn.004f3eee
mov dword [ebp - 0x14], eax
cmp dword [0x57a55c], edi
jne 0x4fb210
push 0x800
push edi
push 0x545b84
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov esi, eax
test esi, esi
jne 0x4fb19d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
jne 0x4fb2f0
push 0x545b84
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
test esi, esi
je 0x4fb2f0
push 0x545b9c
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4fb2f0
push eax
call ebx
push str.GetActiveWindow
push esi
mov dword [0x57a55c], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push str.GetLastActivePopup
push esi
mov dword [0x57a560], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push 0x545bcc
push esi
mov dword [0x57a564], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x57a56c], eax
test eax, eax
je 0x4fb20d
push 0x545be8
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x57a568], eax
mov esi, dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x4fb235
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4fb228
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [ebp - 0x14], edi
je 0x4fb24a
push 4
pop eax
jmp 0x4fb2f2
cmp dword [ebp - 0x14], edi
je 0x4fb24a
push dword [0x57a55c]
call dword [sym.imp.KERNEL32.dll_DecodePointer]
push 3
jmp 0x4fb22f
mov eax, dword [0x57a568]
mov ebx, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, esi
je 0x4fb2a8
cmp dword [0x57a56c], esi
je 0x4fb2a8
push eax
call ebx
push dword [0x57a56c]
mov dword [ebp - 0x14], eax
call ebx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x4fb2a8
test eax, eax
je 0x4fb2a8
call ecx
test eax, eax
je 0x4fb29d
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 0x4fb29d
test byte [ebp - 8], 1
jne 0x4fb2a8
mov esi, dword [ebp + 0x10]
or esi, 0x200000
jmp 0x4fb2d8
mov eax, dword [0x57a560]
cmp eax, esi
je 0x4fb2d5
push eax
call ebx
test eax, eax
je 0x4fb2d5
call eax
mov edi, eax
test edi, edi
je 0x4fb2d5
mov eax, dword [0x57a564]
cmp eax, esi
je 0x4fb2d5
push eax
call ebx
test eax, eax
je 0x4fb2d5
push edi
call eax
mov edi, eax
mov esi, dword [ebp + 0x10]
push dword [0x57a55c]
call ebx
test eax, eax
je 0x4fb2f0
push esi
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
push edi
call eax
jmp 0x4fb2f2
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004e8f3a
leave
ret
Function at 0x50206e
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
call fcn.004f25ee
mov esi, dword [ebp + 8]
push 2
mov edi, eax
lea eax, [ebp - 4]
push eax
mov ecx, esi
and ecx, 0x3ff
push 0x20000001
or ecx, 0x400
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
jne 0x5020a6
xor eax, eax
jmp 0x5020d2
cmp esi, dword [ebp - 4]
je 0x5020cf
cmp dword [ebp + 0xc], 0
je 0x5020cf
push dword [edi + 0x9c]
call fcn.00501c7c
push dword [edi + 0x9c]
mov esi, eax
call fcn.004faecf
pop ecx
pop ecx
cmp esi, eax
je 0x5020a2
xor eax, eax
inc eax
pop edi
pop esi
leave
ret
Function at 0x401e9f
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
push 0x4012d4
xor ebx, ebx
push 1
push ebx
call esi
push 0x40116c
push ebx
push ebx
mov dword [ebp - 4], eax
call esi
cmp dword [ebp + 0x14], ebx
mov dword [ebp - 8], eax
je 0x401ef7
push dword [ebp + 0x14]
push ebx
push 0x100400
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
cmp esi, ebx
je 0x401ef7
push 0x1388
push esi
call fcn.00403d19
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp + 0x18]
lea eax, [ebp - 0x10c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x10c]
push eax
call fcn.00403560
lea eax, [ebp - 0x10c]
push eax
call fcn.00403560
lea eax, [ebp - 0x10c]
push eax
call fcn.00402440
push dword [ebp + 0x1c]
lea eax, [ebp - 0x10c]
push eax
push dword [ebp + 0x18]
push dword [ebp + 0xc]
call fcn.00402608
cmp eax, ebx
mov dword [ebp + 0x14], eax
jl 0x401f5d
call fcn.00402ccb
lea eax, [ebp - 0x10c]
push eax
call fcn.00402e7a
call fcn.00402f66
push edi
mov edi, dword [ebp + 8]
cmp edi, ebx
jne 0x401f6f
push dword [ebp + 0xc]
jmp section..htext
cmp dword [ebp + 0x14], ebx
jl 0x401fcc
push 6
lea eax, [ebp - 0x210]
pop esi
push eax
call fcn.00403f65
cmp byte [ebp - 0x210], bl
je 0x401fb1
lea eax, [ebp - 0x210]
push 0x4013f8
push eax
call fcn.00403529
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x401fb1
push 0xa
pop esi
test byte [0x405114], 1
jne 0x401fcc
push 0x10040
push dword [ebp + 0xc]
push esi
push dword [ebp + 0x10]
push edi
call fcn.004038cc
mov esi, dword [ebp + 0x1c]
cmp dword [esi], 1
jne 0x401ff7
test byte [0x405114], 1
jne 0x401ff7
push 0x10044
push dword [ebp + 0xc]
push 7
push dword [ebp + 0x10]
push edi
call fcn.004038cc
cmp eax, 7
jne 0x401ff7
mov dword [esi], ebx
cmp edi, ebx
je 0x402013
push ebx
push ebx
call fcn.0040396e
test eax, eax
jne 0x402013
push ebx
push 0x40307a
push edi
call dword [sym.imp.USER32.dll_EnumChildWindows]
cmp dword [ebp - 8], ebx
pop edi
je 0x402022
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 4], ebx
pop esi
pop ebx
je 0x402032
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp + 0x14]
leave
ret 0x18
Function at 0x402608
Capabilities:
Copy file
Delete file
Get common file path
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x63c
push ebx
and byte [ebp - 0x228], 0
push esi
push edi
lea eax, [ebp - 0x430]
push 0x104
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x430]
push eax
call fcn.00403560
lea eax, [ebp - 0x32c]
xor edi, edi
push eax
push edi
lea eax, [ebp - 0x430]
push 0x4014ec
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
lea eax, [ebp - 0x32c]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea eax, [ebp - 0x32c]
push edi
push eax
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push edi
push edi
call fcn.0040396e
test eax, eax
mov eax, 0x4014d4
jne 0x402690
mov eax, 0x4014c0
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push eax
lea eax, [ebp - 0x534]
push eax
call esi
push edi
push dword [ebp + 0x10]
call fcn.00402c55
mov dword [ebp + 8], eax
lea eax, [ebp - 0x63c]
push eax
push dword [ebp + 0x10]
call fcn.004035ba
test eax, eax
je 0x402714
lea eax, [ebp - 0x63c]
push 0x4014ac
push eax
call fcn.00403529
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x63c]
push eax
call fcn.004029c0
test eax, eax
je 0x402714
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
mov edi, 0x4014a4
lea eax, [ebp - 0x20]
push edi
push eax
call ebx
test eax, eax
je 0x40270a
mov edi, 0x40149c
lea eax, [ebp - 0x20]
push edi
push eax
call ebx
test eax, eax
jne 0x402714
lea eax, [ebp - 0x228]
push edi
push eax
call esi
cmp byte [ebp - 0x228], 0
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
mov ebx, 0x401498
je 0x402742
lea eax, [ebp - 0x534]
push ebx
push eax
call edi
lea eax, [ebp - 0x228]
push eax
lea eax, [ebp - 0x534]
push eax
call edi
lea eax, [ebp - 0x228]
push eax
push dword [ebp + 0x10]
jmp 0x424aa8

Function at 0x4028e3
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
lea eax, [ebp - 4]
push ebx
push eax
xor ebx, ebx
push 1
push ebx
push 0x4012a4
push SysStringLen
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4029bb
lea eax, [ebp - 8]
push esi
push eax
lea eax, [ebp - 0x10c]
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push eax
push ebx
push ebx
push 0x401514
mov dword [ebp - 8], 0x104
push dword [ebp - 4]
call esi
test eax, eax
jne 0x4029b1
push dword [ebp + 8]
lea eax, [ebp - 0x10c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x4029b1
lea eax, [ebp - 0x210]
push 0x401500
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
call fcn.00403a06
test eax, eax
je 0x402978
lea eax, [ebp - 0x210]
push 0x4014f8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 8]
mov dword [ebp - 8], 0x104
push eax
lea eax, [ebp - 0x10c]
push eax
push ebx
push ebx
push 0x4014f0
push dword [ebp - 4]
call esi
test eax, eax
jne 0x4029b1
push ebx
lea eax, [ebp - 0x210]
push dword [ebp + 0xc]
push eax
lea eax, [ebp - 0x10c]
push eax
call fcn.00403e01
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
pop ebx
leave
ret 8