joyce8/EMBER2024-capa huggingface dataset:
Function at 0x412570
Capabilities:
Get common file path
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcb8
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
shr eax, 0x1f
jmp dword [eax*4 + 0x44f5f0]

Function at 0x41d690
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa50
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov esi, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [eax + esi + 2], 0
lea esi, [esi + 2]
jne 0x41d6b0
sar esi, 1
lea ecx, [esp + 0x34]
push ecx
push 0
push 0
push esi
push eax
push 0
call dword [0x454df0]
mov ebx, dword [esp + 0x34]
mov edi, 0xffffffff
test ebx, ebx
jns 0x41d6e4
mov eax, 0xffffffff
jmp 0x41d6e7
lea eax, [ebx + ebx]
push eax
call fcn.0040c4d0
add esp, 4
lea ecx, [esp + 0x34]
push ecx
push ebx
mov dword [esp + 0x34], eax
push eax
push esi
mov eax, dword [ebp + 0xc]
push dword [eax + 4]
push 0
call dword [0x454df0]
mov eax, dword [esp + 0x34]
mov ecx, eax
add ecx, 0xd
js 0x41d71c
lea edi, [eax*2 + 0x1a]
push edi
call fcn.0040c4d0
add esp, 4
mov esi, eax
mov dword [esp + 0x160], 0xf520964
mov dword [esp + 0x164], 0x3750d6d
mov dword [esp + 0x168], 0x7260174
mov dword [esp + 0x16c], 0x1b7f056e
mov dword [esp + 0x170], 0x1f69196e
mov dword [esp + 0x174], 0x13611d65
mov dword [esp + 0x178], 0x17161162
mov dword [esp + 0x17c], 0
mov dword [esp + 0x6c0], 0
mov eax, dword [esp + 0x6c0]
cmp eax, 0x1f
ja 0x41d7e0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x6c0]
movzx eax, byte [esp + eax + 0x160]
push dword [esp + 0x6c0]
push eax
call fcn.004229d0
add esp, 8
mov ecx, dword [esp + 0x6c0]
mov byte [esp + ecx + 0x160], al
inc dword [esp + 0x6c0]
mov eax, dword [esp + 0x6c0]
cmp eax, 0x20
jb 0x41d7a0
mov eax, dword [esp + 0x2c]
movzx ecx, word [eax]
mov eax, esi
test cx, cx
je 0x41d811
mov eax, dword [esp + 0x2c]
lea edx, [eax + 2]
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41d800
mov word [eax], 0
movzx ecx, word [esp + 0x160]
test cx, cx
je 0x41d841
lea edx, [esp + 0x162]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41d830
mov word [eax], 0
lea eax, [esp + 0x5a0]
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.004491c0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44fef8]
Function at 0x424ff0
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x60
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x78]
mov edi, dword [esp + 0x74]
mov ecx, dword [ebx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x425010
cmp eax, 0xffffffdd
jge 0x425027
mov eax, 0xffffffff
jmp 0x42502a
add eax, 0x22
push eax
call fcn.0040c4d0
add esp, 4
mov esi, eax
mov dword [esp + 0x18], 0x49c74be8
mov dword [esp + 0x1c], 0x45d747c4
mov dword [esp + 0x20], 0x41dd43ca
mov dword [esp + 0x24], 0xbd25bfd9
mov dword [esp + 0x28], 0xb926bb18
mov dword [esp + 0x2c], 0xb52cb723
mov dword [esp + 0x30], 0xb139b32b
mov dword [esp + 0x34], 0xad22af24
mov dword [esp + 0x38], 0xabac
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x23
ja 0x4250bb
nop
nop
mov eax, dword [esp + 4]
movzx eax, byte [esp + eax + 0x18]
push dword [esp + 4]
push eax
call fcn.00425ea0
add esp, 8
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x24
jb 0x425090
mov ecx, dword [ebx + 4]
movzx edx, word [ecx]
mov eax, esi
test dx, dx
je 0x4250e1
add ecx, 2
mov eax, esi
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x4250d0
mov word [eax], 0
movzx ecx, word [esp + 0x18]
test cx, cx
je 0x425111
lea edx, [esp + 0x1a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425100
mov word [eax], 0
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x80]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0x97b0b7f
mov dword [esp + 0x1c], 0x535078e
mov dword [esp + 0x20], 0x18a037f
mov dword [esp + 0x24], 0x1d651f8c
mov dword [esp + 0x28], 0x19971b6e
mov dword [esp + 0x2c], 0x1567176f
mov dword [esp + 0x30], 0x11271366
mov dword [esp + 0x34], 0x2d1b2f25
mov dword [esp + 0x38], 0x29482b1a
mov dword [esp + 0x3c], 0x25ab27a3
mov dword [esp + 0x40], 0x21ac235f
mov dword [esp + 0x44], 0x3d4f3f7d
mov dword [esp + 0x48], 0x39b63b4e
mov dword [esp + 0x4c], 0x35be3743
mov dword [esp + 0x50], 0x316533b8
mov dword [esp + 0x54], 0x4d0d4f4c
mov dword [esp + 0x58], 0x494a4b7a
mov word [esp + 0x5c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x45
ja 0x4251f6
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x18]
push dword [esp]
push eax
call fcn.00425f20
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x18], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x46
jb 0x4251d0
lea eax, [esp + 4]
lea ecx, [esp + 0x18]
push eax
push 0x425510
push ecx
push esi
call fcn.00426340
add esp, 0x10
jmp dword [0x450328]
Function at 0x428e80
Capabilities:
Contain obfuscated stackstrings
Get disk information

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x6c
mov esi, dword [0x454df0]
mov dword [esp + 0x10], 0x59865b7f
mov dword [esp + 0x14], 0x5dbb5fa9
mov dword [esp + 0x18], 0x51ae53bb
mov dword [esp + 0x1c], 0x55a65797
mov dword [esp + 0x20], 0x69ae6ba4
mov dword [esp + 0x24], 0x6d9a6f8f
mov dword [esp + 0x28], 0x6159638b
mov word [esp + 0x2c], 0x6760
mov dword [esp + 0x2e], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x21
ja 0x428f1b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
movzx eax, byte [esp + eax + 0x10]
push dword [esp + 4]
push eax
call fcn.0042b550
add esp, 8
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x22
jb 0x428ef0
lea edi, [esp + 0x60]
lea eax, [esp + 0x10]
push edi
push 0
push 0
push 0xe
push eax
push 0
call esi
mov ebx, dword [esp + 0x60]
test ebx, ebx
jns 0x428f3e
mov eax, 0xffffffff
jmp 0x428f41
lea eax, [ebx + ebx]
push eax
call fcn.0040c4d0
add esp, 4
mov esi, eax
mov ebp, dword [0x454df0]
mov dword [esp + 0x10], 0x834e8165
mov dword [esp + 0x14], 0x8725852b
mov dword [esp + 0x18], 0x8b268929
mov dword [esp + 0x1c], 0x8f3e8d4d
mov dword [esp + 0x20], 0x93569120
mov dword [esp + 0x24], 0x97229535
mov dword [esp + 0x28], 0x9b7f9939
mov word [esp + 0x2c], 0x9d9c
mov dword [esp + 0x2e], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x21
ja 0x428fdb
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
movzx eax, byte [esp + eax + 0x10]
push dword [esp + 4]
push eax
call fcn.0042b5d0
add esp, 8
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x22
jb 0x428fb0
push edi
push ebx
push esi
push 0xe
lea eax, [esp + 0x20]
push eax
push 0
call ebp
mov eax, dword [esp + 0x60]
mov ecx, eax
add ecx, 9
jns 0x428ffb
mov eax, 0xffffffff
jmp 0x429002
lea eax, [eax*2 + 0x12]
push eax
call fcn.0040c4d0
add esp, 4
mov edi, eax
mov dword [esp + 0x10], 0x398a3b98
mov dword [esp + 0x14], 0x258b2797
mov dword [esp + 0x18], 0x218d23b1
mov dword [esp + 0x1c], 0x2d852f89
mov dword [esp + 0x20], 0x292a2bb1
mov dword [esp + 0x24], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x17
ja 0x42907b
nop
nop
mov eax, dword [esp + 4]
movzx eax, byte [esp + eax + 0x10]
push dword [esp + 4]
push eax
call fcn.0042b670
add esp, 8
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x18
jb 0x429050
movzx ecx, word [esi]
mov eax, edi
test cx, cx
je 0x4290a1
lea edx, [esi + 2]
mov eax, edi
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x429090
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x4290d1
lea edx, [esp + 0x12]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4290c0
mov word [eax], 0
lea eax, [esp + 0x68]
push eax
push edi
call fcn.00449360
add esp, 8
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x450a50]
Function at 0x42f900
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x80
mov ebx, dword [0x454df0]
mov dword [esp + 0x14], 0x4105472b
mov dword [esp + 0x18], 0x4dd243d0
mov dword [esp + 0x1c], 0x49ed4f00
mov dword [esp + 0x20], 0xb5e94bd4
mov dword [esp + 0x24], 0xb112b7db
mov dword [esp + 0x28], 0xbd23b306
mov dword [esp + 0x2c], 0xb911bf20
mov dword [esp + 0x30], 0xa519bb28
mov dword [esp + 0x34], 0xa1f3a708
mov dword [esp + 0x38], 0xad06a3f5
mov dword [esp + 0x3c], 0xa901af31
mov dword [esp + 0x40], 0x9537ab35
mov dword [esp + 0x44], 0x9107973f
mov dword [esp + 0x48], 0x9dc49306
mov dword [esp + 0x4c], 0x99099f04
mov dword [esp + 0x50], 0x859a9b0c
mov word [esp + 0x54], 0
mov byte [esp + 0x56], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x42
ja 0x42f9d6
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x14]
push dword [esp]
push eax
call fcn.004321b0
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x43
jb 0x42f9b0
lea esi, [esp + 0x7c]
lea eax, [esp + 0x14]
push esi
push 0
push 0
push 0x1f
push eax
push 0
call ebx
mov ebx, dword [esp + 0x7c]
test ebx, ebx
jns 0x42f9f9
mov eax, 0xffffffff
jmp 0x42f9fc
lea eax, [ebx + ebx]
push eax
call fcn.0040c4d0
add esp, 4
mov dword [esp + 0x70], eax
mov ebp, dword [0x454df0]
mov dword [esp + 0x14], 0xd10dcf2b
mov dword [esp + 0x18], 0xd562d360
mov dword [esp + 0x1c], 0xd975d710
mov dword [esp + 0x20], 0xdd79db6c
mov dword [esp + 0x24], 0xa102df3b
mov dword [esp + 0x28], 0xa513a36e
mov dword [esp + 0x2c], 0xa901a710
mov dword [esp + 0x30], 0xad09ab18
mov dword [esp + 0x34], 0xb143af08
mov dword [esp + 0x38], 0xb56eb35d
mov dword [esp + 0x3c], 0xb911b701
mov dword [esp + 0x40], 0xbd0fbb0d
mov dword [esp + 0x44], 0x810fbf17
mov dword [esp + 0x48], 0x856c832e
mov dword [esp + 0x4c], 0x8929873c
mov dword [esp + 0x50], 0x8d8a8b24
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x3f
ja 0x42fac6
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x14]
push dword [esp]
push eax
call fcn.00432230
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x40
jb 0x42faa0
push esi
push ebx
mov esi, dword [esp + 0x78]
push esi
push 0x1f
lea eax, [esp + 0x24]
push eax
push 0
call ebp
lea eax, [esp + 0x68]
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.004491c0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x451598]
Function at 0x438580
Capabilities:
Open clipboard
Read clipboard data

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2c
xor eax, eax
mov dword [esp], 0
call dword [sym.imp.USER32.dll_OpenClipboard]
sub esp, 4
xor ebx, ebx
cmp eax, 0
je 0x4386df
xor eax, eax
mov dword [esp], 0
mov dword [esp + 4], 0
call dword [sym.imp.USER32.dll_GetWindowLongW]
sub esp, 8
mov dword [esp], 1
call dword [sym.imp.USER32.dll_GetClipboardData]
sub esp, 4
mov edi, eax
cmp edi, 0
setne al
xor ebx, ebx
test al, 1
jne 0x4385e1
jmp 0x4386d9
mov dword [esp], edi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
sub esp, 4
mov esi, eax
jmp 0x4385f1
mov dword [esp], esi
call fcn.0040c710
mov ebp, eax
jmp 0x4385fd
jmp 0x4385ff
xor ebx, ebx
cmp ebp, 0
je 0x4386cd
mov al, byte [esp + 0x10]
mov byte [esp + 0x14], al
mov byte [esp + 0x18], 9
mov byte [esp + 0x19], 0xe3
mov byte [esp + 0x1a], 0xe5
mov byte [esp + 0x1b], 0xe1
mov byte [esp + 0x1c], 0xf2
mov byte [esp + 0x1d], 0xe2
mov byte [esp + 0x1e], 0xf1
mov byte [esp + 0x1f], 0xe7
mov byte [esp + 0x20], 0xf0
mov byte [esp + 0x21], 0x39
mov byte [esp + 0x22], 0xe2
mov byte [esp + 0x23], 0xe1
mov byte [esp + 0x24], 0xec
mov byte [esp + 0x25], 0x5b
mov eax, 0xe
mov byte [esp + eax + 0x18], 0
add eax, 1
cmp eax, 0x13
jne 0x43865d
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x13
jae 0x4386a7
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x18]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0043be80
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x18], al
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
jmp 0x438672
lea eax, [esp + 0x18]
mov ecx, dword [esp + 0x40]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
call fcn.0040d2b0
sub esp, 0xc
mov bl, al
jmp 0x4386c6
and bl, 1
jmp 0x4386cb
jmp 0x4386cd
mov dword [esp], edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
sub esp, 4
call dword [sym.imp.USER32.dll_CloseClipboard]
and bl, 1
movzx eax, bl
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x447130
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x2c]
mov ecx, ebx
add ecx, ebp
mov edx, edi
adc edx, 0
xor eax, eax
mov esi, 0xfffffffe
cmp esi, ecx
mov ecx, 0
sbb ecx, edx
mov esi, dword [esp + 0x28]
jb 0x4471d6
mov ecx, ebx
shr ecx, 2
mov edx, ebp
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebx
and edx, 0xfffffffc
add esi, edx
add edx, ebp
mov ebp, ebx
and ebp, 3
mov ecx, ebp
shr ecx, 1
mov ebx, edx
mov edi, esi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov edi, dword [esp + 0x2c]
mov ecx, edi
xor ecx, 2
and ecx, ebp
je 0x447331
and edi, 2
movzx ebx, byte [edx + edi]
mov byte [esi + edi], bl
cmp ecx, 1
je 0x447331
mov ebp, esi
movzx ebx, byte [edx + edi + 1]
mov byte [esi + edi + 1], bl
cmp ecx, 2
je 0x447331
mov esi, edi
movzx ecx, byte [edx + edi + 2]
mov byte [ebp + edi + 2], cl
jmp 0x447331
mov dword [esp + 4], 0x5c5d5e5f
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 3
ja 0x447216
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 4]
push dword [esp]
push eax
call fcn.004480e0
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 4], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 4
jb 0x4471f0
mov eax, dword [esp + 4]
mov ecx, dword [0x454df4]
test ecx, ecx
je 0x447272
xor edx, edx
mov edi, dword [0x454df8]
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x54ca534e
je 0x447244
inc edx
cmp ecx, edx
jne 0x447230
mov edi, dword [esp + 0x24]
jmp 0x447272
mov ecx, dword [edi + edx*8 + 4]
cmp ecx, eax
mov edi, dword [esp + 0x24]
je 0x447272
lea eax, [esp + 8]
push 2
push 0
push 0
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 7
push dword [0x454dfc]
push ecx
call fcn.004459d0
add esp, 0x28
test eax, eax
js 0x447331
push 0xc95dc39
push dword [0x45ce08]
call fcn.004487d0
add esp, 8
push 0
push 0
push ebx
push esi
push edi
push ebp
push dword [esp + 0x20]
call eax
mov esi, eax
mov edi, dword [esp + 8]
mov dword [esp + 4], 0x5c5d5e5f
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 3
ja 0x4472e6
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 4]
push dword [esp]
push eax
call fcn.004480e0
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 4], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 4
jb 0x4472c0
mov ecx, dword [0x454df4]
test ecx, ecx
je 0x447311
mov edx, dword [esp + 4]
xor ebx, ebx
mov ebp, dword [0x454df8]
mov eax, esi
nop
nop
cmp dword [ebp + ebx*8], 0x625b6034
je 0x447315
inc ebx
cmp ecx, ebx
jne 0x447300
jmp 0x447331
mov eax, esi
jmp 0x447331
mov ecx, dword [ebp + ebx*8 + 4]
cmp ecx, edx
je 0x447331
push edi
push 1
push dword [0x454dfc]
push ecx
call fcn.004459d0
mov eax, esi
add esp, 0x10
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x1002205a
Capabilities:
Parse pe header

Disassembly:
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x10022099
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x10022099
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x10022099
mov eax, 0x10b
cmp word [ecx + 0x18], ax
jne 0x10022099
cmp dword [ecx + 0x74], 0xe
jbe 0x10022099
cmp dword [ecx + 0xe8], 0
setne al
ret
xor al, al
ret
Function at 0x10024a24
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 0x10024ac1
push ebx
push esi
call fcn.100249ed
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.10024981
add esp, 0x24
mov dword [ebp - 4], eax
test eax, eax
jne 0x10024a6e
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x10024ac0
push edi
push eax
call fcn.10023322
mov edi, eax
pop ecx
push ebx
test edi, edi
jne 0x10024a8e
call fcn.10023370
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x10024abf
push ebx
push dword [ebp - 4]
push edi
push dword [ebp - 8]
push esi
push ebx
push ebx
call fcn.10024981
add esp, 0x20
test eax, eax
jne 0x10024aad
push edi
call fcn.10023370
jmp 0x10024ab5
push ebx
call fcn.10023370
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 0x10024d2e
Capabilities:
Allocate thread local storage

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x1002d260
push 0x1002d258
push str.FlsAlloc
push 0x1f
call fcn.10024c4a
mov esi, eax
add esp, 0x10
test esi, esi
je 0x10024d62
push dword [ebp + 8]
mov ecx, esi
call dword [0x1002b150]
call esi
jmp 0x10024d68
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
pop esi
pop ebp
ret 4

Function at 0x10024dac
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x1002d270
push 0x1002d268
push str.FlsGetValue
push 0x21
call fcn.10024c4a
mov esi, eax
add esp, 0x10
test esi, esi
je 0x10024de3
push dword [ebp + 8]
mov ecx, esi
call dword [0x1002b150]
call esi
pop esi
pop ebp
ret 4
pop esi
pop ebp
jmp dword [sym.imp.KERNEL32.dll_TlsGetValue]

Function at 0x10024deb
Capabilities:
Set thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x1002d278
push 0x1002d270
push str.FlsSetValue
push 0x22
call fcn.10024c4a
mov esi, eax
add esp, 0x10
test esi, esi
je 0x10024e25
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call dword [0x1002b150]
call esi
pop esi
pop ebp
ret 8
pop esi
pop ebp
jmp dword [sym.imp.KERNEL32.dll_TlsSetValue]
Function at 0x1002a330
Capabilities:
Parse pe header

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

Function at 0x401037
Capabilities:
Delete file
Extract resource via kernel32 functions
Get common file path

Disassembly:
call 0x401037
push 0
call sub.kernel32.dll_ExitProcess
push ebp
mov ebp, esp
add esp, 0xfffffbf4
push esi
push edi
push ebx
push 0
call sub.kernel32.dll_GetModuleHandleA
mov dword [0x403030], eax
mov dword [ebp - 8], 0
push 0xa
push section..data
push 0
call sub.kernel32.dll_FindResourceA
or eax, eax
je 0x401089
mov dword [ebp - 4], eax
push dword [ebp - 4]
push 0
call sub.kernel32.dll_SizeofResource
mov dword [ebp - 0xc], eax
push dword [ebp - 4]
push 0
call sub.kernel32.dll_LoadResource
or eax, eax
je 0x401089
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x4010c1
push 4
push 0x1000
push dword [ebp - 0xc]
push 0
call sub.kernel32.dll_VirtualAlloc
mov edi, eax
push dword [ebp - 0xc]
push dword [ebp - 8]
push edi
call sub.kernel32.dll_RtlMoveMemory
mov dword [ebp - 8], edi
push 0xdeadbeef
push dword [ebp - 0xc]
push dword [ebp - 8]
call section..text
cmp dword [ebp - 8], 0
je 0x4010fb
lea eax, [ebp - 0x40c]
push eax
push 0x400
call sub.kernel32.dll_GetTempPathA
push str.dup2patcher.dll
lea eax, [ebp - 0x40c]
push eax
call sub.kernel32.dll_lstrcatA
push dword [ebp - 0xc]
push dword [ebp - 8]
lea eax, [ebp - 0x40c]
push eax
call fcn.00401184
lea eax, [ebp - 0x40c]
push eax
call sub.kernel32.dll_LoadLibraryA
or eax, eax
je 0x401130
mov ebx, eax
push str.load_patcher
push ebx
call sub.kernel32.dll_GetProcAddress
or eax, eax
je 0x40111e
call eax
push ebx
call sub.kernel32.dll_FreeLibrary
lea eax, [ebp - 0x40c]
push eax
call sub.kernel32.dll_DeleteFileA
pop ebx
pop edi
pop esi
leave
ret

Function at 0x401184
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push dword [ebp + 8]
call sub.kernel32.dll_CreateFileA
cmp eax, 0xffffffff
jne 0x4011af
xor eax, eax
leave
ret 0xc
mov dword [ebp - 4], eax
push 0
lea eax, [ebp - 8]
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp - 4]
call sub.kernel32.dll_WriteFile
push dword [ebp - 4]
call sub.kernel32.dll_FlushFileBuffers
push dword [ebp - 4]
call sub.kernel32.dll_CloseHandle
mov eax, dword [ebp - 8]
leave
ret 0xc
Function at 0xcd1370
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov eax, dword [esp + 4]
push ebx
push esi
push edi
push 0x1a
push eax
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
test esi, esi
jne 0xcd138e
pop edi
pop esi
xor al, al
pop ebx
ret
push esi
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
push esi
push 0
mov edi, eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push edi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ecx, dword [esp + 0x14]
push 0xcfa074
push ecx
mov edi, eax
call fcn.00ce5198
mov esi, eax
add esp, 8
test esi, esi
jne 0xcd13cb
pop edi
pop esi
xor al, al
pop ebx
ret
push esi
push ebx
push 1
push edi
call fcn.00ce502e
push esi
call fcn.00ce4fb1
add esp, 0x14
mov al, 1
pop edi
pop esi
pop ebx
ret
Function at 0xcd4850
Capabilities:
Query or enumerate registry value

Disassembly:
mov ecx, dword [esp + 4]
sub esp, 0x218
lea eax, [esp]
push ebp
push esi
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
push eax
push 0x20019
push 0
push ecx
push SysReAllocString
call edi
test eax, eax
jne 0xcd48ae
mov ecx, dword [esp + 0xc]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegQueryValueW]
lea edx, [esp + 0x10]
lea eax, [esp + 0x1c]
push edx
push eax
push 0xcff720
push ecx
mov dword [esp + 0x20], 0x104
call ebp
test eax, eax
je 0xcd48ba
mov edx, dword [esp + 0xc]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
pop edi
pop esi
pop ebp
add esp, 0x218
ret
mov eax, dword [esp + 0xc]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push eax
call esi
lea ecx, [esp + 0x1c]
push str.DefaultIcon
push ecx
call fcn.00ce51e1
add esp, 8
lea edx, [esp + 0xc]
lea eax, [esp + 0x1c]
push edx
push 0x20019
push 0
push eax
push SysReAllocString
call edi
test eax, eax
jne 0xcd48ae
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x10]
lea edx, [esp + 0x1c]
push ecx
push edx
push 0xcff720
push eax
mov dword [esp + 0x20], 0x104
call ebp
test eax, eax
je 0xcd492a
mov ecx, dword [esp + 0xc]
push ecx
call esi
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x218
ret
mov edx, dword [esp + 0xc]
push edx
call esi
lea eax, [esp + 0x1c]
push 0x2c
push eax
call fcn.00ce6082
xor esi, esi
add esp, 8
cmp eax, esi
je 0xcd4957
mov word [eax], si
add eax, 2
push eax
call fcn.00ce6030
add esp, 4
jmp 0xcd4959
xor eax, eax
lea ecx, [esp + 0x18]
push 1
lea edx, [esp + 0x18]
push ecx
push edx
push eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x24], esi
push eax
mov dword [esp + 0x2c], esi
call dword [sym.imp.SHELL32.dll_ExtractIconExW]
test eax, eax
je 0xcd48ae
mov al, byte [esp + 0x22c]
test al, al
mov eax, dword [esp + 0x14]
jne 0xcd48b0
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
add esp, 0x218
ret

Function at 0xcd4ff0
Capabilities:
Execute syscall

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 8]
lea edx, [ebp + 0xc]
int 0x2e
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret