joyce8/EMBER2024-capa huggingface dataset:
Function at 0x45f978
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff94
push ebx
push esi
push edi
mov esi, edx
mov ebx, eax
cmp byte [ebx + 0x1f8], 0
je 0x45f994
cmp dword [esi + 4], 0
je 0x45f9c1
test byte [ebx + 0x55], 1
jne 0x45f9b3
mov eax, ebx
call fcn.0045e518
test eax, eax
jne 0x45f9b3
mov edx, esi
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx - 0x10]
jmp 0x45fad1
mov edx, esi
mov eax, ebx
call fcn.0045f49c
jmp 0x45fad1
push 0
call sub.user32.dll_GetDC
mov edi, eax
lea edx, [ebp - 0x5c]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebp - 0x64]
push eax
push edi
call sub.gdi32.dll_CreateCompatibleBitmap
mov dword [ebp - 8], eax
push edi
push 0
call sub.user32.dll_ReleaseDC
push 0
call sub.gdi32.dll_CreateCompatibleDC
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.gdi32.dll_SelectObject
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x45faca
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x4c]
push eax
mov eax, ebx
call fcn.00461820
push eax
call sub.user32.dll_BeginPaint
mov edi, eax
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp - 4]
mov edx, 0x14
mov eax, ebx
call fcn.0045c1b4
mov eax, dword [ebp - 4]
mov dword [esi + 4], eax
mov edx, esi
mov eax, ebx
call fcn.0045f978
xor eax, eax
mov dword [esi + 4], eax
push 0xcc0020
push 0
push 0
mov eax, dword [ebp - 4]
push eax
lea edx, [ebp - 0x5c]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebp - 0x64]
push eax
push 0
push 0
push edi
call sub.gdi32.dll_BitBlt
lea eax, [ebp - 0x4c]
push eax
mov eax, ebx
call fcn.00461820
push eax
call sub.user32.dll_EndPaint
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45fad1
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.gdi32.dll_SelectObject
mov eax, dword [ebp - 4]
push eax
call sub.gdi32.dll_DeleteDC
mov eax, dword [ebp - 8]
push eax
call sub.gdi32.dll_DeleteObject
ret
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4661dc
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov eax, dword [0x47b5ac]
cmp byte [eax + 0xc], 0
je 0x466349
push 0x8000
call sub.kernel32.dll_SetErrorMode
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x466342
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x47cc04], 0
jne 0x466230
push 0x466350
call sub.kernel32.dll_GetModuleHandleA_1
mov ebx, eax
push 0x466358
push ebx
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x47cc04], eax
cmp dword [0x47af6c], 0
jne 0x46632b
push 0x466368
call sub.kernel32.dll_LoadLibraryA
mov dword [0x47af6c], eax
cmp dword [0x47af6c], 0
je 0x46632b
push 0x466374
mov eax, dword [0x47af6c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x47cc08], eax
push 0x466384
mov eax, dword [0x47af6c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x47cc0c], eax
push 0x466398
mov eax, dword [0x47af6c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x47cc10], eax
push 0x4663b0
mov eax, dword [0x47af6c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x47cc14], eax
push 0x4663c8
mov eax, dword [0x47af6c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x47cc18], eax
push 0x4663dc
mov eax, dword [0x47af6c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x47cc1c], eax
push 0x4663f4
mov eax, dword [0x47af6c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x47cc20], eax
push 0x46640c
mov eax, dword [0x47af6c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x47cc24], eax
push 0x466428
mov eax, dword [0x47af6c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x47cc28], eax
push 0x466434
mov eax, dword [0x47af6c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x47cc2c], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x466349
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_SetErrorMode
ret
pop ebx
pop ecx
pop ebp
ret
Function at 0x4672ec
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff8
mov dword [esp], ecx
mov esi, edx
mov ebx, eax
mov eax, 0x10000
call fcn.00402788
mov dword [ebx + 0x2e8], eax
mov edi, esi
mov ebp, dword [esp]
test ebp, ebp
jle 0x467331
mov esi, 1
mov eax, dword [esp]
dec eax
call fcn.00402e20
inc eax
mov edx, dword [ebx + 0x2e8]
mov word [edx + esi*2 - 2], ax
inc esi
dec ebp
jne 0x467318
mov ebp, dword [esp]
test ebp, ebp
jle 0x467384
mov esi, 1
mov al, byte [ebx + 0x43]
xor al, byte [ebx + 0x42]
xor al, byte [ebx + 0x41]
xor al, byte [ebx + 0x40]
mov byte [esp + 4], al
mov eax, 0xff
call fcn.00402e20
mov dl, byte [edi + esi - 1]
xor dl, byte [esp + 4]
xor al, dl
mov byte [edi + esi - 1], al
xor eax, eax
mov al, byte [edi + esi - 1]
add eax, dword [ebx + 0x40]
add eax, dword [ebx + 0x3c]
imul dword [ebx + 0x2f8]
add eax, dword [ebx + 0x2fc]
mov dword [ebx + 0x40], eax
inc esi
dec ebp
jne 0x46733d
mov ebp, dword [esp]
test ebp, ebp
jle 0x4673d3
mov esi, 1
mov eax, dword [ebx + 0x2e8]
movzx eax, word [eax + esi*2 - 2]
mov al, byte [edi + eax - 1]
cmp al, byte [edi + esi - 1]
je 0x4673cf
xor byte [edi + esi - 1], al
mov eax, dword [ebx + 0x2e8]
movzx eax, word [eax + esi*2 - 2]
mov dl, byte [edi + esi - 1]
xor byte [edi + eax - 1], dl
mov eax, dword [ebx + 0x2e8]
movzx eax, word [eax + esi*2 - 2]
mov al, byte [edi + eax - 1]
xor byte [edi + esi - 1], al
inc esi
dec ebp
jne 0x467390
mov edx, 0x10000
mov eax, dword [ebx + 0x2e8]
call fcn.004027a8
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x4673ec
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
push ecx
mov ebp, edx
mov ebx, eax
mov eax, 0x10000
call fcn.00402788
mov dword [ebx + 0x2e8], eax
mov edi, ebp
test edi, edi
jle 0x467428
mov esi, 1
mov eax, ebp
dec eax
call fcn.00402e20
inc eax
mov edx, dword [ebx + 0x2e8]
mov word [edx + esi*2 - 2], ax
inc esi
dec edi
jne 0x467410
mov esi, ebp
cmp esi, 1
jl 0x46748b
mov eax, dword [ebx + 0x2e8]
movzx eax, word [eax + esi*2 - 2]
mov ecx, dword [ebx + 0x2e0]
mov al, byte [ecx + eax - 1]
mov edx, dword [ebx + 0x2e0]
cmp al, byte [edx + esi - 1]
je 0x467486
xor byte [edx + esi - 1], al
mov edx, dword [ebx + 0x2e8]
movzx edx, word [edx + esi*2 - 2]
mov eax, dword [ebx + 0x2e0]
mov cl, byte [eax + esi - 1]
xor byte [eax + edx - 1], cl
mov edx, dword [ebx + 0x2e8]
movzx edx, word [edx + esi*2 - 2]
mov eax, dword [ebx + 0x2e0]
mov dl, byte [eax + edx - 1]
xor byte [eax + esi - 1], dl
dec esi
test esi, esi
jne 0x46742f
mov edx, 0x10000
mov eax, dword [ebx + 0x2e8]
call fcn.004027a8
mov edi, ebp
test edi, edi
jle 0x467513
mov esi, 1
mov eax, dword [ebx + 0x2e0]
mov dl, byte [eax + esi - 1]
mov byte [eax + esi - 1], dl
mov eax, dword [ebx + 0x2e0]
mov al, byte [eax + esi - 1]
mov byte [esp], al
mov al, byte [ebx + 0x43]
xor al, byte [ebx + 0x42]
xor al, byte [ebx + 0x41]
xor al, byte [ebx + 0x40]
mov byte [esp + 1], al
mov eax, 0xff
call fcn.00402e20
mov edx, dword [ebx + 0x2e0]
mov dl, byte [edx + esi - 1]
xor dl, byte [esp + 1]
xor al, dl
mov edx, dword [ebx + 0x2e0]
mov byte [edx + esi - 1], al
xor eax, eax
mov al, byte [esp]
add eax, dword [ebx + 0x40]
add eax, dword [ebx + 0x3c]
imul dword [ebx + 0x2f8]
add eax, dword [ebx + 0x2fc]
mov dword [ebx + 0x40], eax
inc esi
dec edi
jne 0x4674a6
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x468d58
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffefc
push ebx
xor edx, edx
mov dword [ebp - 0x104], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x468dcb
push dword fs:[eax]
mov dword fs:[eax], esp
push 0xff
lea eax, [ebp - 0xff]
push eax
call sub.kernel32.dll_GetSystemDirectoryA
mov edx, ebx
lea eax, [ebp - 0xff]
call fcn.0040978c
lea edx, [ebp - 0x104]
mov eax, dword [ebx]
call fcn.004693c8
mov edx, dword [ebp - 0x104]
mov eax, ebx
call fcn.00404324
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x468dd2
lea eax, [ebp - 0x104]
call fcn.004042d0
ret
Function at 0x468dd8
Capabilities:
Query service status

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x28], ebx
mov esi, ecx
mov edi, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404780
xor eax, eax
push ebp
push 0x468eb1
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 8], 8
test edi, edi
jne 0x468e25
push 0xf003f
push 0
push 0
call sub.advapi32.dll_OpenSCManagerA
mov edi, eax
test edi, edi
setne bl
jmp 0x468e27
xor ebx, ebx
test edi, edi
jne 0x468e49
lea eax, [ebp - 0x28]
mov ecx, dword [ebp - 4]
mov edx, 0x468ecc
call fcn.004045dc
mov eax, dword [ebp - 0x28]
xor ecx, ecx
mov dl, 1
call fcn.00469574
jmp 0x468e93
test esi, esi
jne 0x468e63
push 0xf01ff
mov eax, dword [ebp - 4]
call fcn.00404790
push eax
push edi
call sub.advapi32.dll_OpenServiceA
mov esi, eax
test esi, esi
je 0x468e7b
lea eax, [ebp - 0x24]
push eax
push esi
call sub.advapi32.dll_QueryServiceStatus
test eax, eax
je 0x468e7b
mov eax, dword [ebp - 0x20]
mov dword [ebp - 8], eax
test bl, bl
je 0x468e93
test esi, esi
je 0x468e89
push esi
call sub.advapi32.dll_CloseServiceHandle
test edi, edi
je 0x468e93
push edi
call sub.advapi32.dll_CloseServiceHandle
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x468eb8
lea eax, [ebp - 0x28]
call fcn.004042d0
lea eax, [ebp - 4]
call fcn.004042d0
ret
Function at 0x471750
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffee8
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x10c], ecx
mov dword [ebp - 0x108], ecx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x471959
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
add eax, 0x34
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
push eax
call sub.version.dll_GetFileVersionInfoSizeA
mov ebx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], ebx
test ebx, ebx
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x31], al
xor edx, edx
push ebp
push 0x471929
push dword fs:[edx]
mov dword fs:[edx], esp
test al, al
je 0x47191f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
call fcn.004097a0
mov ebx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x3c], ebx
push ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
push eax
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
push eax
call sub.version.dll_GetFileVersionInfoA
cmp eax, 1
sbb eax, eax
inc eax
mov edx, dword [ebp - 4]
mov byte [edx + 0x31], al
mov eax, dword [ebp - 4]
add eax, 0x48
push eax
mov eax, dword [ebp - 4]
add eax, 0x44
push eax
push 0x471968
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
push eax
call sub.version.dll_VerQueryValueA
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x48]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
add eax, 0x68
call fcn.00407110
mov eax, dword [ebp - 4]
add eax, 0x48
push eax
mov eax, dword [ebp - 4]
add eax, 0x44
push eax
push 0x47196c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
push eax
call sub.version.dll_VerQueryValueA
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax]
mov edx, eax
and edx, 0xffff
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c], edx
and eax, 0xffff0000
shr eax, 0x10
and eax, 0xffff
mov edx, dword [ebp - 4]
mov dword [edx + 0x50], eax
lea ecx, [ebp - 0x108]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
mov edx, 4
call fcn.00408cdc
mov edx, dword [ebp - 0x108]
lea eax, [ebp - 0x104]
mov ecx, 0xff
call fcn.0040456c
lea edx, [ebp - 0x104]
mov eax, dword [ebp - 4]
add eax, 0x5d
mov cl, 4
call fcn.00402cf0
lea ecx, [ebp - 0x10c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov edx, 4
call fcn.00408cdc
mov edx, dword [ebp - 0x10c]
lea eax, [ebp - 0x104]
mov ecx, 0xff
call fcn.0040456c
lea edx, [ebp - 0x104]
mov eax, dword [ebp - 4]
add eax, 0x62
mov cl, 4
call fcn.00402cf0
mov eax, dword [ebp - 4]
lea edx, [eax + 0x5d]
lea eax, [ebp - 0x118]
call fcn.00402ce4
mov eax, dword [ebp - 4]
lea edx, [eax + 0x62]
lea eax, [ebp - 0x118]
mov cl, 8
call fcn.00402cb4
lea edx, [ebp - 0x118]
mov eax, dword [ebp - 4]
add eax, 0x54
mov cl, 8
call fcn.00402cf0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x47193b
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x471960
lea eax, [ebp - 0x10c]
mov edx, 2
call fcn.004042f4
ret
Function at 0x472a98
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov esi, dword [ebp + 8]
xor edi, edi
mov eax, dword [0x47afec]
call fcn.00404790
push eax
call sub.kernel32.dll_LoadLibraryA
mov dword [ebp - 0x18], eax
xor ecx, ecx
push ebp
push 0x472b9f
push dword fs:[ecx]
mov dword fs:[ecx], esp
cmp dword [ebp - 0x18], 0
jbe 0x472aec
mov eax, dword [0x47aff0]
call fcn.00404790
push eax
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edi, eax
xor ebx, ebx
test edi, edi
je 0x472aff
lea eax, [ebp - 0x10]
push eax
push 1
push 0xffffffffffffffff
push esi
call edi
mov ebx, eax
test ebx, ebx
jne 0x472b22
call fcn.00403d10
jmp 0x472ba6
mov edi, eax
add edi, esi
mov eax, dword [ebp - 4]
push eax
push edi
call sub.kernel32.dll_lstrcmpiA
test eax, eax
je 0x472b29
add ebx, 0x14
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x472b0d
cmp dword [ebx + 0xc], 0
jne 0x472b36
call fcn.00403d10
jmp 0x472ba6
mov eax, dword [ebx + 0x10]
add eax, esi
jmp 0x472b83
mov ebx, eax
mov edx, dword [ebx]
cmp edx, dword [ebp - 8]
sete dl
neg dl
sbb edx, edx
test edx, edx
je 0x472b80
lea eax, [ebp - 0x14]
push eax
push 0x40
push 4
push ebx
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_VirtualProtectEx
lea eax, [ebp - 0x14]
push eax
push 4
lea eax, [ebp - 0xc]
push eax
push ebx
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_WriteProcessMemory
call fcn.00403d10
jmp 0x472ba6
add eax, 4
cmp dword [eax], 0
jne 0x472b3d
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x472ba6
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_FreeLibrary_1
ret
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x432000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..text
nop
mov ebx, 0x40c7d0
nop
nop
mov ecx, 0x6cc87b8d
test eax, eax
nop
nop
nop
nop
je 0x43204e
nop
nop
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
inc eax
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
cmp eax, ebx
nop
nop
nop
nop
nop
jne 0x432024
nop
nop
nop
nop
mov eax, section..data
nop
mov ebx, 0x42f314
nop
mov ecx, 0x7e620456
nop
test eax, eax
nop
nop
nop
nop
je 0x432084
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
add eax, 4
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
jne 0x43206c
nop
nop
nop
nop
nop
popal
nop
nop
nop
jmp 0x431219
Function at 0x4035ac
Capabilities:
Generate random numbers using the delphi lcg

Disassembly:
push ebx
xor ebx, ebx
imul edx, dword [ebx + 0x583008], 0x8088405
inc edx
mov dword [ebx + 0x583008], edx
mul edx
mov eax, edx
pop ebx
ret

Function at 0x41cf00
Capabilities:
Decompress data using aplib

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push ebp
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
cld
mov dl, 0x80
mov al, byte [esi]
add esi, 1
mov byte [edi], al
add edi, 1
mov ebx, 2
add dl, dl
jne 0x41cf31
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x41cf19
add dl, dl
jne 0x41cf3c
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x41cf8d
xor eax, eax
add dl, dl
jne 0x41cf49
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x41d02a
add dl, dl
jne 0x41cf58
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x41cf63
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x41cf6e
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x41cf79
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
je 0x41cf83
mov ebx, edi
sub ebx, eax
mov al, byte [ebx]
mov byte [edi], al
inc edi
mov ebx, 2
jmp 0x41cf28
mov eax, 1
add dl, dl
jne 0x41cf9b
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x41cfa6
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x41cf92
sub eax, ebx
mov ebx, 1
jne 0x41cfd9
mov ecx, 1
add dl, dl
jne 0x41cfbf
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x41cfca
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x41cfb6
push esi
mov esi, edi
sub esi, ebp
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x41cf28
dec eax
shl eax, 8
mov al, byte [esi]
inc esi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x41cff0
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x41cffb
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x41cfe7
cmp eax, 0x7d00
sbb ecx, 0xffffffff
cmp eax, 0x500
sbb ecx, 0xffffffff
cmp eax, 0x80
adc ecx, 0
cmp eax, 0x80
adc ecx, 0
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x41cf28
mov al, byte [esi]
inc esi
xor ecx, ecx
shr al, 1
je 0x41d04b
adc ecx, 2
mov ebp, eax
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
mov ebx, 1
jmp 0x41cf28
pop ebp
sub edi, dword [ebp - 8]
mov dword [ebp - 0xc], edi
pop edi
pop esi
pop ebx
mov eax, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
Function at 0x41f04c
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov ebx, edx
xor edx, edx
push ebp
push 0x56753a
push dword fs:[edx]
mov dword fs:[edx], esp
xor edx, edx
mov dword [ebp - 8], edx
mov esi, ebx
xor ecx, ecx
cmp byte [eax + 0x6a], 0
je 0x41f09b
mov eax, ebx
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0x3c]
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov edx, dword [eax + 0x88]
test edx, edx
je 0x41f0ba
mov ecx, edx
add ecx, ebx
jmp 0x41f0ba
mov eax, ebx
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0x3c]
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov edx, dword [eax + 0x78]
test edx, edx
je 0x41f0ba
mov ecx, edx
add ecx, ebx
test ecx, ecx
je 0x41f12c
mov esi, dword [ecx + 0x18]
mov eax, dword [ecx + 0x1c]
add eax, ebx
mov dword [ebp - 0x10], eax
mov edi, dword [ecx + 0x20]
add edi, ebx
mov eax, dword [ecx + 0x24]
add eax, ebx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
cmp eax, 0xffff
jbe 0x41f115
test esi, esi
jbe 0x41f12c
mov eax, dword [edi]
add eax, ebx
mov edx, dword [ebp - 4]
call fcn.004088ec
test eax, eax
jne 0x41f107
mov eax, dword [ebp - 0xc]
movzx eax, word [eax]
shl eax, 2
add eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov dword [ebp - 8], eax
jmp 0x41f12c
add dword [ebp - 0xc], 2
add edi, 4
dec esi
test esi, esi
ja 0x41f0e4
jmp 0x41f12c
mov edx, eax
sub edx, dword [ecx + 0x10]
cmp edx, dword [ecx + 0x14]
jae 0x41f12c
mov eax, edx
shl eax, 2
add eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov dword [ebp - 8], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x567541
ret
Function at 0x420284
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x10], ebx
mov word [ebp - 4], cx
mov byte [ebp - 1], dl
xor eax, eax
push ebp
push 0x56889f
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
call fcn.00404cd0
xor ebx, ebx
mov eax, ebx
and eax, 0x80000001
jns 0x4202bf
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x4202d8
lea eax, [ebp - 0x10]
mov edx, dword [0x585348]
mov edx, dword [edx]
mov edx, dword [edx + 0xc]
call fcn.00404d30
jmp 0x4202eb
lea eax, [ebp - 0x10]
mov edx, dword [0x585348]
mov edx, dword [edx]
mov edx, dword [edx + 0x10]
call fcn.00404d30
lea eax, [ebp - 0x10]
mov edx, ebx
sar edx, 1
jns 0x4202f7
adc edx, 0
mov edx, dword [edx*4 + 0x584178]
call fcn.00404f20
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
mov eax, dword [ebp - 0x10]
call fcn.00404f04
push eax
call fcn.00406b1c
mov esi, eax
cmp esi, 0xffffffff
je 0x420471
mov eax, 0x40
call fcn.00403268
mov edi, eax
push 0
lea eax, [ebp - 8]
push eax
push 0x40
push edi
push esi
call fcn.00406d7c
test eax, eax
je 0x420464
mov eax, edi
cmp word [eax], 0x5a4d
jne 0x420464
push 0
push 0
mov eax, dword [eax + 0x3c]
push eax
push esi
call fcn.00406ddc
mov eax, edi
call fcn.00403288
mov eax, 0x18
call fcn.00403268
mov edi, eax
push 0
lea eax, [ebp - 8]
push eax
push 0x18
push edi
push esi
call fcn.00406d7c
test eax, eax
je 0x420464
mov eax, edi
cmp dword [eax], 0x4550
jne 0x420464
add eax, 4
mov dword [ebp - 0xc], eax
cmp byte [ebp - 1], 0
je 0x420402
mov eax, dword [ebp - 0xc]
cmp word [eax], 0x8664
jne 0x420402
mov eax, edi
call fcn.00403288
mov eax, 0xf0
call fcn.00403268
mov edi, eax
push 0
lea eax, [ebp - 8]
push eax
push 0xf0
push edi
push esi
call fcn.00406d7c
test eax, eax
je 0x420402
mov eax, edi
mov dx, word [eax + 0x44]
cmp dx, word [ebp - 4]
jne 0x420402
mov eax, dword [eax + 0x10]
mov edx, dword [ebp + 0xc]
mov dword [edx], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
call fcn.00404d0c
cmp byte [ebp - 1], 0
jne 0x420464
mov eax, dword [ebp - 0xc]
cmp word [eax], 0x14c
jb 0x420464
mov eax, dword [ebp - 0xc]
cmp word [eax], 0x150
ja 0x420464
mov eax, edi
call fcn.00403288
mov eax, 0xe0
call fcn.00403268
mov edi, eax
push 0
lea eax, [ebp - 8]
push eax
push 0xe0
push edi
push esi
call fcn.00406d7c
test eax, eax
je 0x420464
mov eax, edi
mov dx, word [eax + 0x44]
cmp dx, word [ebp - 4]
jne 0x420464
mov eax, dword [eax + 0x10]
mov edx, dword [ebp + 0xc]
mov dword [edx], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
call fcn.00404d0c
mov eax, edi
call fcn.00403288
push esi
call fcn.00406ad4
mov eax, dword [ebp + 8]
mov eax, dword [eax]
xor edx, edx
call fcn.0040502c
jne 0x420489
inc ebx
cmp ebx, 0x19
jne 0x4202b1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5688a6
lea eax, [ebp - 0x10]
call fcn.00404cd0
ret