joyce8/EMBER2024-capa huggingface dataset:
Function at 0x461580
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ebd02
mov eax, dword fs:[0]
push eax
sub esp, 0x9c
mov eax, dword [0x52610c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0xa4], esi
lea ecx, [esi + 4]
mov dword [esi], vtable.CGameBase.0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
mov dword [ebp - 0xa8], esi
jb 0x4615dd
mov eax, dword [ecx]
jmp 0x4615df
mov eax, ecx
mov byte [eax], 0
push 0
push 0x507250
mov dword [ebp - 4], 0
call fcn.00409af0
mov dword [ebp - 4], 1
mov dword [esi], vtable.COrigin.0
mov dword [esi + 0x30], 7
mov dword [esi + 0x2c], 0
cmp dword [esi + 0x30], 8
jb 0x46161b
mov eax, dword [esi + 0x1c]
jmp 0x46161e
lea eax, [esi + 0x1c]
xor ecx, ecx
mov word [eax], cx
lea edx, [ecx + 0x22]
mov dword [ebp - 0xa0], 0x610022
mov dword [ebp - 0x9c], 0x7e0018
mov dword [ebp - 0x98], 0x500072
mov dword [ebp - 0x94], 0x45004d
mov dword [ebp - 0x90], 0x430050
mov dword [ebp - 0x8c], 0x66004f
mov dword [ebp - 0x88], 0x560043
mov dword [ebp - 0x84], 0x7e0043
mov dword [ebp - 0x80], 0x50006d
mov dword [ebp - 0x7c], 0x45004b
mov dword [ebp - 0x78], 0x4c004b
mov dword [ebp - 0x74], 0x6e007e
mov dword [ebp - 0x70], 0x41004d
mov dword [ebp - 0x6c], 0x4e0043
mov dword [ebp - 0x68], 0x4d0061
mov dword [ebp - 0x64], 0x56004c
mov dword [ebp - 0x60], 0x4c0047
mov dword [ebp - 0x5c], 0x56
mov byte [ebp - 4], 3
movzx eax, word [ebp + ecx*2 - 0x9e]
xor ax, dx
mov word [ebp + ecx*2 - 0x58], ax
movzx eax, word [ebp + ecx*2 - 0x9c]
xor ax, word [ebp - 0xa0]
mov word [ebp + ecx*2 - 0x56], ax
add ecx, 2
cmp ecx, 0x22
jae 0x4616f5
mov dx, word [ebp - 0xa0]
jmp 0x4616c0
xor eax, eax
mov word [ebp - 0x14], ax
cmp word [ebp - 0x58], ax
je 0x461716
lea eax, [ebp - 0x58]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x461707
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x58]
push eax
lea ecx, [esi + 0x1c]
call fcn.00403e20
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a0475
mov esp, ebp
pop ebp
ret
Function at 0x465e20
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ec698
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x52610c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov dword [ebp - 0x2c], 0x4977630e
mov dword [ebp - 0x28], 0x7d6b636f
mov dword [ebp - 0x24], 0x7a6f6a20
mov byte [ebp - 0x20], 0
lea ecx, [ebp - 0x5c]
mov dword [ebp - 4], 0
call fcn.00478210
mov byte [ebp - 4], 1
xor edx, edx
nop word [eax + eax]
mov cl, byte [ebp + edx - 0x2b]
xor cl, byte [ebp - 0x2c]
mov byte [ebp + edx - 0x1f], cl
inc edx
cmp edx, 0xb
jb 0x465e80
lea ecx, [ebp - 0x1f]
mov byte [ebp - 0x14], 0
push ecx
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.00407900
add esp, 0xc
mov edx, esi
mov byte [ebp - 4], 2
mov ecx, eax
call fcn.00420880
mov eax, dword [ebp - 0x30]
cmp eax, 0x10
jb 0x465ec8
inc eax
lea ecx, [ebp - 0x44]
push eax
push dword [ebp - 0x44]
call fcn.004099a0
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x30], 0xf
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x44], 0
cmp eax, 0x10
jb 0x465eef
inc eax
lea ecx, [ebp - 0x5c]
push eax
push dword [ebp - 0x5c]
call fcn.004099a0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a0475
mov esp, ebp
pop ebp
ret 4

Function at 0x465f10
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ec6d8
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x52610c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x2c], 0x4876620f
mov dword [ebp - 0x28], 0x7c6a626e
mov dword [ebp - 0x24], 0x7b6e6b21
mov byte [ebp - 0x20], 0
lea ecx, [ebp - 0x5c]
mov dword [ebp - 4], 0
call fcn.00478210
mov edx, eax
mov byte [ebp - 4], 1
xor ecx, ecx
mov al, byte [ebp + ecx - 0x2b]
xor al, byte [ebp - 0x2c]
mov byte [ebp + ecx - 0x1f], al
inc ecx
cmp ecx, 0xb
jb 0x465f73
lea eax, [ebp - 0x1f]
mov byte [ebp - 0x14], 0
push eax
push edx
lea eax, [ebp - 0x44]
push eax
call fcn.00407900
add esp, 0xc
mov edx, eax
mov byte [ebp - 4], 2
mov ecx, esi
call fcn.00420580
mov eax, dword [ebp - 0x30]
cmp eax, 0x10
jb 0x465fbb
inc eax
lea ecx, [ebp - 0x44]
push eax
push dword [ebp - 0x44]
call fcn.004099a0
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x30], 0xf
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x44], 0
cmp ecx, 0x10
jb 0x465fe2
inc ecx
push ecx
push dword [ebp - 0x5c]
lea ecx, [ebp - 0x5c]
call fcn.004099a0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a0475
mov esp, ebp
pop ebp
ret 4
Function at 0x46c410
Capabilities:
Encode data using xor
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ed2c8
mov eax, dword fs:[0]
push eax
sub esp, 0x98
mov eax, dword [0x52610c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
movaps xmm0, xmmword [str._18_____]
mov edx, dword [ebp + 8]
movups xmmword [ebp - 0x7c], xmm0
mov dword [ebp - 0x98], 0
movaps xmm0, xmmword [0x50c870]
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0xa0], 4
mov dword [ebp - 0xa4], 4
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0x220d1212
mov byte [ebp - 0x58], 0
mov dword [ebp - 4], 0
xor ecx, ecx
movzx eax, byte [ebp + ecx - 0x7b]
xor al, byte [ebp - 0x7c]
mov byte [ebp + ecx - 0x57], al
movzx eax, byte [ebp + ecx - 0x7a]
xor al, byte [ebp - 0x7c]
mov byte [ebp + ecx - 0x56], al
movzx eax, byte [ebp + ecx - 0x79]
xor al, byte [ebp - 0x7c]
mov byte [ebp + ecx - 0x55], al
movzx eax, byte [ebp + ecx - 0x78]
xor al, byte [ebp - 0x7c]
mov byte [ebp + ecx - 0x54], al
movzx eax, byte [ebp + ecx - 0x77]
xor al, byte [ebp - 0x7c]
mov byte [ebp + ecx - 0x53], al
add ecx, 5
cmp ecx, 0x23
jb 0x46c490
push edx
lea eax, [ebp - 0x57]
mov byte [ebp - 0x34], 0
push eax
lea eax, [ebp - 0x94]
push eax
call fcn.0040e8a0
add esp, 0xc
lea ecx, [ebp - 0x98]
cmp dword [ebp - 0x80], 0x10
lea eax, [ebp - 0x94]
cmovae eax, dword [ebp - 0x94]
push ecx
push 0x20019
push 0
push eax
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x46c5bf
mov cl, 0x53
mov dword [ebp - 0x30], 0x203d1a53
mov dword [ebp - 0x2c], 0x3f3f3227
xor edx, edx
mov dword [ebp - 0x28], 0x27322700
mov word [ebp - 0x24], 0x36
nop
movzx eax, byte [ebp + edx - 0x2f]
xor al, cl
mov byte [ebp + edx - 0x22], al
movzx eax, byte [ebp + edx - 0x2e]
xor al, byte [ebp - 0x30]
mov byte [ebp + edx - 0x21], al
movzx eax, byte [ebp + edx - 0x2d]
xor al, byte [ebp - 0x30]
mov byte [ebp + edx - 0x20], al
movzx eax, byte [ebp + edx - 0x2c]
xor al, byte [ebp - 0x30]
mov byte [ebp + edx - 0x1f], al
movzx eax, byte [ebp + edx - 0x2b]
xor al, byte [ebp - 0x30]
mov byte [ebp + edx - 0x1e], al
movzx eax, byte [ebp + edx - 0x2a]
xor al, byte [ebp - 0x30]
mov byte [ebp + edx - 0x1d], al
add edx, 6
cmp edx, 0xc
jae 0x46c594
mov cl, byte [ebp - 0x30]
jmp 0x46c540
lea eax, [ebp - 0xa0]
mov byte [ebp - 0x16], 0
push eax
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0xa4]
push eax
push 0
lea eax, [ebp - 0x22]
push eax
push dword [ebp - 0x98]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [ebp - 0x80]
cmp eax, 0x10
jb 0x46c5da
inc eax
lea ecx, [ebp - 0x94]
push eax
push dword [ebp - 0x94]
call fcn.004099a0
mov eax, dword [ebp - 0x98]
test eax, eax
je 0x46c5eb
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a0475
mov esp, ebp
pop ebp
ret 4
Function at 0x46c9d0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ed3b8
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x52610c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x50], 0
mov edx, 0x22
mov dword [ebp - 0x4c], 0x7a0022
mov dword [ebp - 0x48], 0x4d0040
mov dword [ebp - 0x44], 0x72005a
mov dword [ebp - 0x40], 0x630041
mov dword [ebp - 0x3c], 0x520052
mov dword [ebp - 0x38], 0x47000c
mov dword [ebp - 0x34], 0x47005a
mov word [ebp - 0x30], ax
mov dword [ebp - 4], eax
xor ecx, ecx
nop dword [eax]
nop dword [eax + eax]
mov ax, word [ebp + ecx*2 - 0x4a]
xor ax, dx
mov word [ebp + ecx*2 - 0x2e], ax
inc ecx
cmp ecx, 0xd
jae 0x46ca69
mov dx, word [ebp - 0x4c]
jmp 0x46ca50
xor eax, eax
mov dword [esi + 0x14], 7
mov word [ebp - 0x14], ax
mov dword [esi + 0x10], eax
mov word [esi], ax
cmp word [ebp - 0x2e], ax
je 0x46ca9f
lea eax, [ebp - 0x2e]
lea edx, [eax + 2]
nop dword [eax + eax]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x46ca90
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x2e]
mov ecx, esi
push eax
call fcn.00403e20
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a0475
mov esp, ebp
pop ebp
ret 4
Function at 0x477460
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ee210
mov eax, dword fs:[0]
push eax
sub esp, 0x58
mov eax, dword [0x52610c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x30], 0x790b0b25
mov dword [ebp - 0x2c], 0x434b4a46
mov dword [ebp - 0x28], 0x4c0b424c
mov word [ebp - 0x24], 0x4c4b
mov byte [ebp - 0x22], 0
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0
call fcn.00478400
mov byte [ebp - 4], 1
xor ecx, ecx
nop
mov dl, byte [ebp + ecx - 0x2f]
xor dl, byte [ebp - 0x30]
mov byte [ebp + ecx - 0x21], dl
inc ecx
cmp ecx, 0xd
jb 0x4774c0
lea ecx, [ebp - 0x21]
mov byte [ebp - 0x14], 0
push ecx
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.00407900
mov eax, dword [ebp - 0x34]
add esp, 0xc
cmp eax, 0x10
jb 0x4774fb
inc eax
lea ecx, [ebp - 0x48]
push eax
push dword [ebp - 0x48]
call fcn.004099a0
cmp dword [ebp - 0x4c], 0x10
lea esi, [ebp - 0x60]
mov bh, 0x1c
mov dword [ebp - 0x20], 0x46444625
cmovae esi, dword [ebp - 0x60]
mov al, 0x46
mov byte [ebp - 0x61], bh
mov dl, al
mov bh, 0x14
mov dword [ebp - 0x44], 0x1c1d1172
mov byte [ebp - 0x62], bh
mov cl, 0x44
mov bh, 0x1b
mov word [ebp - 0x1c], 0x404d
mov byte [ebp - 0x63], bh
mov ah, 0x11
mov bh, 0x15
mov byte [ebp - 0x1a], 0
mov byte [ebp - 0x64], bh
mov ch, 0x40
mov bh, byte [ebp - 0x20]
mov bl, 0x4d
xor al, bh
mov dword [ebp - 0x40], 0x151b14
mov byte [ebp - 0x19], al
xor cl, bh
mov al, byte [ebp - 0x62]
xor dl, bh
mov byte [ebp - 0x18], cl
xor ch, bh
mov cl, byte [ebp - 0x44]
xor bl, bh
mov bh, byte [ebp - 0x61]
xor al, cl
mov byte [ebp - 0x39], al
xor ah, cl
mov al, byte [ebp - 0x63]
mov dh, 0x1d
xor al, cl
mov byte [ebp - 0x3c], ah
mov byte [ebp - 0x38], al
xor dh, cl
mov al, byte [ebp - 0x64]
xor bh, cl
xor al, cl
mov byte [ebp - 0x17], dl
push esi
mov byte [ebp - 0x37], al
lea eax, [ebp - 0x19]
push 1
push eax
lea eax, [ebp - 0x3c]
mov byte [ebp - 0x16], bl
push eax
mov byte [ebp - 0x15], ch
mov byte [ebp - 0x14], 0
mov byte [ebp - 0x3b], dh
mov byte [ebp - 0x3a], bh
mov byte [ebp - 0x36], 0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x4c]
test eax, eax
setne bl
xor eax, eax
mov dword [ebp - 0x43], eax
mov word [ebp - 0x3f], ax
mov byte [ebp - 0x3d], al
mov dword [ebp - 0x1f], eax
mov word [ebp - 0x1b], ax
cmp ecx, 0x10
jb 0x4775d6
inc ecx
push ecx
push dword [ebp - 0x60]
lea ecx, [ebp - 0x60]
call fcn.004099a0
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a0475
mov esp, ebp
pop ebp
ret
Function at 0x477950
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ee2bb
mov eax, dword fs:[0]
push eax
sub esp, 0x80
mov eax, dword [0x52610c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
call fcn.00477a60
lea ecx, [ebp - 0x74]
call fcn.00478400
lea ecx, [ebp - 0x5c]
mov dword [ebp - 4], 0
call fcn.00477e60
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 1
call fcn.00478040
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.00478210
mov dword [ebp - 4], 3
lea esi, [ebp - 0x74]
mov edi, dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0xffffffffffffffff
push 0
push esi
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x78], 0xf
mov dword [ebp - 0x7c], 0
mov byte [ebp - 0x8c], 0
call fcn.00409690
cmp dword [ebp - 0x78], 0x10
lea eax, [ebp - 0x8c]
push 0
cmovae eax, dword [ebp - 0x8c]
push eax
call edi
mov eax, dword [ebp - 0x78]
cmp eax, 0x10
jb 0x477a17
inc eax
lea ecx, [ebp - 0x8c]
push eax
push dword [ebp - 0x8c]
call fcn.004099a0
add esi, 0x18
lea eax, [ebp - 0x14]
cmp esi, eax
jne 0x4779c1
push fcn.004095a0
push 4
push 0x18
lea eax, [ebp - 0x74]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.004a09d2
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.004a0475
mov esp, ebp
pop ebp
ret
Function at 0x477cf0
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ee380
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x52610c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x54], 0x4f3d3d13
mov dword [ebp - 0x50], 0x757d7c70
mov dword [ebp - 0x4c], 0x7a3d747a
mov word [ebp - 0x48], 0x7a7d
mov byte [ebp - 0x46], 0
lea ecx, [ebp - 0x34]
mov dword [ebp - 4], 0
call fcn.00478400
mov byte [ebp - 4], 1
xor ecx, ecx
nop
mov dl, byte [ebp + ecx - 0x53]
xor dl, byte [ebp - 0x54]
mov byte [ebp + ecx - 0x45], dl
inc ecx
cmp ecx, 0xd
jb 0x477d50
lea ecx, [ebp - 0x45]
mov byte [ebp - 0x38], 0
push ecx
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.00407900
mov eax, dword [ebp - 0x20]
add esp, 0xc
cmp eax, 0x10
jb 0x477d8b
inc eax
lea ecx, [ebp - 0x34]
push eax
push dword [ebp - 0x34]
call fcn.004099a0
cmp dword [ebp - 0x58], 0x10
lea esi, [ebp - 0x6c]
mov bh, 9
mov dword [ebp - 0x1c], 0x6961620e
cmovae esi, dword [ebp - 0x6c]
mov al, 0x62
mov byte [ebp - 0x6d], bh
mov cl, 0x61
mov bh, 7
mov dword [ebp - 0x30], 0xe0f0360
mov byte [ebp - 0x6e], bh
mov ah, 0xf
mov bh, byte [ebp - 0x1c]
mov bl, 0x69
xor al, bh
mov byte [ebp - 0x18], 0
xor cl, bh
mov byte [ebp - 0x17], al
mov al, byte [ebp - 0x6e]
xor bl, bh
mov bh, byte [ebp - 0x6d]
mov dl, 3
mov byte [ebp - 0x16], cl
mov ch, 0xe
mov cl, byte [ebp - 0x30]
mov dh, 6
xor ah, cl
mov dword [ebp - 0x2c], 0x70906
xor al, cl
mov byte [ebp - 0x27], ah
push esi
mov byte [ebp - 0x23], al
xor dl, cl
push 4
lea eax, [ebp - 0x17]
mov byte [ebp - 0x15], bl
push eax
lea eax, [ebp - 0x28]
mov byte [ebp - 0x14], 0
xor ch, cl
mov byte [ebp - 0x28], dl
xor dh, cl
mov byte [ebp - 0x26], ch
xor bh, cl
mov byte [ebp - 0x25], dh
push eax
mov byte [ebp - 0x24], bh
mov byte [ebp - 0x22], 0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov esi, eax
xor eax, eax
mov dword [ebp - 0x2f], eax
mov word [ebp - 0x2b], ax
mov byte [ebp - 0x29], al
mov dword [ebp - 0x1b], eax
mov eax, dword [ebp - 0x58]
cmp eax, 0x10
jb 0x477e3f
inc eax
lea ecx, [ebp - 0x6c]
push eax
push dword [ebp - 0x6c]
call fcn.004099a0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a0475
mov esp, ebp
pop ebp
ret
Function at 0x478e80
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e3708
mov eax, dword fs:[0]
push eax
sub esp, 0x40
mov eax, dword [0x52610c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
lea eax, [ebp - 0x48]
push eax
call fcn.004c1e5c
xor eax, eax
mov dword [ebp - 0x2c], 7
lea edx, [esi + 0x20c]
mov dword [ebp - 0x30], 0
add esp, 4
mov word [ebp - 0x40], ax
cmp word [edx], ax
jne 0x478edb
xor ecx, ecx
jmp 0x478eef
mov ecx, edx
lea edi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x478ee0
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x40]
call fcn.00403e20
push 0x50add8
lea edx, [ebp - 0x40]
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x28]
call fcn.00414c90
mov eax, dword [ebp - 0x2c]
add esp, 4
cmp eax, 8
jb 0x478f28
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.00403f90
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
push 0
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.004c7443
add esp, 8
cmp eax, 0xffffffff
jne 0x478f57
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
push 0
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push dword [ebp - 0x44]
cmp dword [ebp - 0x14], 8
lea eax, [esi + 0x414]
push dword [ebp - 0x48]
lea ecx, [ebp - 0x28]
cmovae ecx, dword [ebp - 0x28]
push eax
push ecx
push str._s_s.__I64d.dmp
lea eax, [esi + 4]
push 0x104
push eax
call fcn.00479380
mov eax, dword [ebp - 0x14]
add esp, 0x1c
cmp eax, 8
jb 0x478f9b
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00403f90
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.004a0475
mov esp, ebp
pop ebp
ret

Function at 0x478fc0
Capabilities:
Acquire debug privileges

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x52610c]
xor eax, ebp
mov dword [ebp - 8], eax
push esi
mov esi, dword [ebp + 0xc]
lea eax, [ebp - 0x14]
push edi
mov edi, dword [ebp + 0x10]
push eax
push str.SeDebugPrivilege
push 0
mov dword [ebp - 0x18], 1
mov dword [ebp - 0xc], 2
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
test eax, eax
je 0x47903e
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0x10
push eax
push edi
push 0x10
lea eax, [ebp - 0x18]
push eax
push 0
push esi
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
test eax, eax
je 0x47903e
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x514
je 0x47903e
mov eax, 1
pop edi
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004a0475
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [ebp - 8]
xor eax, eax
pop edi
xor ecx, ebp
pop esi
call fcn.004a0475
mov esp, ebp
pop ebp
ret 0xc
Function at 0x47a700
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ee9c5
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x52610c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 8
mov dword [ebp - 0x10], 0x52e280
mov dword [0x52e280], 0x50b1f8
mov dword [0x52e294], 0
mov dword [0x52e298], 0
mov dword [0x52e29c], 0
mov dword [0x52e2a0], 0
mov dword [0x52e2a4], 0
call fcn.004a04a5
add esp, 4
mov dword [0x52e294], eax
test eax, eax
je 0x47a790
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [0x52e294]
mov dword [eax], 0x52e294
push 0x52e2a8
mov dword [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov byte [ebp - 4], 1
mov eax, dword [ebp + 8]
push 8
mov dword [0x52e290], eax
call fcn.004a04a5
mov esi, eax
add esp, 4
mov dword [ebp + 8], esi
push 0
mov byte [ebp - 4], 2
push 0
mov dword [esi], 0
mov dword [esi + 4], 0
call fcn.0047ac40
push 0
push 0
push 1
mov dword [esi], eax
mov byte [ebp - 4], 1
push 0
mov dword [0x52e28c], esi
call dword [sym.imp.KERNEL32.dll_CreateEventW]
push 0
push 0
push 0
push 0xffffffffffffffff
mov dword [0x52e288], eax
call dword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
xor esi, esi
mov dword [0x52e284], eax
cmp dword [0x52e290], esi
jbe 0x47a87a
nop dword [eax]
push 0
push 0
push 0x52e280
push 0x47ac70
push 0
push 0
call fcn.004cb5d0
mov edi, dword [0x52e28c]
add esp, 0x18
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
mov ebx, dword [edi]
push eax
push dword [ebx + 4]
push ebx
call fcn.0047af00
mov edx, eax
mov ecx, 0x15555554
mov eax, dword [edi + 4]
sub ecx, eax
cmp ecx, 1
jb 0x47a893
lea ecx, [eax + 1]
inc esi
mov dword [edi + 4], ecx
mov dword [ebx + 4], edx
mov eax, dword [edx + 4]
mov dword [eax], edx
cmp esi, dword [0x52e290]
jb 0x47a820
mov eax, 0x52e280
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push str.list_T__too_long
call fcn.0049ce7e
int3

Function at 0x47b9a0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
mov edi, edx
mov ebx, ecx
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
jne 0x47b9b9
pop edi
pop ebx
pop ebp
ret
push esi
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x47b9f6
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, dword [ebp + 8]
lea edx, [esi + eax]
and ecx, 0xf
jbe 0x47b9f2
nop word [eax + eax]
cmp esi, edx
jae 0x47b9f6
movzx eax, word [esi]
lea esi, [esi + eax*2]
add esi, 2
sub ecx, 1
jne 0x47b9e0
cmp esi, edx
jb 0x47b9fd
pop esi
pop edi
xor eax, eax
pop ebx
pop ebp
ret
xor eax, eax
cmp word [esi], ax
cmove esi, eax
mov eax, esi
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x47c1b0
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4eeb80
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push esi
push edi
mov eax, dword [0x52610c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
push ecx
lea ecx, [ebp - 0x14]
call fcn.0047c4d0
push ecx
lea edx, [ebp - 0x14]
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x18]
call fcn.0047d130
add esp, 4
mov byte [ebp - 4], 2
or ebx, 0xffffffff
mov edx, dword [ebp - 0x14]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x47c21a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.0047dc00
mov edi, eax
add esp, 4
test edi, edi
jne 0x47c233
xor esi, esi
jmp 0x47c327
push edi
mov edx, 0x47e040
lea ecx, [ebp - 0x24]
call fcn.0047ce90
add esp, 4
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x10]
movups xmm0, xmmword [edi + 0x38]
push esi
movups xmmword [ebp - 0x34], xmm0
call fcn.0047c4d0
push 0
push esi
mov byte [ebp - 4], 4
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov eax, dword [ebp - 0x10]
mov edx, dword [eax - 0xc]
test edx, edx
je 0x47c297
lea ecx, [edx - 1]
test ecx, ecx
js 0x47c35a
cmp ecx, edx
jg 0x47c35a
cmp word [eax + ecx*2], 0x5c
je 0x47c297
push 0x507d60
lea ecx, [ebp - 0x10]
call fcn.0047c480
xor esi, esi
cmp dword [ebp - 0x30], esi
jb 0x47c2fc
mov ebx, dword [ebp - 0x34]
ja 0x47c2b0
test ebx, ebx
je 0x47c2f9
nop word [eax + eax]
mov edx, dword [ebp - 0x10]
mov ecx, edi
call fcn.0047bdb0
test eax, eax
je 0x47c36c
mov ecx, dword [ebp - 0x30]
add ebx, 0xffffffff
mov eax, esi
adc ecx, 0xffffffff
cdq
cmp edx, ecx
ja 0x47c2e7
jb 0x47c2d8
cmp eax, ebx
jae 0x47c2e7
mov ecx, edi
call fcn.0047e620
test eax, eax
jne 0x47c36c
inc esi
mov eax, esi
cdq
cmp edx, dword [ebp - 0x30]
jb 0x47c364
ja 0x47c2f9
mov ebx, dword [ebp - 0x34]
cmp eax, ebx
jb 0x47c2b0
or ebx, 0xffffffff
mov esi, 1
mov byte [ebp - 4], 3
mov eax, ebx
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x47c31f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x24]
call fcn.0047cf20
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x47c346
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.0047b8b0
mov ebx, dword [ebp - 0x34]
jmp 0x47c2b0
xor esi, esi
or ebx, 0xffffffff
jmp 0x47c301