joyce8/EMBER2024-capa huggingface dataset:
Function at 0x42e000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x42e00c
nop
nop
pop eax
nop
nop
nop
nop
add eax, 0x403ac5
nop
sub eax, 0x403a6b
nop
mov ebx, dword [eax]
nop
nop
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
mov edx, dword [eax + 8]
nop
xor dword [ebx], edx
nop
nop
nop
nop
nop
add ebx, 4
nop
nop
nop
nop
nop
cmp ebx, ecx
nop
jl 0x42e030
nop
nop
nop
nop
add eax, 0xc
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
nop
nop
jne 0x42e01e
nop
popal
nop
nop
nop
nop
nop
jmp fcn.00401219
Function at 0x407559
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
mov edi, dword [ebp + 8]
push edi
call dword [0x548e7c]
mov esi, eax
push edi
push esi
push edi
call fcn.0040750c
mov eax, esi
add esp, 0x10
cdq
sub eax, edx
mov esi, eax
mov eax, dword [ebp + 0xc]
sar esi, 1
test esi, esi
mov dword [ebp - 4], eax
jle 0x4075b1
push ebx
mov ebx, edi
mov dword [ebp + 8], esi
lea eax, [ebp - 4]
push eax
call fcn.004074a4
add eax, 0x708
pop ecx
xor ax, word [ebx]
xor eax, 0x519
mov word [ebx], ax
inc ebx
inc ebx
dec dword [ebp + 8]
jne 0x40758f
pop ebx
and word [edi + esi*2], 0
pop edi
pop esi
leave
ret

Function at 0x407c1f
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
push dword [ebp + 8]
call dword [0x548e7c]
mov esi, dword [0x548e5c]
mov edi, eax
lea ebx, [edi + edi + 2]
push ebx
call esi
pop ecx
mov dword [ebp - 4], eax
test eax, eax
pop ecx
je 0x407cbe
mov ecx, dword [ebp + 0xc]
test edi, edi
mov dword [ebp - 8], ecx
jle 0x407c90
mov ecx, dword [ebp + 8]
mov dword [ebp + 0xc], eax
sub ecx, eax
mov dword [ebp + 8], edi
mov dword [ebp - 0xc], ecx
lea eax, [ebp - 8]
push eax
call fcn.004074a4
mov edx, dword [ebp - 0xc]
pop ecx
mov ecx, eax
mov eax, dword [ebp + 0xc]
add ecx, 0x708
xor cx, word [edx + eax]
xor ecx, 0x519
mov word [eax], cx
inc eax
inc eax
dec dword [ebp + 8]
mov dword [ebp + 0xc], eax
jne 0x407c61
add ebx, ebx
push ebx
call esi
mov esi, eax
pop ecx
test esi, esi
je 0x407cb2
push ebx
push 0
push esi
call fcn.0043dcde
push esi
push edi
push dword [ebp - 4]
call fcn.004074c0
add esp, 0x18
push dword [ebp - 4]
call dword [0x548e40]
pop ecx
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret
Function at 0x43dd20
Capabilities:
Encode data using xor

Disassembly:
adc ch, dl
push esi
and cl, ch
cmp ch, byte [ebp + 0x3c]
fst st(4)
dec ebx
ficom word [ebp + 0x24]
out dx, eax
cmp byte [ebx + eax - 0x72d379fb], al
xor al, 0xcf
cdq
mov eax, 0x48fd8216
ret
xchg esi, eax
wait
dec ecx
test byte [ebx], dh
jne 0x43dcea
xor esi, dword [ebp - 0x3d]
sub dh, byte [edi]
mov eax, dword [0x71af52fb]
sub ebx, edi
out 0x56, eax
scasd eax, dword es:[edi]
imul esp, dword ss:[edi + esi*2 - 0x54df3ab3], 0x5d
sbb al, 0x58
push esp
add dword [ebp + 0x57], ebp
push cs
xlatb
imul edx, dword [ecx], 0x495eec6c
adc dword [ebx - 0x259414a1], edi
or dh, byte [eax + ebp*4]
adc ebp, dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, 0x54e47b8e
and dword [ebx + 0x34], 0xae5c4376
add esi, dword [edx - 0x65]
pop ss
loop 0x43dd24
and byte [edi - 0x3b0c3b5b], ah
mov bl, 0xfb
ret 0x19b3

Function at 0x44e1a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov edx, dword [esp + 0x24]
mov dword [esp], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 4], ebx
mov dword [esp + 0x1c], ecx
call fcn.00467360
mov ecx, dword [esp + 0x1c]
Function at 0x4ae566
Capabilities:
Encode data using xor

Disassembly:
xor eax, eax
xor byte [eax + 0x10004000], 0x15
inc eax
cmp eax, 0x29f48
jb 0x4ae568
xor eax, eax
ret

Function at 0x4e829f
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x15c]
sub esp, 0x1dc
mov eax, dword [0x10062108]
xor eax, ebp
mov dword [ebp + 0x158], eax
push ebx
push esi
mov esi, 0x94
push esi
xor ebx, ebx
lea eax, [ebp - 0x40]
push ebx
push eax
call fcn.00511b80
add esp, 0xc
lea eax, [ebp - 0x40]
push eax
mov dword [ebp - 0x40], esi
call dword [0x1005505c]
mov eax, dword [ebp - 0x3c]
mov dword [0x10065310], eax
mov eax, dword [ebp - 0x38]
mov dword [0x10065318], eax
lea eax, [ebp - 0x20]
push eax
call fcn.00512243
mov edx, dword [0x10065318]
pop ecx
mov ecx, dword [0x10065310]
cmp ecx, 5
mov dword [0x10065320], eax
jne 0x4e831c
cmp edx, 1
jne 0x4e8491
cmp eax, 2
jae 0x4e832d
cmp ecx, 6
jne 0x4e8491
cmp edx, ebx
jne 0x4e8491
push 0x103
lea eax, [ebp + 0x55]
push ebx
push eax
mov byte [ebp + 0x54], bl
call fcn.00511b80
add esp, 0xc
push 0x104
lea eax, [ebp + 0x54]
push eax
call dword [0x10055054]
test eax, eax
je 0x4e8491
lea eax, [ebp + 0x54]
push 0x10058450
push eax
call fcn.005128e0
pop ecx
pop ecx
push ebx
lea eax, [ebp + 0x54]
push eax
call fcn.0052de3e
mov esi, eax
cmp esi, ebx
je 0x4e8491
push edi
push esi
push ebx
call dword [0x1005504c]
mov edi, eax
push edi
push esi
push ebx
lea eax, [ebp + 0x54]
push eax
call fcn.0052de44
test eax, eax
je 0x4e83c7
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x44]
push eax
push 0x10058464
push edi
call fcn.0052de38
test eax, eax
je 0x4e83c7
push dword [ebp - 0x4c]
lea eax, [ebp - 0x80]
push dword [ebp - 0x44]
push eax
call fcn.005116f0
movzx esi, word [ebp - 0x74]
add esp, 0xc
jmp 0x4e83ca
mov esi, dword [ebp - 0x44]
push edi
call dword [0x10055058]
mov eax, 0xa7d
cmp esi, eax
ja 0x4e8413
je 0x4e842f
sub esi, 0x830
je 0x4e840c
sub esi, 0x35
je 0x4e8405
sub esi, 0xd
je 0x4e83fe
sub esi, 0x12
jne 0x4e8490
mov edi, 0x4f322
jmp 0x4e8434
mov edi, 0x4f822
jmp 0x4e8434
mov edi, 0x4f4a2
jmp 0x4e8434
mov edi, 0x4eab7
jmp 0x4e8434
sub esi, 0xb0b
je 0x4e842f
sub esi, 0x41
je 0x4e842f
sub esi, 0x160
jne 0x4e8490
mov edi, 0x4f8c6
jmp 0x4e8434
mov edi, 0x4f5a2
lea eax, [ebp + 0x54]
push 0x10058468
push eax
call fcn.0051467e
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
je 0x4e8490
push ebx
push edi
push esi
mov dword [ebp - 0x48], ebx
call fcn.00514a40
push esi
push 4
lea eax, [ebp - 0x48]
push 1
push eax
call fcn.0051499e
push esi
call fcn.00511d1b
mov ecx, dword [ebp - 0x48]
mov eax, 0xff
add esp, 0x20
cmp ecx, eax
mov dword [0x10065324], ecx
jb 0x4e8483
mov dword [0x10065324], eax
push ecx
push 0x1005846c
call fcn.0051416c
pop ecx
pop ecx
pop edi
mov ecx, dword [ebp + 0x158]
pop esi
xor ecx, ebp
pop ebx
call fcn.005116e0
add ebp, 0x15c
leave
ret
Function at 0x4f5497
Capabilities:
Read file on windows

Disassembly:
push 0x74
mov eax, 0x1005381c
call fcn.0052965f
lea eax, [esi + 0x2c]
push eax
lea eax, [ebp - 0x4c]
push 0x10063af0
push eax
call fcn.004e7a14
push 0x10058198
push eax
lea eax, [ebp - 0x2c]
xor ebx, ebx
push eax
mov dword [ebp - 4], ebx
call fcn.004ebce0
add esp, 0x18
push ebx
push 1
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 2
call fcn.004e75b8
cmp dword [ebp - 0x14], 8
mov eax, dword [ebp - 0x28]
jae 0x4f54e7
lea eax, [ebp - 0x28]
push 0x10058c04
push eax
call fcn.005159e5
mov edi, eax
cmp edi, ebx
pop ecx
pop ecx
jne 0x4f5511
or dword [ebp - 4], 0xffffffff
push ebx
push 1
lea ecx, [ebp - 0x2c]
call fcn.004e75b8
xor al, al
call fcn.005296e2
ret
cmp dword [ebp - 0x14], 8
mov eax, dword [ebp - 0x28]
jae 0x4f551d
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x80]
push ecx
push eax
call fcn.00515c21
test eax, eax
pop ecx
pop ecx
je 0x4f5536
push edi
call fcn.00511d1b
pop ecx
jmp 0x4f54fa
mov eax, dword [ebp - 0x6c]
cmp eax, ebx
mov dword [esi + 0x24], eax
je 0x4f552d
mov eax, dword [esi + 0x20]
cmp eax, ebx
je 0x4f554e
push eax
call fcn.00512abd
pop ecx
mov eax, dword [esi + 0x24]
inc eax
push eax
call fcn.00512196
cmp eax, ebx
pop ecx
mov dword [esi + 0x20], eax
je 0x4f552d
mov ecx, dword [esi + 0x24]
inc ecx
push ecx
push ebx
push eax
call fcn.00511b80
push edi
push dword [esi + 0x24]
push 1
push dword [esi + 0x20]
call fcn.0051499e
add esp, 0x1c
cmp eax, ebx
jge 0x4f55a2
mov byte [ebp - 0x2d], bl
push edi
call fcn.00511d1b
or dword [ebp - 4], 0xffffffff
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x2c]
call fcn.004e75b8
mov al, byte [ebp - 0x2d]
jmp 0x4f550b
mov byte [ebp - 0x2d], 1
jmp 0x4f5584

Function at 0x4f717a
Capabilities:
Hash data using sha1

Disassembly:
xor ecx, ecx
cmp eax, ecx
jne 0x4f7184
xor eax, eax
inc eax
ret
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], ecx
mov dword [eax], 0x67452301
mov dword [eax + 4], 0xefcdab89
mov dword [eax + 8], 0x98badcfe
mov dword [eax + 0xc], 0x10325476
mov dword [eax + 0x10], 0xc3d2e1f0
mov dword [eax + 0x60], ecx
mov dword [eax + 0x64], ecx
xor eax, eax
ret
Function at 0x4f73de
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword [eax + 0x1c]
mov byte [ecx + eax + 0x20], 0x80
inc dword [eax + 0x1c]
cmp ecx, 0x37
mov ecx, dword [eax + 0x1c]
jle 0x4f7428
jmp 0x4f73fe
mov byte [ecx + eax + 0x20], 0
inc dword [eax + 0x1c]
mov ecx, dword [eax + 0x1c]
cmp ecx, 0x40
jl 0x4f73f3
call fcn.004f7229
jmp 0x4f7415
mov ecx, dword [eax + 0x1c]
mov byte [eax + ecx + 0x20], 0
inc dword [eax + 0x1c]
cmp dword [eax + 0x1c], 0x38
jl 0x4f740a
jmp 0x4f742d
mov byte [ecx + eax + 0x20], 0
inc dword [eax + 0x1c]
mov ecx, dword [eax + 0x1c]
cmp ecx, 0x38
jl 0x4f741d
mov ecx, dword [eax + 0x18]
mov edx, ecx
shr edx, 0x18
mov byte [eax + 0x58], dl
mov edx, ecx
shr ecx, 8
mov byte [eax + 0x5a], cl
mov cl, byte [eax + 0x18]
shr edx, 0x10
mov byte [eax + 0x5b], cl
mov ecx, dword [eax + 0x14]
mov byte [eax + 0x59], dl
mov edx, ecx
shr edx, 0x18
mov byte [eax + 0x5c], dl
mov edx, ecx
shr edx, 0x10
shr ecx, 8
mov byte [eax + 0x5e], cl
mov cl, byte [eax + 0x14]
mov byte [eax + 0x5d], dl
mov byte [eax + 0x5f], cl
jmp fcn.004f7229

Function at 0x505605
Capabilities:
Create thread

Disassembly:
push 4
mov eax, 0x10051834
call fcn.005295f6
mov edi, ecx
lea eax, [esi + 4]
push eax
mov dword [ebp - 0x10], eax
call dword [0x10055020]
and dword [ebp - 4], 0
cmp dword [esi + 0x21c], 0x3c
jle 0x505641
push 0xfffffffffffffffe
pop edi
push dword [ebp - 0x10]
call dword [0x1005501c]
mov eax, edi
call fcn.005296ce
call dword [0x10055274]
mov ebx, eax
test ebx, ebx
jne 0x505652
or edi, 0xffffffff
jmp 0x505630
mov eax, dword [edi]
push ebx
mov ecx, edi
call dword [eax + 8]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
cmp eax, 0xffffffff
je 0x50564d
mov eax, dword [esi + 0x21c]
mov dword [esi + eax*4 + 0x11c], edi
mov eax, dword [esi + 0x21c]
mov dword [esi + eax*4 + 0x1c], ebx
inc dword [esi + 0x21c]
lea eax, [esi + 0x220]
xor edi, edi
cmp dword [eax], edi
je 0x505630
push dword [esi + 0x224]
mov dword [eax], edi
call dword [0x10055034]
push esi
push edi
push 0x100283bb
call fcn.005164dc
add esp, 0xc
jmp 0x505630
Function at 0x50dd79
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push edi
lea eax, [ebp - 0xc]
mov ecx, esi
mov byte [ebp - 1], 0x20
mov byte [ebp - 2], 0x3f
call fcn.00504d15
mov edi, eax
lea eax, [ebp - 0x14]
mov ecx, esi
call fcn.00504cf5
lea ecx, [ebp - 1]
push ecx
lea ecx, [ebp - 2]
push ecx
push dword [edi + 4]
push dword [edi]
push dword [eax + 4]
push dword [eax]
call fcn.0050e692
add esp, 0x18
lea eax, [ebp - 0x14]
mov ecx, esi
mov byte [ebp - 2], 0x20
mov byte [ebp - 1], 0x2f
call fcn.00504d15
mov edi, eax
lea eax, [ebp - 0xc]
mov ecx, esi
call fcn.00504cf5
lea ecx, [ebp - 2]
push ecx
lea ecx, [ebp - 1]
push ecx
push dword [edi + 4]
push dword [edi]
push dword [eax + 4]
push dword [eax]
call fcn.0050e692
add esp, 0x18
lea eax, [ebp - 0x14]
mov ecx, esi
mov byte [ebp - 2], 0x20
mov byte [ebp - 1], 0x5c
call fcn.00504d15
mov edi, eax
lea eax, [ebp - 0xc]
mov ecx, esi
call fcn.00504cf5
lea ecx, [ebp - 2]
push ecx
lea ecx, [ebp - 1]
push ecx
push dword [edi + 4]
push dword [edi]
push dword [eax + 4]
push dword [eax]
call fcn.0050e692
add esp, 0x18
lea eax, [ebp - 0x14]
mov ecx, esi
mov byte [ebp - 2], 0x20
mov byte [ebp - 1], 0x7c
call fcn.00504d15
mov edi, eax
lea eax, [ebp - 0xc]
mov ecx, esi
call fcn.00504cf5
lea ecx, [ebp - 2]
push ecx
lea ecx, [ebp - 1]
push ecx
push dword [edi + 4]
push dword [edi]
push dword [eax + 4]
push dword [eax]
call fcn.0050e692
add esp, 0x18
mov byte [ebp - 2], 0x20
mov byte [ebp - 1], 0x3a
lea eax, [ebp - 0x14]
mov ecx, esi
call fcn.00504d15
mov edi, eax
lea eax, [ebp - 0xc]
mov ecx, esi
call fcn.00504cf5
lea ecx, [ebp - 2]
push ecx
lea ecx, [ebp - 1]
push ecx
push dword [edi + 4]
push dword [edi]
push dword [eax + 4]
push dword [eax]
call fcn.0050e692
add esp, 0x18
lea eax, [ebp - 0x14]
mov ecx, esi
mov byte [ebp - 2], 0x20
mov byte [ebp - 1], 0x2a
call fcn.00504d15
mov edi, eax
lea eax, [ebp - 0xc]
mov ecx, esi
call fcn.00504cf5
lea ecx, [ebp - 2]
push ecx
lea ecx, [ebp - 1]
push ecx
push dword [edi + 4]
push dword [edi]
push dword [eax + 4]
push dword [eax]
call fcn.0050e692
add esp, 0x18
lea eax, [ebp - 0x14]
mov ecx, esi
mov byte [ebp - 2], 0x20
mov byte [ebp - 1], 0x3c
call fcn.00504d15
mov edi, eax
lea eax, [ebp - 0xc]
mov ecx, esi
call fcn.00504cf5
lea ecx, [ebp - 2]
push ecx
lea ecx, [ebp - 1]
push ecx
push dword [edi + 4]
push dword [edi]
push dword [eax + 4]
push dword [eax]
call fcn.0050e692
add esp, 0x18
lea eax, [ebp - 0x14]
mov ecx, esi
mov byte [ebp - 2], 0x20
mov byte [ebp - 1], 0x3e
call fcn.00504d15
mov edi, eax
lea eax, [ebp - 0xc]
mov ecx, esi
call fcn.00504cf5
lea ecx, [ebp - 2]
push ecx
lea ecx, [ebp - 1]
push ecx
push dword [edi + 4]
push dword [edi]
push dword [eax + 4]
push dword [eax]
call fcn.0050e692
add esp, 0x18
lea eax, [ebp - 0x14]
mov ecx, esi
mov byte [ebp - 2], 0x20
mov byte [ebp - 1], 0x22
call fcn.00504d15
mov edi, eax
lea eax, [ebp - 0xc]
mov ecx, esi
call fcn.00504cf5
lea ecx, [ebp - 2]
push ecx
lea ecx, [ebp - 1]
push ecx
push dword [edi + 4]
push dword [edi]
push dword [eax + 4]
push dword [eax]
call fcn.0050e692
add esp, 0x18
pop edi
leave
ret
Function at 0x50e890
Capabilities:
Hash data with md5

Disassembly:
sub esp, 0x2c
mov eax, dword [0x10062108]
xor eax, esp
mov dword [esp + 0x28], eax
push esi
lea eax, [esp + 4]
push eax
call dword [0x100550d0]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov eax, dword [0x1006200c]
push ecx
push edx
push eax
lea ecx, [esp + 0x18]
push 0x1005538c
push ecx
call fcn.0051219b
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
push 0xb
mov dword [0x1006442c], ecx
mov dword [0x10064424], edx
mov edx, dword [esp + 0x30]
mov dword [0x10064428], eax
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x2c]
push 4
push ecx
mov dword [0x10064430], edx
mov dword [0x10064434], eax
mov dword [esp + 0x24], 0x67452301
call fcn.0050e830
push 0xd76aa478
push 7
mov esi, eax
push esi
push 0x10325476
push 0x98badcfe
lea edx, [esp + 0x38]
push 0xefcdab89
push edx
call fcn.0050e760
push 0xf61e2562
push 5
push esi
push 0x10325476
push 0x98badcfe
lea eax, [esp + 0x54]
push 0xefcdab89
push eax
call fcn.0050e790
add esp, 0x58
push 0xfffa3942
push 4
push esi
push 0x10325476
push 0x98badcfe
lea ecx, [esp + 0x18]
push 0xefcdab89
push ecx
call fcn.0050e7d0
push 0xf4292244
push 6
push esi
push 0x10325476
push 0x98badcfe
lea edx, [esp + 0x34]
push 0xefcdab89
push edx
call fcn.0050e800
mov eax, dword [esp + 0x3c]
mov ecx, eax
shr ecx, 0x10
xor ecx, eax
movzx ecx, cx
mov ax, cx
add esp, 0x38
shr ax, 0xc
cmp al, 9
pop esi
jbe 0x50e9b9
add al, 0x37
jmp 0x50e9bb
add al, 0x30
mov byte [0x1006442c], al
mov al, ch
and al, 0xf
cmp al, 9
jbe 0x50e9cc
add al, 0x37
jmp 0x50e9ce
add al, 0x30
mov byte [0x1006442d], al
mov al, cl
shr al, 4
and al, 0xf
cmp al, 9
jbe 0x50e9e2
add al, 0x37
jmp 0x50e9e4
add al, 0x30
and cl, 0xf
cmp cl, 9
mov byte [0x1006442e], al
jbe 0x50ea09
add cl, 0x37
mov byte [0x1006442f], cl
mov ecx, dword [esp + 0x28]
xor ecx, esp
call fcn.005116e0
add esp, 0x2c
ret
add cl, 0x30
mov byte [0x1006442f], cl
mov ecx, dword [esp + 0x28]
xor ecx, esp
call fcn.005116e0
add esp, 0x2c
ret
Function at 0x50f570
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x10051078
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10062108]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
mov edi, ecx
push 0x10064440
lea ecx, [esp + 0x1c]
call fcn.004e3205
lea ecx, [esp + 0x18]
mov dword [esp + 0x28], 0
call fcn.004e3228
cmp byte [edi + 0xc], 0
mov esi, dword [0x10064474]
mov ebx, dword [esp + 0x30]
mov ebp, dword [0x10055268]
mov dword [esp + 0x14], 0xa
je 0x50f72d
test esi, esi
je 0x50f66f
cmp dword [esp + 0x14], 0
je 0x50f66f
call dword [0x10055028]
sub eax, dword [esi + 8]
cmp eax, 0x1388
jbe 0x50f663
mov eax, dword [esi + 0x10]
mov ecx, dword [0x10064424]
mov dword [eax + 8], ecx
mov edx, dword [0x10064428]
add eax, 8
mov dword [eax + 4], edx
mov ecx, dword [0x1006442c]
mov dword [eax + 8], ecx
mov edx, dword [0x10064430]
mov dword [eax + 0xc], edx
mov ecx, dword [0x10064434]
mov dword [eax + 0x10], ecx
mov edx, dword [esi + 0x10]
movzx eax, word [edx]
push 0
push eax
call dword [0x1005523c]
mov edx, dword [esi + 0x10]
movzx ecx, ax
push ecx
push edx
push ebx
call ebp
cmp eax, 0xffffffff
je 0x50f756
call dword [0x10055028]
sub dword [esp + 0x14], 1
mov dword [esi + 8], eax
jmp 0x50f665
mov esi, dword [esi]
cmp byte [edi + 0xc], 0
jne 0x50f5da
cmp byte [edi + 0xc], 0
je 0x50f72d
cmp byte [edi + 0xd], 0
je 0x50f72d
cmp dword [esp + 0x14], 0
je 0x50f72d
mov esi, dword [0x10064460]
test esi, esi
je 0x50f72d
mov eax, dword [esi + 0x10]
mov ecx, dword [0x10064424]
mov dword [eax + 8], ecx
mov edx, dword [0x10064428]
add eax, 8
mov dword [eax + 4], edx
mov ecx, dword [0x1006442c]
mov dword [eax + 8], ecx
mov edx, dword [0x10064430]
mov dword [eax + 0xc], edx
mov ecx, dword [0x10064434]
mov dword [eax + 0x10], ecx
mov edx, dword [esi + 0x10]
movzx eax, word [edx]
push 0
push eax
call dword [0x1005523c]
mov edx, dword [esi + 0x10]
movzx ecx, ax
push ecx
push edx
push ebx
call ebp
cmp eax, 0xffffffff
je 0x50f756
cmp dword [0x1006445c], esi
mov eax, dword [esi]
mov dword [0x10064460], eax
jne 0x50f707
mov dword [0x1006445c], 0x10064460
call dword [0x10055028]
sub dword [esp + 0x14], 1
mov dword [esi + 8], eax
mov ecx, dword [0x10064474]
mov dword [esi], ecx
mov dword [0x10064474], esi
cmp byte [edi + 0xc], 0
jne 0x50f679
lea ecx, [esp + 0x18]
mov dword [esp + 0x28], 0xffffffff
call fcn.004e3214
mov al, 1
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 4
lea ecx, [esp + 0x18]
mov dword [esp + 0x28], 0xffffffff
call fcn.004e3214
xor al, al
jmp 0x50f740
Function at 0x514702
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov ecx, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
xor edi, edi
cmp dword [ebp + 0x10], edi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], ebx
je 0x51473f
cmp dword [ebp + 0x14], edi
je 0x51473f
cmp ecx, edi
jne 0x514746
call fcn.00517808
push edi
push edi
push edi
push edi
mov dword [eax], 0x16
push edi
call fcn.005123f1
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
mov esi, dword [ebp + 0x18]
cmp esi, edi
je 0x51475a
or eax, 0xffffffff
xor edx, edx
div dword [ebp + 0x10]
cmp dword [ebp + 0x14], eax
jbe 0x51477b
cmp ebx, 0xffffffff
je 0x51476a
push ebx
push edi
push ecx
call fcn.00511b80
add esp, 0xc
cmp esi, edi
je 0x514727
or eax, 0xffffffff
xor edx, edx
div dword [ebp + 0x10]
cmp dword [ebp + 0x14], eax
ja 0x514727
mov edi, dword [ebp + 0x10]
imul edi, dword [ebp + 0x14]
test word [esi + 0xc], 0x10c
mov dword [ebp - 0x10], edi
mov ebx, edi
je 0x514797
mov eax, dword [esi + 0x18]
mov dword [ebp - 0xc], eax
jmp 0x51479e
mov dword [ebp - 0xc], 0x1000
test edi, edi
je 0x51488f
test word [esi + 0xc], 0x10c
je 0x5147f2
mov eax, dword [esi + 4]
test eax, eax
je 0x5147f2
jl 0x5148f0
cmp ebx, eax
mov edi, ebx
jb 0x5147c3
mov edi, eax
cmp edi, dword [ebp - 4]
ja 0x514897
push edi
push dword [esi]
push dword [ebp - 4]
push dword [ebp - 8]
call fcn.005127b0
sub dword [esi + 4], edi
add dword [esi], edi
add dword [ebp - 8], edi
sub ebx, edi
add esp, 0x10
sub dword [ebp - 4], edi
mov edi, dword [ebp - 0x10]
jmp 0x514887
cmp ebx, dword [ebp - 0xc]
jb 0x51485f
cmp dword [ebp - 0xc], 0
je 0x51481c
mov ecx, 0x7fffffff
xor edx, edx
cmp ebx, ecx
jbe 0x514811
mov eax, ecx
div dword [ebp - 0xc]
mov eax, ecx
jmp 0x514818
mov eax, ebx
div dword [ebp - 0xc]
mov eax, ebx
sub eax, edx
jmp 0x514827
mov eax, 0x7fffffff
cmp ebx, eax
ja 0x514827
mov eax, ebx
cmp eax, dword [ebp - 4]
ja 0x5148c3
push eax
push dword [ebp - 8]
push esi
call fcn.00517b03
pop ecx
push eax
call fcn.0051c250
add esp, 0xc
test eax, eax
je 0x514902
cmp eax, 0xffffffff
je 0x5148f0
add dword [ebp - 8], eax
sub ebx, eax
sub dword [ebp - 4], eax
jmp 0x514887
push esi
call fcn.0051bb6f
cmp eax, 0xffffffff
pop ecx
je 0x5148f4
cmp dword [ebp - 4], 0
je 0x5148c3
mov ecx, dword [ebp - 8]
inc dword [ebp - 8]
mov byte [ecx], al
mov eax, dword [esi + 0x18]
dec ebx
dec dword [ebp - 4]
mov dword [ebp - 0xc], eax
test ebx, ebx
jne 0x5147a6
mov eax, dword [ebp + 0x14]
jmp 0x514741
xor esi, esi
cmp dword [ebp + 0xc], 0xffffffff
je 0x5148ae
push dword [ebp + 0xc]
push esi
push dword [ebp + 8]
call fcn.00511b80
add esp, 0xc
call fcn.00517808
push esi
push esi
push esi
push esi
mov dword [eax], 0x22
push esi
jmp 0x514737
cmp dword [ebp + 0xc], 0xffffffff
je 0x5148d9
push dword [ebp + 0xc]
push 0
push dword [ebp + 8]
call fcn.00511b80
add esp, 0xc
call fcn.00517808
mov dword [eax], 0x22
xor eax, eax
push eax
push eax
push eax
push eax
push eax
jmp 0x514737
or dword [esi + 0xc], 0x20
mov eax, edi
sub eax, ebx
xor edx, edx
div dword [ebp + 0x10]
jmp 0x514741
or dword [esi + 0xc], 0x10
jmp 0x5148f4
Function at 0x409f3c
Capabilities:
Set file attributes

Disassembly:
push dword [esp + 8]
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
setne al
ret 8

Function at 0x409fe4
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [0x42ab20]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi]
and dword [esi + 4], 0
xor ecx, ecx
mov word [eax], cx
xor eax, eax
push edi
mov word [ebp - 0x210], ax
lea eax, [ebp - 0x210]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov edi, eax
lea eax, [ebp - 0x210]
push eax
mov ecx, esi
call fcn.004092bc
mov ecx, dword [ebp - 4]
dec edi
mov eax, 0x103
cmp eax, edi
sbb eax, eax
pop edi
xor ecx, ebp
inc eax
pop esi
call fcn.00417bcb
leave
ret 4

Function at 0x40a099
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [0x42ab20]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi]
and dword [esi + 4], 0
xor ecx, ecx
mov word [eax], cx
xor eax, eax
push edi
mov word [ebp - 0x210], ax
lea eax, [ebp - 0x210]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov edi, eax
lea eax, [ebp - 0x210]
push eax
mov ecx, esi
call fcn.004092bc
mov ecx, dword [ebp - 4]
dec edi
mov eax, 0x103
cmp eax, edi
sbb eax, eax
pop edi
xor ecx, ebp
inc eax
pop esi
call fcn.00417bcb
leave
ret 4

Function at 0x40a22f
Capabilities:
Create directory

Disassembly:
push 0x38
mov eax, 0x420ca0
call fcn.00417bda
xor ebx, ebx
push ebx
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x40a255
mov al, 1
call fcn.00417c79
ret 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40a266
xor al, al
jmp 0x40a24d
lea ecx, [ebp - 0x44]
call fcn.0040a961
lea ecx, [ebp - 0x1c]
call fcn.00409205
push dword [ebp + 8]
lea ecx, [ebp - 0x44]
mov dword [ebp - 4], ebx
call fcn.0040aa3e
test al, al
jne 0x40a295
push dword [ebp - 0x1c]
call fcn.0040978c
pop ecx
mov al, bl
jmp 0x40a24d
mov ebx, dword [ebp - 0x24]
shr ebx, 4
and bl, 1
jmp 0x40a288

Function at 0x40a984
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40a995
or eax, eax
ret 4

Function at 0x40aeb9
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
lea eax, [ebp - 4]
push eax
push dword [ecx]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
jne 0x40aedf
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x40aedf
xor al, al
jmp 0x40aeff
push 1
push 0
push 0
push dword [ebp - 4]
call fcn.004193e0
mov ecx, eax
xor eax, eax
add ecx, esi
adc edx, eax
mov eax, dword [ebp + 8]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov al, 1
pop esi
leave
ret 4