joyce8/EMBER2024-capa huggingface dataset:
Function at 0x47dff0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x51e688
mov eax, dword fs:[0]
push eax
mov eax, dword [0x58057c]
xor eax, esp
push eax
lea eax, [esp + 4]
mov dword fs:[0], eax
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov byte [eax + 4], cl
mov dword [eax + 8], 0x565810
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], ecx
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x20], fcn.004fe6e3
mov dword [eax + 0x24], fcn.004ff2b3
mov dword [eax + 0x28], fcn.004fe606
mov dword [eax], vtable.n_config::t_arraySection_class_t_parserImeRepair::t_imeItem_.0
mov dword [eax + 0x2c], 1
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 4]
mov dword fs:[0], ecx
pop ecx
add esp, 0xc
ret 8

Function at 0x484460
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x51fefa
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x58057c]
xor eax, esp
push eax
lea eax, [esp + 0xc]
mov dword fs:[0], eax
mov esi, dword [esp + 0x1c]
xor eax, eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 0xa
mov dword [esi + 0x18], fcn.004fe6e3
mov dword [esi + 0x1c], fcn.004ff2b3
mov dword [esi + 0x20], fcn.004fe606
mov dword [esi + 0x24], eax
mov dword [esp + 0x14], eax
xor edx, edx
mov dword [esi], vtable.SogouPluginableModuleDirectoryManager.0
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ecx
mov byte [esi + 0x238], al
mov word [esi + 0x30], dx
call fcn.004844f0
mov eax, esi
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0x10
ret 4
Function at 0x49ce00
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x522e08
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push edi
mov eax, dword [0x58057c]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
xor ebx, ebx
cmp byte [esi + 0x34], bl
je 0x49ce5f
mov byte [esp + 0x14], bl
mov dword [esp + 0x10], ebx
lea edi, [esp + 0x10]
mov ecx, esi
mov dword [esp + 0x20], ebx
call fcn.0049cfe0
test al, al
jne 0x49ce4e
mov ecx, edi
call fcn.00417c50
lea ecx, [esp + 0x10]
mov dword [esp + 0x20], 0xffffffff
call fcn.00417ba0
mov eax, dword [esi + 8]
cmp eax, ebx
je 0x49ce74
mov ecx, dword [esi + 4]
push ecx
push ebx
push eax
call fcn.00503d40
add esp, 0xc
lea ecx, [esi + 0xc]
mov dword [esi + 0x24], ebx
mov dword [esi + 0x28], ebx
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x30], ebx
call fcn.00416c70
mov byte [esi + 0x34], bl
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebx
add esp, 0x18
ret
Function at 0x4aa2f0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x5270e8
mov eax, dword fs:[0]
push eax
sub esp, 0x18
mov eax, dword [0x58057c]
xor eax, esp
mov dword [esp + 0x14], eax
push ebp
push esi
push edi
mov eax, dword [0x58057c]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
mov eax, dword [str.SGPO]
mov esi, ecx
mov edi, edx
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], str..pipe_sgppPopup2
mov dword [esp + 0x20], eax
lea eax, [esp + 0x10]
mov dword [esp + 0x30], 0
call fcn.004aa260
cmp eax, 0xffffffff
jne 0x4aa385
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4aa375
push eax
call fcn.0050001c
add esp, 4
mov ecx, dword [esp + 0x10]
push ecx
call dword [0x531398]
or eax, 0xffffffff
jmp 0x4aa3f5
push edi
mov eax, esi
lea ecx, [esp + 0x14]
call fcn.004a9cf0
mov ebp, eax
cmp ebp, 1
jne 0x4aa3d7
push 0x64
call dword [0x5313a4]
lea eax, [esp + 0x10]
call fcn.004aa260
cmp eax, 0xffffffff
jne 0x4aa3bc
lea esi, [esp + 0x10]
call fcn.004aa2c0
or eax, 0xffffffff
jmp 0x4aa3f5
push edi
mov eax, esi
lea ecx, [esp + 0x14]
call fcn.004a9cf0
lea esi, [esp + 0x10]
mov edi, eax
call fcn.004aa2c0
mov eax, edi
jmp 0x4aa3f5
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4aa3e8
push eax
call fcn.0050001c
add esp, 4
mov edx, dword [esp + 0x10]
push edx
call dword [0x531398]
mov eax, ebp
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x14]
xor ecx, esp
call fcn.004fdc2b
add esp, 0x24
ret
Function at 0x4b0780
Capabilities:
Create thread

Disassembly:
push esi
push edi
mov esi, eax
push 0x2c
mov byte [esi], 1
call fcn.004ff5fa
push eax
mov dword [eax], esi
lea edi, [eax + 4]
push 0
add esi, 0x810
mov ecx, 0xa
push 0x4b09b0
rep movsd dword es:[edi], dword [esi]
call fcn.00501ec2
add esp, 0x10
pop edi
pop esi
ret

Function at 0x4b32f0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x51d078
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x58057c]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
mov esi, ecx
push 0x64
push 0
lea ecx, [esp + 0x20]
call fcn.00427e00
mov dword [esp + 0x18], vtable.UserEnv::t_locker.0
mov edi, dword [esp + 0x30]
push 0x587b80
push edi
lea ecx, [esp + 0x20]
mov dword [esp + 0x30], 0
call fcn.00427e50
mov ebx, dword [esp + 0x34]
test al, al
je 0x4b339d
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
mov dword [esp + 0x40], ebx
call fcn.004b29a0
test eax, eax
je 0x4b337a
mov eax, dword [eax + 4]
test eax, eax
jne 0x4b3387
push ebx
push edi
mov ecx, esi
call fcn.004b3010
test eax, eax
je 0x4b339d
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push ecx
push edx
push edi
mov ecx, eax
call fcn.004b2270
test al, al
jne 0x4b33de
push ebx
push str.UserEnv::MergeFrom
push edi
call fcn.00417cb0
add esp, 0xc
lea ecx, [esp + 0x18]
mov bl, al
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x18], vtable.UserEnv::t_locker.0
call fcn.00427e20
mov al, bl
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x1c
ret 0x10
lea ecx, [esp + 0x18]
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x18], vtable.UserEnv::t_locker.0
call fcn.00427e20
mov al, 1
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x1c
ret 0x10
Function at 0x4b3410
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x51d078
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x58057c]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
mov esi, ecx
push 0x64
push 0
lea ecx, [esp + 0x20]
call fcn.00427e00
mov dword [esp + 0x18], vtable.UserEnv::t_locker.0
mov edi, dword [esp + 0x30]
push 0x587b80
push edi
lea ecx, [esp + 0x20]
mov dword [esp + 0x30], 0
call fcn.00427e50
mov ebx, dword [esp + 0x34]
test al, al
je 0x4b34bd
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
mov dword [esp + 0x40], ebx
call fcn.004b29a0
test eax, eax
je 0x4b349a
mov eax, dword [eax + 4]
test eax, eax
jne 0x4b34a7
push ebx
push edi
mov ecx, esi
call fcn.004b3010
test eax, eax
je 0x4b34bd
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push ecx
push edx
push edi
mov ecx, eax
call fcn.004b2540
test al, al
jne 0x4b34fe
push ebx
push str.UserEnv::MergeGet
push edi
call fcn.00417cb0
add esp, 0xc
lea ecx, [esp + 0x18]
mov bl, al
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x18], vtable.UserEnv::t_locker.0
call fcn.00427e20
mov al, bl
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x1c
ret 0x10
lea ecx, [esp + 0x18]
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x18], vtable.UserEnv::t_locker.0
call fcn.00427e20
mov al, 1
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x1c
ret 0x10
Function at 0x4b5320
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x51d600
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push esi
push edi
mov eax, dword [0x58057c]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
mov edi, ecx
push 0x64
push 0
lea ecx, [esp + 0x1c]
call fcn.00427e00
mov dword [esp + 0x14], vtable.UserManager::t_lockerProc.0
mov esi, dword [ebp + 8]
push 0x587db8
push esi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x38], 0
call fcn.00427e50
test al, al
je 0x4b54a9
push 0x64
push 0
lea ecx, [esp + 0x24]
call fcn.00427e00
mov dword [esp + 0x1c], vtable.UserManager::t_locker.0
push 0x587fe8
push esi
lea ecx, [esp + 0x24]
mov byte [esp + 0x38], 1
call fcn.00427e50
test al, al
je 0x4b549b
push 0
push esi
lea ecx, [edi + 0x14c]
call fcn.0041abc0
test al, al
je 0x4b549b
push 0
push esi
lea ecx, [edi + 0x444]
call fcn.0041abc0
test al, al
je 0x4b549b
mov ebx, dword [ebp + 0xc]
push 0x558ca4
mov ecx, ebx
call fcn.00418b80
cmp byte [edi + 0x149], 0
jne 0x4b540d
push 0x5321c4
mov ecx, esi
call fcn.00417c00
mov ecx, eax
jmp 0x4b5496
mov eax, dword [ebp + 0x10]
push 0
push eax
lea ecx, [esp + 0x18]
push ecx
lea ecx, [edi + 8]
mov dword [esp + 0x1c], 0
call fcn.004ba200
test al, al
je 0x4b5477
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x4b5477
call fcn.004b9970
push eax
mov ecx, ebx
call fcn.00418b80
lea ecx, [esp + 0x1c]
mov byte [esp + 0x30], 0
call fcn.00427e20
lea ecx, [esp + 0x14]
mov dword [esp + 0x30], 0xffffffff
call fcn.00427e20
mov al, 1
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0x5321b0
mov ecx, esi
call fcn.00417c00
mov ecx, eax
call fcn.00418700
mov ecx, ebx
mov esi, eax
call fcn.004191b0
push eax
mov ecx, esi
call fcn.00418700
lea ecx, [esp + 0x1c]
mov byte [esp + 0x30], 0
call fcn.00427e20
lea ecx, [esp + 0x14]
mov dword [esp + 0x30], 0xffffffff
call fcn.00427e20
xor al, al
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x4b7870
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x51db48
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x58057c]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
mov esi, ecx
mov ecx, dword [esp + 0x30]
mov al, byte [esp + 0x2c]
mov edi, dword [esp + 0x28]
push str.Local_sgime_user_lock_proc
mov dword [esi + 4], ecx
push edi
mov ecx, 0x587db8
mov byte [esi], al
call fcn.004333c0
test al, al
jne 0x4b78e0
push 0x5324b4
push edi
call fcn.00417cb0
add esp, 8
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0xc
push str.Local_sgime_user_lock
push edi
mov ecx, 0x587fe8
call fcn.00427f40
test al, al
je 0x4b78bd
push 0x64
push 0
lea ecx, [esp + 0x18]
call fcn.00427e00
mov dword [esp + 0x10], vtable.UserManager::t_locker.0
push 0x587fe8
push edi
lea ecx, [esp + 0x18]
mov dword [esp + 0x28], 0
call fcn.00427e50
test al, al
jne 0x4b795c
push 0x5324b4
push edi
call fcn.00417cb0
add esp, 8
lea ecx, [esp + 0x10]
mov bl, al
mov dword [esp + 0x20], 0xffffffff
call fcn.00427e20
mov al, bl
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0xc
xor bl, bl
cmp byte [esi + 0xa70], bl
jne 0x4b79fc
call fcn.0041d470
mov ecx, eax
call fcn.0041c270
test al, al
jne 0x4b79b3
push edi
call fcn.0041d470
mov ecx, eax
call fcn.0041c2b0
test al, al
jne 0x4b79b3
lea ecx, [esp + 0x10]
mov dword [esp + 0x20], 0xffffffff
call fcn.00427e20
xor al, al
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0xc
call fcn.0041d470
mov ecx, eax
call fcn.0041c280
test al, al
je 0x4b79ca
mov byte [esi + 0xa70], 1
mov ecx, esi
call fcn.004b5bc0
push 1
lea edx, [esp + 0x14]
push edx
push edi
mov ecx, esi
call fcn.004b7440
test al, al
je 0x4b79fe
lea eax, [esp + 0x10]
push eax
push edi
mov ecx, esi
call fcn.004b6cf0
test al, al
je 0x4b79fe
mov byte [esi + 0xa70], 1
mov bl, 1
call fcn.0041d470
mov ecx, eax
call fcn.0041c280
test al, al
jne 0x4b7a16
test bl, bl
je 0x4b798b
lea ecx, [esp + 0x10]
mov dword [esp + 0x20], 0xffffffff
call fcn.00427e20
mov al, 1
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0xc
Function at 0x4b7d80
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x51daa0
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x58057c]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
mov edi, ecx
push 0x64
push 0
lea ecx, [esp + 0x20]
call fcn.00427e00
mov dword [esp + 0x18], vtable.UserManager::t_lockerProc.0
mov esi, dword [esp + 0x30]
push 0x587db8
push esi
lea ecx, [esp + 0x20]
mov dword [esp + 0x30], 0
call fcn.00427e50
test al, al
je 0x4b7e17
push 0x64
push 0
lea ecx, [esp + 0x18]
call fcn.00427e00
mov dword [esp + 0x10], vtable.UserManager::t_locker.0
push 0x587fe8
push esi
lea ecx, [esp + 0x18]
mov byte [esp + 0x30], 1
call fcn.00427e50
test al, al
jne 0x4b7e3f
lea ecx, [esp + 0x10]
mov byte [esp + 0x28], 0
call fcn.00427e20
lea ecx, [esp + 0x18]
mov dword [esp + 0x28], 0xffffffff
call fcn.00427e20
xor al, al
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x1c
ret 0x10
push 0
push esi
lea ecx, [edi + 0x14c]
call fcn.0041abc0
test al, al
je 0x4b7e09
push 0
push esi
lea ecx, [edi + 0x444]
call fcn.0041abc0
test al, al
je 0x4b7e09
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
push eax
push ecx
push edx
lea eax, [esp + 0x1c]
push eax
push esi
mov ecx, edi
call fcn.004b7750
lea ecx, [esp + 0x10]
mov bl, al
mov byte [esp + 0x28], 0
call fcn.00427e20
lea ecx, [esp + 0x18]
mov dword [esp + 0x28], 0xffffffff
call fcn.00427e20
mov al, bl
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x1c
ret 0x10
Function at 0x4b7ec0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x51daa0
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x58057c]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
mov edi, ecx
push 0x64
push 0
lea ecx, [esp + 0x20]
call fcn.00427e00
mov dword [esp + 0x18], vtable.UserManager::t_lockerProc.0
mov esi, dword [esp + 0x30]
push 0x587db8
push esi
lea ecx, [esp + 0x20]
mov dword [esp + 0x30], 0
call fcn.00427e50
test al, al
je 0x4b7f57
push 0x64
push 0
lea ecx, [esp + 0x18]
call fcn.00427e00
mov dword [esp + 0x10], vtable.UserManager::t_locker.0
push 0x587fe8
push esi
lea ecx, [esp + 0x18]
mov byte [esp + 0x30], 1
call fcn.00427e50
test al, al
jne 0x4b7f7f
lea ecx, [esp + 0x10]
mov byte [esp + 0x28], 0
call fcn.00427e20
lea ecx, [esp + 0x18]
mov dword [esp + 0x28], 0xffffffff
call fcn.00427e20
xor al, al
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x1c
ret 0x10
push 0
push esi
lea ecx, [edi + 0x14c]
call fcn.0041abc0
test al, al
je 0x4b7f49
push 0
push esi
lea ecx, [edi + 0x444]
call fcn.0041abc0
test al, al
je 0x4b7f49
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
push eax
push ecx
push edx
lea eax, [esp + 0x1c]
push eax
push esi
mov ecx, edi
call fcn.004b7a40
lea ecx, [esp + 0x10]
mov bl, al
mov byte [esp + 0x28], 0
call fcn.00427e20
lea ecx, [esp + 0x18]
mov dword [esp + 0x28], 0xffffffff
call fcn.00427e20
mov al, bl
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x1c
ret 0x10
Function at 0x4fce87
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x24
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 0x78]
mov ebx, dword [edx + 0x8c]
cmp eax, ebx
mov eax, dword [edx + 0x34]
mov ebx, dword [edx + 0x7c]
jl 0x4fceac
shr ebx, 2
dec ebx
shl ebx, 0x10
or ebx, eax
mov dword [esp], ebx
mov eax, dword [edx + 0x90]
mov ebx, dword [edx + 0x74]
cmp ebx, eax
jl 0x4fcec4
mov ebx, eax
mov dword [esp + 0x18], ebx
mov esi, dword [edx + 0x38]
mov dword [esp + 4], esi
mov ebp, dword [edx + 0x6c]
lea edi, [ebp + esi]
mov dword [esp + 0x20], edi
mov eax, edi
neg eax
and eax, 3
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x2c]
sub eax, 0x106
sub ebp, eax
jg 0x4fcef3
xor ebp, ebp
mov eax, dword [edx + 0x78]
mov dword [esp + 0x1c], eax
add esi, eax
mov dword [esp + 8], esi
movzx ebx, word [edi]
mov dword [esp + 0x10], ebx
movzx ebx, word [eax + edi - 1]
mov dword [esp + 0xc], ebx
mov edi, dword [edx + 0x40]
mov edx, dword [esp]
jmp 0x4fcf32
and ecx, edx
movzx ecx, word [edi + ecx*2]
cmp ecx, ebp
jbe 0x4fd006
sub edx, 0x10000
js 0x4fd006
movzx eax, word [ecx + esi - 1]
cmp eax, ebx
jne 0x4fcf18
mov eax, dword [esp + 4]
movzx eax, word [ecx + eax]
cmp eax, dword [esp + 0x10]
jne 0x4fcf18
mov dword [esp], edx
mov esi, dword [esp + 4]
mov edi, dword [esp + 0x20]
add esi, ecx
mov eax, dword [esp + 0x14]
mov edx, 0xfffffef8
lea edi, [eax + edi + 0x108]
lea esi, [eax + esi + 0x108]
mov eax, dword [edx + esi]
xor eax, dword [edx + edi]
jne 0x4fcf89
mov eax, dword [edx + esi + 4]
xor eax, dword [edx + edi + 4]
jne 0x4fcf86
add edx, 8
jne 0x4fcf6d
jmp 0x4fcff7
add edx, 4
test eax, 0xffff
jne 0x4fcf96
add edx, 2
shr eax, 0x10
sub al, 1
adc edx, 0
lea eax, [edx + edi]
mov edi, dword [esp + 0x20]
sub eax, edi
cmp eax, 0x102
jge 0x4fcff7
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x1c]
cmp eax, ebx
jg 0x4fcfca
mov esi, dword [esp + 8]
mov edi, dword [edx + 0x40]
mov ebx, dword [esp + 0xc]
mov edx, dword [esp]
jmp 0x4fcf18
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov dword [edx + 0x70], ecx
cmp eax, ebx
jge 0x4fd006
mov esi, dword [esp + 4]
add esi, eax
mov dword [esp + 8], esi
movzx ebx, word [eax + edi - 1]
mov edi, dword [edx + 0x40]
mov dword [esp + 0xc], ebx
mov edx, dword [esp]
jmp 0x4fcf18
mov edx, dword [esp + 0x38]
mov dword [esp + 0x1c], 0x102
mov dword [edx + 0x70], ecx
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x1c]
mov eax, dword [edx + 0x74]
cmp ebx, eax
jg 0x4fd017
mov eax, ebx
add esp, 0x24
pop ebx
pop esi
pop edi
pop ebp
ret
Function at 0x435753
Capabilities:
Encrypt data using rc4 prga

Disassembly:
jmp 0x49c300
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x40
cmp dword [0x4bf664], 1
jge 0x49c36f
mov eax, dword [ebx + 8]
movzx ecx, word [eax]
test ecx, ecx
je 0x49c345
mov edx, dword [ebx + 8]
movzx eax, word [edx]
movzx ecx, word [ebx + 0xc]
cmp eax, ecx
je 0x49c345
mov edx, dword [ebx + 8]
add edx, 2
mov dword [ebx + 8], edx
jmp 0x49c322
mov eax, dword [ebx + 8]
movzx ecx, word [eax]
movzx edx, word [ebx + 0xc]
cmp ecx, edx
jne 0x49c35b
mov eax, dword [ebx + 8]
mov dword [ebp - 4], eax
jmp 0x49c362
mov dword [ebp - 4], 0
mov eax, dword [ebp - 4]
jmp 0x49c46d
movzx ecx, word [ebx + 0xc]
movd xmm0, ecx
movdqa xmmword [ebp - 0x30], xmm0
pshuflw xmm0, xmmword [ebp - 0x30], 0
movdqa xmmword [ebp - 0x30], xmm0
pshufd xmm0, xmmword [ebp - 0x30], 0
movdqa xmmword [ebp - 0x30], xmm0
mov edx, dword [ebx + 8]
and edx, 0xfff
cmp edx, 0xff0
ja 0x49c43e
mov eax, dword [ebx + 8]
movdqu xmm0, xmmword [eax]
movdqa xmmword [ebp - 0x40], xmm0
movdqa xmm0, xmmword [ebp - 0x20]
pxor xmm0, xmmword [ebp - 0x20]
movdqa xmmword [ebp - 0x20], xmm0
movdqa xmm0, xmmword [ebp - 0x20]
pcmpeqw xmm0, xmmword [ebp - 0x40]
movdqa xmmword [ebp - 0x20], xmm0
movdqa xmm0, xmmword [ebp - 0x40]
pcmpeqw xmm0, xmmword [ebp - 0x30]
movdqa xmmword [ebp - 0x40], xmm0
movdqa xmm0, xmmword [ebp - 0x20]
por xmm0, xmmword [ebp - 0x40]
movdqa xmmword [ebp - 0x20], xmm0
movdqa xmm0, xmmword [ebp - 0x20]
pmovmskb ecx, xmm0
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0
je 0x49c433
bsf edx, dword [ebp - 8]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
add eax, dword [ebx + 8]
mov dword [ebx + 8], eax
mov ecx, dword [ebx + 8]
movzx edx, word [ecx]
movzx eax, word [ebx + 0xc]
cmp edx, eax
jne 0x49c427
mov ecx, dword [ebx + 8]
mov dword [ebp - 0xc], ecx
jmp 0x49c42e
mov dword [ebp - 0xc], 0
mov eax, dword [ebp - 0xc]
jmp 0x49c46d
mov edx, dword [ebx + 8]
add edx, 0x10
mov dword [ebx + 8], edx
jmp 0x49c468
mov eax, dword [ebx + 8]
movzx ecx, word [eax]
movzx edx, word [ebx + 0xc]
cmp ecx, edx
jne 0x49c451
mov eax, dword [ebx + 8]
jmp 0x49c46d
mov eax, dword [ebx + 8]
movzx ecx, word [eax]
test ecx, ecx
jne 0x49c45f
xor eax, eax
jmp 0x49c46d
mov edx, dword [ebx + 8]
add edx, 2
mov dword [ebx + 8], edx
jmp 0x49c392
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
Function at 0x405e6a
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
push esi
mov esi, 0x104
lea eax, [ebp - 0x120]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
cmp eax, esi
pop esi
jbe 0x405e8e
xor eax, eax
test eax, eax
je 0x405ea0
cmp byte [ebp + eax - 0x121], 0x5c
je 0x405ea0
xor ecx, ecx
jmp 0x405ea3
xor ecx, ecx
inc ecx
push dword [ebp + 8]
lea ecx, [ecx + 0x409010]
lea eax, [ebp + eax - 0x120]
push ecx
push str._s_s.dll
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x120]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
leave
ret 4

Function at 0x405f43
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
cmp dword [0x43eacc], 0
push esi
jne 0x405f7a
xor ecx, ecx
push 8
mov eax, ecx
pop esi
mov edx, eax
and dl, 1
neg dl
sbb edx, edx
and edx, 0xedb88320
shr eax, 1
xor eax, edx
dec esi
jne 0x405f54
mov dword [ecx*4 + 0x43eac8], eax
inc ecx
cmp ecx, 0x100
jl 0x405f4f
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 8]
test edx, edx
not eax
jbe 0x405fab
mov ecx, dword [esp + 0xc]
push edi
movzx edi, byte [ecx]
mov esi, eax
and esi, 0xff
xor esi, edi
shr eax, 8
mov esi, dword [esi*4 + 0x43eac8]
xor eax, esi
inc ecx
dec edx
jne 0x405f8d
pop edi
not eax
pop esi
ret 0xc

Function at 0x430000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
nop
mov eax, section..text
nop
nop
push 4
nop
nop
nop
pop edi
nop
nop
nop
nop
nop
nop
cmp eax, 0
nop
nop
nop
nop
nop
je 0x430072
nop
mov ebx, 0x408ecc
nop
mov ecx, ebx
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
push eax
nop
nop
mov eax, ecx
nop
nop
nop
nop
div edi
nop
nop
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
pop eax
nop
nop
mov esi, 0x398f1c97
nop
nop
nop
nop
xor dword [eax], esi
add eax, edi
nop
nop
nop
nop
nop
nop
nop
loop 0x430060
nop
nop
mov eax, section..data
nop
cmp eax, 0
nop
nop
nop
nop
nop
nop
je 0x4300d2
mov ebx, 0x42e1d0
nop
nop
nop
nop
nop
mov ecx, ebx
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
xor edx, edx
nop
push eax
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
nop
div edi
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
pop eax
nop
mov esi, 0x1a78626d
nop
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
add eax, edi
nop
nop
nop
loop 0x4300c0
nop
nop
nop
nop
nop
popal
nop
nop
nop
jmp 0x401219