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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffec
mov dword [esp], edx
mov edx, dword [esp]
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
xor edx, dword [eax + 0x204]
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 4]
xor edx, dword [eax + 0x208]
mov dword [esp + 8], edx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ebx, dword [ecx + 8]
mov esi, dword [edx + 0xc]
xor ebx, dword [eax + 0x20c]
xor esi, dword [eax + 0x210]
xor edx, edx
mov ecx, esi
mov edi, esi
shr edi, 0x15
shl ecx, 0xb
or ecx, edi
mov edi, edx
and edi, 3
add ecx, ebx
xor ecx, dword [eax + edi*4 + 0x204]
mov ebp, ecx
mov edi, ecx
shr ebp, 8
and edi, 0xff
and ebp, 0xff
movzx edi, byte [eax + edi + 0x104]
movzx ebp, byte [eax + ebp + 0x104]
shl ebp, 8
or edi, ebp
mov ebp, ecx
shr ebp, 0x10
shr ecx, 0x18
and ebp, 0xff
and ecx, 0xff
movzx ebp, byte [eax + ebp + 0x104]
movzx ecx, byte [eax + ecx + 0x104]
shl ebp, 0x10
shl ecx, 0x18
or edi, ebp
or edi, ecx
mov ecx, ebx
xor edi, dword [esp + 4]
mov dword [esp + 0xc], edi
mov edi, ebx
shr edi, 0xf
shl ecx, 0x11
or ecx, edi
mov edi, edx
and edi, 3
xor ecx, esi
add ecx, dword [eax + edi*4 + 0x204]
mov ebp, ecx
mov edi, ecx
shr ebp, 8
and edi, 0xff
and ebp, 0xff
movzx edi, byte [eax + edi + 0x104]
movzx ebp, byte [eax + ebp + 0x104]
shl ebp, 8
or edi, ebp
mov ebp, ecx
shr ebp, 0x10
shr ecx, 0x18
and ebp, 0xff
and ecx, 0xff
movzx ebp, byte [eax + ebp + 0x104]
movzx ecx, byte [eax + ecx + 0x104]
shl ebp, 0x10
shl ecx, 0x18
or edi, ebp
or edi, ecx
xor edi, dword [esp + 8]
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov ecx, edi
mov esi, ecx
mov ebx, dword [esp + 0xc]
inc edx
cmp edx, 0x20
jl 0x41012e
mov edx, dword [esp + 0x10]
xor ebx, dword [eax + 0x204]
mov dword [edx], ebx
xor esi, dword [eax + 0x208]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 4], esi
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x10]
xor edx, dword [eax + 0x20c]
mov dword [ecx + 8], edx
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x10]
xor edx, dword [eax + 0x210]
mov dword [ecx + 0xc], edx
mov edx, dword [esp]
call fcn.0041042c
add esp, 0x14
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x410280
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffe0
mov ebx, eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax]
xor ecx, dword [ebx + 0x204]
mov dword [esp], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 4]
xor ecx, dword [ebx + 0x208]
mov dword [esp + 4], ecx
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 8]
mov eax, dword [esp + 0xc]
xor esi, dword [ebx + 0x20c]
mov edi, dword [eax + 0xc]
xor edi, dword [ebx + 0x210]
push 0x10
push edx
lea eax, [esp + 0x18]
push eax
call fcn.0048d234
add esp, 0xc
mov edx, 0x1f
mov eax, edi
mov ecx, edi
shr ecx, 0x15
shl eax, 0xb
or eax, ecx
mov ecx, edx
and ecx, 3
add eax, esi
xor eax, dword [ebx + ecx*4 + 0x204]
mov ebp, eax
mov ecx, eax
shr ebp, 8
and ecx, 0xff
and ebp, 0xff
movzx ecx, byte [ebx + ecx + 0x104]
movzx ebp, byte [ebx + ebp + 0x104]
shl ebp, 8
or ecx, ebp
mov ebp, eax
shr ebp, 0x10
shr eax, 0x18
and ebp, 0xff
and eax, 0xff
movzx ebp, byte [ebx + ebp + 0x104]
movzx eax, byte [ebx + eax + 0x104]
shl ebp, 0x10
shl eax, 0x18
or ecx, ebp
or ecx, eax
mov eax, esi
xor ecx, dword [esp]
mov dword [esp + 8], ecx
mov ecx, esi
shr ecx, 0xf
shl eax, 0x11
or eax, ecx
mov ecx, edx
and ecx, 3
xor eax, edi
add eax, dword [ebx + ecx*4 + 0x204]
mov ebp, eax
mov ecx, eax
shr ebp, 8
and ecx, 0xff
and ebp, 0xff
movzx ecx, byte [ebx + ecx + 0x104]
movzx ebp, byte [ebx + ebp + 0x104]
shl ebp, 8
or ecx, ebp
mov ebp, eax
shr ebp, 0x10
shr eax, 0x18
and ebp, 0xff
and eax, 0xff
movzx ebp, byte [ebx + ebp + 0x104]
movzx eax, byte [ebx + eax + 0x104]
shl ebp, 0x10
shl eax, 0x18
or ecx, ebp
or ecx, eax
xor ecx, dword [esp + 4]
mov dword [esp], esi
mov dword [esp + 4], edi
mov eax, ecx
mov edi, eax
mov esi, dword [esp + 8]
dec edx
test edx, edx
jge 0x4102dc
mov eax, dword [esp + 0xc]
xor esi, dword [ebx + 0x204]
mov dword [eax], esi
xor edi, dword [ebx + 0x208]
mov edx, dword [esp + 0xc]
mov dword [edx + 4], edi
mov ecx, dword [esp]
mov eax, dword [esp + 0xc]
xor ecx, dword [ebx + 0x20c]
mov dword [eax + 8], ecx
mov eax, ebx
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0xc]
xor edx, dword [ebx + 0x210]
mov dword [ecx + 0xc], edx
lea edx, [esp + 0x10]
call fcn.0041042c
add esp, 0x20
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x41042c
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
mov ebx, 0x4a88cc
xor ecx, ecx
movzx esi, byte [edx + ecx]
mov esi, dword [ebx + esi*4]
xor dword [eax + 0x204], esi
movzx esi, byte [edx + ecx + 1]
mov esi, dword [ebx + esi*4]
xor dword [eax + 0x208], esi
movzx esi, byte [edx + ecx + 2]
mov esi, dword [ebx + esi*4]
xor dword [eax + 0x20c], esi
movzx esi, byte [edx + ecx + 3]
mov esi, dword [ebx + esi*4]
xor dword [eax + 0x210], esi
add ecx, 4
cmp ecx, 0x10
jl 0x410435
pop esi
pop ebx
ret
Function at 0x415c0c
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
add esp, 0xffffff70
xor eax, eax
mov dword [esp + 4], ecx
mov dword [esp], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
xor edx, edx
mov dword [esp + 8], edx
mov esi, dword [esp + 8]
jmp 0x415c89
xor eax, eax
mov edx, dword [esp]
add edx, esi
add edx, eax
mov cl, byte [edx + 1]
mov byte [esp + eax + 0x19], cl
mov bl, byte [edx]
sub bl, cl
mov byte [esp + eax + 0x18], bl
mov dl, byte [edx + 2]
sub dl, cl
mov byte [esp + eax + 0x1a], dl
add eax, 3
cmp eax, 0x78
jl 0x415c37
mov ebx, 3
mov cl, byte [esp + ebx + 0x18]
sub cl, byte [esp + ebx + 0x15]
movsx ecx, cl
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 8]
add dword [esp + edx*4 + 0xc], eax
inc ebx
cmp ebx, 0x78
jl 0x415c63
add esi, 0x780
mov eax, dword [esp + 4]
add eax, 0xffffff88
cmp esi, eax
jl 0x415c35
inc dword [esp + 8]
cmp dword [esp + 8], 2
jle 0x415c2f
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
cmp edx, eax
jb 0x415cb5
cmp eax, dword [esp + 0x14]
ja 0x415cb5
xor eax, eax
jmp 0x415cc7
cmp edx, dword [esp + 0x14]
ja 0x415cc2
mov eax, 1
jmp 0x415cc7
mov eax, 2
add esp, 0x90
pop esi
pop ebx
ret
Function at 0x425204
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffbf0
mov dword [esp + 4], ecx
mov dword [esp], edx
mov edi, eax
push 5
push dword [esp + 4]
push dword [0x4a6fb0]
call sub.KERNEL32.DLL_FindResourceA
mov ebx, eax
push ebx
push dword [0x4a6fb0]
call sub.KERNEL32.DLL_LoadResource
mov ebp, eax
push ebx
push dword [0x4a6fb0]
call sub.KERNEL32.DLL_SizeofResource
mov ebx, eax
push ebx
call fcn.0048c1b4
pop ecx
mov esi, eax
test esi, esi
jne 0x425262
mov eax, dword [esp + 4]
xor edx, edx
mov dword [eax], edx
xor eax, eax
jmp 0x42537b
push ebx
push ebp
push esi
call fcn.0048d234
add esp, 0xc
xor edx, edx
xor ecx, ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov eax, dword [esi]
shr eax, 0x10
cmp eax, 0xffff
lea eax, [esp + 0xc]
sete bl
push eax
mov eax, edi
lea ecx, [esp + 0xc]
mov edx, dword [esp + 4]
and ebx, 1
call fcn.0042543c
test al, al
je 0x4252d6
mov ecx, esi
test bl, bl
je 0x4252ae
mov eax, ecx
add eax, 8
mov ecx, eax
movsx eax, word [ecx + 0xe]
imul dword [esp + 8]
mov ebp, 0x64
cdq
idiv ebp
mov word [ecx + 0xe], ax
movsx eax, word [ecx + 0x10]
imul dword [esp + 0xc]
mov ebp, 0x64
cdq
idiv ebp
mov word [ecx + 0x10], ax
mov ebp, esi
test bl, bl
je 0x4252e3
mov eax, 0xd
jmp 0x4252e8
mov eax, 9
add eax, eax
add ebp, eax
cmp word [ebp], 0xffff
jne 0x4252fb
mov edx, 2
jmp 0x425305
mov eax, ebp
call fcn.0040f9e4
mov edx, eax
inc edx
add edx, edx
add ebp, edx
cmp word [ebp], 0xffff
jne 0x425318
mov ecx, 2
jmp 0x425322
mov eax, ebp
call fcn.0040f9e4
mov ecx, eax
inc ecx
add ecx, ecx
lea edx, [esp + 0x10]
add ebp, ecx
mov ecx, 0x10000000
mov eax, ebp
call fcn.0040f944
push 1
push dword [esp + 4]
lea ecx, [esp + 0x218]
lea edx, [esp + 0x18]
mov eax, edi
call fcn.00424dc0
lea eax, [esp + 0x210]
push eax
call fcn.0048d5f8
pop ecx
mov edx, dword [esp + 4]
mov dword [edx], eax
cmp dword [esp + 8], 0x64
jne 0x425379
cmp dword [esp + 0xc], 0x64
jne 0x425379
push esi
call fcn.0048c1c4
pop ecx
xor esi, esi
mov eax, esi
add esp, 0x410
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x4297d4
Capabilities:
Get common file path

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffa00
mov esi, ecx
mov ebx, edx
mov edi, eax
push esi
mov eax, 0x1f6
call fcn.004117b8
push eax
test ebx, ebx
je 0x4297f8
cmp byte [ebx], 0
jne 0x4297fa
xor ebx, ebx
push ebx
call fcn.00444944
add esp, 0xc
call sub.KERNEL32.DLL_GetLastError
cmp eax, 3
jne 0x429871
push esi
call fcn.0048d454
pop ecx
mov ebx, eax
mov eax, esi
call fcn.0040bf3c
test al, al
jne 0x429838
push esp
push 0x400
call sub.KERNEL32.DLL_GetCurrentDirectoryA
push esp
call fcn.0048d454
pop ecx
add eax, ebx
inc eax
mov ebx, eax
cmp ebx, 0x104
jle 0x429871
push 0x104
mov eax, 0x564
call fcn.004117b8
push eax
lea edx, [esp + 0x408]
push edx
call fcn.004902f4
add esp, 0xc
mov edx, 1
lea eax, [esp + 0x400]
call fcn.0044a2a0
mov eax, edi
call fcn.0042997c
add esp, 0x600
pop edi
pop esi
pop ebx
ret
Function at 0x429aa8
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffcc
push ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
cmp dword [ebp - 0xc], 0
mov ebx, dword [ebp + 8]
jg 0x429ac8
xor eax, eax
jmp 0x429b89
mov edx, dword [ebp - 0xc]
test edx, edx
jns 0x429ad2
add edx, 0xf
sar edx, 4
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
add eax, 4
mov ecx, dword [eax]
xor ecx, dword [edx]
mov dword [ebp - 0x24], ecx
mov ecx, dword [eax + 4]
xor ecx, dword [edx + 4]
mov dword [ebp - 0x20], ecx
mov ecx, dword [eax + 8]
xor ecx, dword [edx + 8]
mov dword [ebp - 0x1c], ecx
mov ecx, ebx
mov eax, dword [eax + 0xc]
xor eax, dword [edx + 0xc]
lea edx, [ebp - 0x24]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
call fcn.00429f24
add dword [ebp - 8], 0x10
mov edx, dword [ebp - 0x14]
dec edx
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], 0
jle 0x429b65
mov eax, ebx
mov edx, dword [ebp - 8]
mov ecx, dword [eax]
xor ecx, dword [edx]
mov dword [ebp - 0x24], ecx
mov ecx, dword [eax + 4]
xor ecx, dword [edx + 4]
mov dword [ebp - 0x20], ecx
mov ecx, dword [eax + 8]
xor ecx, dword [edx + 8]
mov dword [ebp - 0x1c], ecx
mov eax, dword [eax + 0xc]
xor eax, dword [edx + 0xc]
mov dword [ebp - 0x18], eax
add ebx, 0x10
lea edx, [ebp - 0x24]
mov ecx, ebx
mov eax, dword [ebp - 4]
call fcn.00429f24
add dword [ebp - 8], 0x10
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0
jg 0x429b21
mov eax, dword [ebp - 4]
add eax, 4
mov edx, ebx
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov edx, dword [edx + 0xc]
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 0x14]
shl eax, 4
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x429b90
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
push ebx
push esi
mov esi, ecx
mov ebx, edx
mov dword [ebp - 4], eax
test ebx, ebx
je 0x429ba7
test esi, esi
jg 0x429bae
xor eax, eax
jmp 0x429c64
push 0x10
mov edx, dword [ebp - 4]
add edx, 4
push edx
lea ecx, [ebp - 0x2c]
push ecx
call fcn.0048d234
add esp, 0xc
test esi, esi
jns 0x429bca
add esi, 0xf
sar esi, 4
mov dword [ebp - 8], esi
mov eax, dword [ebp - 8]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jle 0x429c49
lea ecx, [ebp - 0x1c]
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0042a554
lea edx, [ebp - 0x2c]
mov eax, edx
mov ecx, dword [eax]
xor dword [ebp - 0x1c], ecx
mov ecx, dword [eax + 4]
xor dword [ebp - 0x18], ecx
mov ecx, dword [eax + 8]
xor dword [ebp - 0x14], ecx
mov eax, dword [eax + 0xc]
xor dword [ebp - 0x10], eax
mov eax, edx
mov edx, ebx
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov edx, dword [edx + 0xc]
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x1c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x18]
mov dword [eax + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [eax + 8], edx
mov ecx, dword [ebp - 0x10]
mov dword [eax + 0xc], ecx
add ebx, 0x10
add dword [ebp + 8], 0x10
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0
jg 0x429bdc
push 0x10
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 4]
add eax, 4
push eax
call fcn.0048d234
add esp, 0xc
mov eax, dword [ebp - 8]
shl eax, 4
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x429e88
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff0
mov edi, eax
mov esi, 1
xor eax, eax
xor ecx, ecx
mov edx, esi
mov ebx, ecx
shl edx, 4
shl ebx, 2
add edx, edi
add edx, ebx
xor ebx, ebx
add edx, 0x14
movzx ebp, byte [edx + 1]
mov bl, byte [edx]
lea ebp, [ebp*4 + 0x4adab6]
lea ebx, [ebx*4 + 0x4ad6b6]
mov bl, byte [ebx + eax]
xor bl, byte [ebp + eax]
movzx ebp, byte [edx + 2]
movzx edx, byte [edx + 3]
lea ebp, [ebp*4 + 0x4adeb6]
lea edx, [edx*4 + 0x4ae2b6]
xor bl, byte [ebp + eax]
xor bl, byte [edx + eax]
lea edx, [esp + ecx*4]
mov byte [edx + eax], bl
inc ecx
cmp ecx, 4
jl 0x429e9a
inc eax
cmp eax, 4
jl 0x429e98
mov ecx, esi
push 0x10
shl ecx, 4
lea eax, [esp + 4]
add ecx, edi
push eax
add ecx, 0x14
push ecx
call fcn.0048d234
add esp, 0xc
inc esi
cmp esi, 0xa
jl 0x429e96
add esp, 0x10
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x42cacc
Capabilities:
Hash data using sha1

Disassembly:
mov dword [eax], 0x67452301
xor edx, edx
mov dword [eax + 4], 0xefcdab89
mov dword [eax + 8], 0x98badcfe
mov dword [eax + 0xc], 0x10325476
mov dword [eax + 0x10], 0xc3d2e1f0
mov dword [eax + 0x18], edx
mov dword [eax + 0x14], edx
ret
Function at 0x43a45f
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov eax, dword [0x4b32bc]
push ebx
add esp, 0xfffffbec
cmp dword [eax + 0x30], 0
je 0x43a568
push 1
push 0
mov edx, 0x4b26bc
mov eax, 0x4ba55c
xor ecx, ecx
call fcn.0045bc70
dec eax
jne 0x43a568
xor edx, edx
xor eax, eax
mov dword [esp], edx
mov dword [esp + 4], eax
mov eax, 0x4ba55c
mov edx, esp
lea ecx, [esp + 4]
call fcn.0045d5b4
cmp dword [esp + 4], 0
je 0x43a568
push 0x400
push 0
lea edx, [esp + 0x1c]
xor ecx, ecx
mov eax, dword [0x4b32bc]
call fcn.0040f190
lea edx, [esp + 0x14]
push edx
call sub.KERNEL32.DLL_GetFileAttributesA
cmp eax, 0xffffffff
je 0x43a505
lea edx, [esp + 0x14]
lea eax, [esp + 8]
call fcn.00459554
xor eax, eax
mov al, byte [esp + 8]
cmp eax, 0x43
je 0x43a4fa
cmp eax, 0x4e
jne 0x43a505
push dword [esp]
call fcn.0048ba28
pop ecx
jmp 0x43a568
push 0x49cb16
lea edx, [esp + 0x18]
push edx
call fcn.0048f3cc
add esp, 8
mov ebx, eax
test ebx, ebx
jne 0x43a545
lea eax, [esp + 0x14]
push eax
mov eax, 0x1f6
call fcn.004117b8
push eax
push 0x4b26bc
call fcn.00444944
add esp, 0xc
push dword [esp]
call fcn.0048ba28
pop ecx
jmp 0x43a568
push ebx
push dword [esp + 8]
push 1
push dword [esp + 0xc]
call fcn.0048f7e4
add esp, 0x10
push ebx
call fcn.0048eed0
pop ecx
push dword [esp]
call fcn.0048ba28
pop ecx
add esp, 0x414
pop ebx
ret
Function at 0x43e875
Capabilities:
Delete directory
Get common file path

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 2
add esp, 0xfffff004
push eax
dec eax
jne 0x43e87e
mov eax, dword [ebp - 4]
add esp, 0xfffffb1c
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0xc30], edx
mov ebx, eax
mov esi, dword [ebp + 8]
mov eax, 0x49c8f0
call fcn.0048d8c4
lea edx, [ebp - 0x1034]
mov eax, 0x49d4af
call fcn.00467b38
test al, al
jne 0x43e8d3
xor eax, eax
mov edx, dword [ebp - 0xc2c]
mov dword fs:[0], edx
jmp 0x43ea5e
lea ecx, [ebp - 0x1434]
push ecx
push 0x400
call sub.KERNEL32.DLL_GetCurrentDirectoryA
lea eax, [ebp - 0x1034]
push eax
call fcn.0048ee28
pop ecx
call fcn.0045259c
mov ecx, 0x4b2abc
mov edx, 0x4b26bc
mov eax, 0x4ba55c
call fcn.0045d1a4
mov edx, dword [0x4ba764]
mov dword [0x4b1274], edx
call fcn.00453070
mov dword [0x4b08a4], 2
mov ecx, dword [ebp - 0xc30]
mov edx, ebx
mov eax, dword [0x4b32bc]
call fcn.0040f0ac
mov eax, 0x4ba55c
xor ecx, ecx
xor edx, edx
call fcn.004586e0
xor ebx, ebx
mov word [ebp - 0xc1c], 8
lea eax, [ebp - 0xc08]
call fcn.00411e14
inc dword [ebp - 0xc10]
mov edx, 0x49cae1
mov word [ebp - 0xc1c], 0x14
lea eax, [ebp - 0xc08]
call fcn.00411eb4
lea eax, [ebp - 0x18d4]
call fcn.00412ecc
lea eax, [ebp - 0x18a8]
call fcn.00412ecc
lea eax, [ebp - 0x187c]
call fcn.00412ecc
jmp 0x43e9f2
cmp byte [ebp - 0x18d8], 0
jne 0x43e9f2
call fcn.0040f8f0
test eax, eax
je 0x43e9d8
cmp word [ebp - 0x20e8], 0
je 0x43e9d8
test esi, esi
je 0x43e9d8
lea edx, [ebp - 0xc34]
push edx
push esi
push 0x400
lea ecx, [ebp - 0x20e8]
push ecx
call sub.KERNEL32.DLL_GetFullPathNameW
jmp 0x43e9e1
test esi, esi
je 0x43e9e1
mov word [esi], 0
lea eax, [ebp - 0x24e8]
mov edx, edi
call fcn.0040a580
mov bl, 1
jmp 0x43ea09
lea edx, [ebp - 0x24e8]
lea eax, [ebp - 0xc08]
xor ecx, ecx
call fcn.00411f28
test al, al
jne 0x43e99d
lea eax, [ebp - 0x1434]
push eax
call fcn.0048ee28
pop ecx
test bl, bl
jne 0x43ea26
lea edx, [ebp - 0x1034]
push edx
call sub.KERNEL32.DLL_RemoveDirectoryA
mov byte [0x4b9db0], 0
mov eax, 0x4b9d84
call fcn.00445538
mov eax, ebx
mov edx, 2
push eax
lea eax, [ebp - 0xc08]
dec dword [ebp - 0xc10]
call fcn.00411e84
pop eax
mov edx, dword [ebp - 0xc2c]
mov dword fs:[0], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x4412cb
Capabilities:
Read .ini file

Disassembly:
add esp, 0xfffffb38
cmp byte [0x4a6f8c], 0
jne 0x4413a0
push 0x400
lea eax, [esp + 4]
push eax
push 0
call sub.KERNEL32.DLL_GetModuleFileNameA
push 0x49d6ad
lea eax, [esp + 4]
call fcn.0040b590
push eax
call fcn.0048d424
add esp, 8
push esp
push 0x64
lea edx, [esp + 0x408]
push edx
push 0x49c965
push 0x49d6c2
push 0x49d6b5
call sub.KERNEL32.DLL_GetPrivateProfileStringA
push esp
push 0x64
lea ecx, [esp + 0x46c]
push ecx
push 0x49c965
push 0x49d6ca
push 0x49d6b5
call sub.KERNEL32.DLL_GetPrivateProfileStringA
push esp
push 0
push 0x49d6d2
push 0x49d6b5
call sub.KERNEL32.DLL_GetPrivateProfileIntA
cmp byte [esp + 0x400], 0
je 0x4413a0
cmp byte [esp + 0x464], 0
je 0x4413a0
test eax, eax
jne 0x4413a0
push esp
push 0x49cc01
push 0x49d6d2
push 0x49d6b5
call sub.KERNEL32.DLL_WritePrivateProfileStringA
push 0
push 0x44614c
push dword [0x4b9818]
push 0x49cc5f
push dword [0x4a6fb0]
call sub.USER32.DLL_DialogBoxParamA
add esp, 0x4c8
ret

Function at 0x444098
Capabilities:
Get geographical location

Disassembly:
add esp, 0xffffff9c
push 0x64
lea eax, [esp + 4]
push eax
push 0xf
push 0x400
call sub.KERNEL32.DLL_GetLocaleInfoA
xor eax, eax
mov al, byte [esp]
add esp, 0x64
ret

Function at 0x444360
Capabilities:
Delete directory
Set file attributes

Disassembly:
push ebx
add esp, 0xfffffc00
mov ebx, eax
mov eax, ebx
call fcn.00467d58
test al, al
jne 0x444378
xor eax, eax
jmp 0x4443b3
push 0
push ebx
call sub.KERNEL32.DLL_SetFileAttributesA
push ebx
call fcn.00490058
pop ecx
push ebx
lea edx, [esp + 4]
push edx
call fcn.0048d424
add esp, 8
push 0x5c
lea ecx, [esp + 4]
push ecx
call fcn.0048d579
add esp, 8
mov ebx, eax
test eax, eax
je 0x4443ad
mov byte [ebx], 0
push esp
call sub.KERNEL32.DLL_RemoveDirectoryA
add esp, 0x400
pop ebx
ret
Function at 0x444418
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push ebx
push esi
push edi
push ebp
push ecx
mov esi, eax
test esi, esi
je 0x44451a
push esi
call fcn.0048d454
pop ecx
mov dword [esp], eax
test eax, eax
je 0x44451a
push 0
call sub.USER32.DLL_OpenClipboard
test eax, eax
jne 0x44444b
xor eax, eax
jmp 0x44451f
call sub.USER32.DLL_EmptyClipboard
mov edi, dword [esp]
inc edi
push edi
push 0x2002
call sub.KERNEL32.DLL_GlobalAlloc
mov ebx, eax
test eax, eax
je 0x44448e
push ebx
call sub.KERNEL32.DLL_GlobalLock
mov ebp, eax
test eax, eax
je 0x44448e
mov edx, dword [esp]
inc edx
push edx
push esi
push ebp
call fcn.0048d234
add esp, 0xc
push ebx
call sub.KERNEL32.DLL_GlobalUnlock
push ebx
push 1
call sub.USER32.DLL_SetClipboardData
push edi
push 0x2002
call sub.KERNEL32.DLL_GlobalAlloc
mov ebx, eax
test eax, eax
je 0x4444cf
push ebx
call sub.KERNEL32.DLL_GlobalLock
mov ebp, eax
test eax, eax
je 0x4444cf
mov edx, dword [esp]
inc edx
push edx
push esi
push ebp
call fcn.0048d234
add esp, 0xc
push ebp
push ebp
call sub.USER32.DLL_CharToOemA
push ebx
call sub.KERNEL32.DLL_GlobalUnlock
push ebx
push 7
call sub.USER32.DLL_SetClipboardData
call fcn.0040f8f0
test eax, eax
je 0x444515
mov ecx, edi
add ecx, ecx
push ecx
push 0x2002
call sub.KERNEL32.DLL_GlobalAlloc
mov ebx, eax
test eax, eax
je 0x444515
push ebx
call sub.KERNEL32.DLL_GlobalLock
mov ebp, eax
test eax, eax
je 0x444515
push edi
push ebp
push 0xffffffffffffffff
push esi
push 0
push 0
call sub.KERNEL32.DLL_MultiByteToWideChar
push ebx
call sub.KERNEL32.DLL_GlobalUnlock
push ebx
push 0xd
call sub.USER32.DLL_SetClipboardData
call sub.USER32.DLL_CloseClipboard
mov eax, 1
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x444f38
Capabilities:
Query environment variable

Disassembly:
push ebx
push esi
add esp, 0xfffff79c
mov ebx, eax
lea esi, [esp + 0x464]
push ebx
mov eax, 0x6c
call fcn.004117b8
push eax
lea edx, [esp + 8]
push edx
call fcn.004902f4
add esp, 0xc
jmp 0x444fb1
push 0x400
push esi
push ebx
call sub.KERNEL32.DLL_ExpandEnvironmentStringsA
test eax, eax
je 0x444f8f
push esi
push ebx
call fcn.0048d3d8
add esp, 8
test eax, eax
je 0x444f8f
mov eax, esi
xor edx, edx
call fcn.00467fe0
test al, al
jne 0x444fbe
push 0x15
mov eax, 0x66
call fcn.004117b8
push eax
lea edx, [esp + 8]
push edx
push dword [0x4b9818]
call sub.USER32.DLL_MessageBoxA
cmp eax, 2
je 0x444fd8
xor edx, edx
mov eax, ebx
call fcn.00467fe0
test al, al
je 0x444f64
mov eax, 0x4b982c
call fcn.00463a38
test al, al
je 0x444fd8
mov eax, 0x4b982c
xor edx, edx
call fcn.0045e284
add esp, 0x864
pop esi
pop ebx
ret

Function at 0x44503c
Capabilities:
Get file system object information

Disassembly:
push ebx
push esi
push edi
mov ebx, eax
push ebp
add esp, 0xfffffe94
mov eax, dword [ebx + 0x2c]
add eax, 0x41
push eax
push 0x49c9d5
lea edx, [esp + 8]
push edx
call fcn.004902f4
add esp, 0xc
push 0x301
push 0x160
lea ecx, [esp + 0x14]
push ecx
push 0
lea eax, [esp + 0x10]
push eax
call sub.SHELL32.DLL_SHGetFileInfoA
test byte [ebx + 0x10], 1
je 0x4450a6
push 0xd
call sub.USER32.DLL_GetSysColor
push eax
push dword [ebx + 0x18]
call sub.GDI32.DLL_SetBkColor
mov edi, eax
push 0xe
call sub.USER32.DLL_GetSysColor
push eax
push dword [ebx + 0x18]
call sub.GDI32.DLL_SetTextColor
mov ebp, eax
push 0
push 0
push 0x49c965
lea eax, [ebx + 0x1c]
push eax
push 2
push dword [ebx + 0x20]
push dword [ebx + 0x1c]
push dword [ebx + 0x18]
call sub.GDI32.DLL_ExtTextOutA
push 0x31
call sub.USER32.DLL_GetSystemMetrics
mov esi, eax
push 0x32
call sub.USER32.DLL_GetSystemMetrics
push 3
push 0
push 0
push eax
push esi
push dword [esp + 0x20]
push dword [ebx + 0x20]
push dword [ebx + 0x1c]
push dword [ebx + 0x18]
call sub.USER32.DLL_DrawIconEx
push dword [esp + 0xc]
call sub.USER32.DLL_DestroyIcon
lea eax, [esp + 0x18]
push eax
call fcn.0048d454
pop ecx
push eax
lea edx, [esp + 0x1c]
push edx
mov ecx, dword [ebx + 0x20]
add ecx, 2
push ecx
add esi, dword [ebx + 0x1c]
add esi, 7
push esi
push dword [ebx + 0x18]
call sub.GDI32.DLL_TextOutA
test byte [ebx + 0x10], 1
je 0x445135
push edi
push dword [ebx + 0x18]
call sub.GDI32.DLL_SetBkColor
push ebp
push dword [ebx + 0x18]
call sub.GDI32.DLL_SetTextColor
add esp, 0x16c
pop ebp
pop edi
pop esi
pop ebx
ret