joyce8/EMBER2024-capa huggingface dataset:
Function at 0x46eab7
Capabilities:
Reference http user-agent string

Disassembly:
push ebp
test bh, bh
movsx eax, si
mov ebp, esp
bsr eax, edi
clc
and esp, 0xfffffff8
sbb eax, ecx
lea esp, [esp - 0x814]
mov eax, dword [0x46405c]
test dx, 0xba87
xor eax, esp
test dl, ch
mov dword [esp + 0x810], eax
bt eax, 0x90
neg eax
xor ax, bx
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov dword [esp + 0x14], eax
test ebx, ebx
jmp fcn.004061b5

Function at 0x46fbc7
Capabilities:
Delete service
Terminate process

Disassembly:
call fcn.00475abe
xor ebx, ebx
cmp eax, ebx
jmp 0x40dfc7
push esi
btr si, si
rcr esi, 0x39
push edi
mov edi, eax
add cl, dl
sal ecx, 0x93
add edi, 8
push 0x68
bswap ecx
mov si, bp
pop esi
jmp 0x4772ba
je 0x47601d
call fcn.0040d38e
push 0
call dword [sym.imp.msvcrt.dll_exit]
jmp 0x47601d
push ebx
jmp 0x46db95
mov ecx, edi
jmp 0x478621
call fcn.0047d4ab
test eax, eax
jmp 0x470ddd

Function at 0x4709ee
Capabilities:
Terminate process

Disassembly:
push dword [esp + 0xc]
jmp loc.0040c5b9
push 0x10
push str.Antinat:_PARSE_ERROR
jmp 0x46de0c

Function at 0x470d6d
Capabilities:
Authenticate hmac

Disassembly:
inc eax
test di, sp
test dl, dl
jmp 0x47025e
jne 0x470dc9
sub eax, ecx
mov edi, eax
cmp dh, al
jmp loc.0040656a
push ebp
dec dl
movzx ebp, ax
mov ebp, esp
lea esp, [esp - 0x10c]
movzx ax, bl
shr dl, cl
mov eax, dword [0x46405c]
xor eax, ebp
inc dl
mov dword [ebp - 8], eax
dec dl
movsx eax, di
mov eax, dword [ebp + 8]
xchg dl, dl
inc dl
mov dword [ebp - 0xb4], eax
mov al, dl
movsx ax, ch
mov eax, dword [ebp + 0x10]
push esi
mov esi, 0xd3b4a195
bswap esi
mov esi, ecx
inc ecx
xchg dl, dl
mov dword [ebp - 0xb0], eax
mov eax, esi
sets dl
push edi
inc dl
mov ch, bl
lea ecx, [eax + 1]
mov dl, byte [eax]
jmp 0x46d277

Function at 0x470efa
Capabilities:
Reference http user-agent string

Disassembly:
push ebp
xchg bp, bp
mov ebp, esp
movzx eax, dx
sub esp, 0x818
mov eax, dword [0x46405c]
clc
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, ebx
mov eax, dword [ebp + 0xc]
test bp, 0xaf86
cmp dh, 0x16
push ebx
btc ebx, 0xa
xchg ebx, ebx
sal ebx, cl
mov ebx, dword [ebp + 8]
push esi
push edi
mov dword [ebp - 0x814], eax
clc
test di, bx
test ebx, ebx
jne 0x47255a
mov eax, 0x101
jmp 0x47569e
test eax, eax
jmp loc.0040edf9
jmp fcn.0047350b

Function at 0x470fae
Capabilities:
Get socket status

Disassembly:
push ebp
rol ax, cl
add ebp, 0xd33be31d
mov ebp, esp
test esi, eax
and esp, 0xfffffff8
mov ax, dx
cwde
mov eax, 0x8374
jmp loc.0040ce77

Function at 0x471128
Capabilities:
Connect socket
Resolve dns

Disassembly:
push ebp
sbb bp, bx
sub eax, 0x51af598
shr bp, 0x82
mov ebp, esp
bswap eax
lea esp, [esp - 0x438]
xor ah, ch
sbb al, 0x20
not al
mov eax, dword [0x46405c]
cmc
xor eax, ebp
clc
mov dword [ebp - 4], eax
cmp ax, 0x7729
test ecx, eax
test si, 0x2b12
cmp dword [esi + 0x64], 0
jmp 0x47b233
push ebx
push edi
jmp loc.00405816

Function at 0x47123d
Capabilities:
Get socket status

Disassembly:
push ebp
cmp cl, dl
ror ah, cl
mov ebp, esp
clc
bts ax, dx
cmp al, bl
sub esp, 0x1dc
bswap ax
cmc
mov eax, dword [0x46405c]
xor eax, ebp
jmp 0x475ea4
mov dword [ebp - 4], eax
mov eax, edi
jmp loc.0040c2a6
Function at 0x471fee
Capabilities:
Check for time delay via gettickcount

Disassembly:
push 0x7a4
not ax
movzx eax, di
mov eax, eax
mov eax, 0x451916
jmp loc.00407e06

Function at 0x472567
Capabilities:
Get socket status

Disassembly:
mov dword [ebp - 0x108], eax
jmp loc.00406d01
push ebp
rcl cl, cl
and bp, 0xf84
inc ecx
mov ebp, esp
bt cx, 0x96
cmc
lea esp, [esp - 0x10c]
add ecx, ebp
and dword [ebp - 4], 0
bswap cx
cmova cx, ax
xchg cx, cx
lea ecx, [ebp - 8]
jmp 0x478462
push ecx
inc ch
push 0
push 0
dec cx
bswap cx
movzx cx, ah
lea ecx, [ebp - 0x10c]
jmp 0x47105e

Function at 0x472b75
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
bswap eax
nop
setbe ah
mov ebp, esp
mov ax, 0xa4bb
jmp loc.0040c4d3

Function at 0x472b88
Capabilities:
Set socket configuration

Disassembly:
push ebp
add bp, dx
mov ebp, esp
cmp eax, ebp
push ecx
cmc
xor eax, eax
jmp loc.0040900d

Function at 0x472c14
Capabilities:
Connect socket

Disassembly:
push esi
bts si, sp
and esi, esi
mov esi, eax
clc
test edi, edi
jmp 0x479fc9
jne 0x47ca94
mov eax, 0x101
not esi
cmovns si, bx
pop esi
jmp loc.00401049
test esi, esi
jmp loc.0040d6ac

Function at 0x472d28
Capabilities:
Encrypt data using rc4 prga

Disassembly:
lea eax, [ecx + 2]
sar edx, cl
cdq
not dl
push esi
xor dx, 0x4c3b
sub si, bx
bsr dx, ax
movzx edx, byte [eax + 1]
movzx esi, byte [eax]
shl edx, 8
cmp al, 0x35
test cx, sp
or edx, esi
or esi, 0x580585bb
movzx esi, byte [eax - 1]
stc
shl edx, 8
cmp ax, di
or edx, esi
movzx esi, byte [eax - 2]
shl edx, 8
clc
cmc
or edx, esi
mov dword [ecx], edx
cmp dl, bl
stc
test si, 0x9c84
add ecx, 4
add eax, 4
dec dword [esp + 8]
jne 0x472d3d
pop esi
jmp loc.004069a0

Function at 0x472f9d
Capabilities:
Resolve dns
Set socket configuration

Disassembly:
movzx eax, word [edi + 0x18]
jmp loc.00409148

Function at 0x4730e4
Capabilities:
Encode data using xor

Disassembly:
je 0x4717fa
push ebx
test ebp, 0xa1b1689f
adc bh, 0x2d
neg ebx
push edi
mov edi, eax
ror bx, cl
shl edi, 5
rol bx, 0xd
rcr bx, 0x34
mov ebx, eax
test ebx, eax
shr ebx, 2
movzx ecx, cl
cmp ebp, edi
add edi, ebx
add edi, ecx
dec cl
add cl, 0xa4
xor eax, edi
dec cl
sets cl
inc edx
shr cl, 0x28
shr cl, cl
mov cl, byte [edx]
cmp ch, cl
test edi, ebx
test cl, cl
jne 0x4717b2
pop edi
inc ebx
add ebx, esp
shl bh, 0x82
pop ebx
sub edx, edx
cmp bx, sp
cmp ecx, 0xbd972b9b
div dword [esi + 0xc]
add eax, eax
not eax
test sp, 0xc9a3
mov eax, edx
cmp dx, 0x3f1f
jmp 0x475fa4
mov cl, byte [edx]
shl al, cl
sal ah, 0xa5
mov eax, dword [esi + 8]
test cl, cl
jmp 0x47179f
sub edx, edx
test bh, dh
cmc
div dword [esi]
mov eax, edx
ret

Function at 0x474a9b
Capabilities:
Resolve dns

Disassembly:
push ebp
lea ebp, [esp - 0x398]
sbb ax, sp
bsf eax, ecx
sub esp, 0x418
setp al
btc ax, 0x20
cmc
mov eax, dword [0x46405c]
jmp loc.00401171
Function at 0x474f9e
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
bts eax, edx
mov ebp, esp
cmovb eax, esp
rcl al, cl
push ecx
push ecx
ror cl, cl
mov eax, dword [0x46405c]
jmp 0x47a44c
xor eax, ebp
mov dword [ebp - 4], eax
and al, al
mov al, byte [esi + 0x23f]
shl cl, cl
mov cl, byte [esi + 0x23e]
cmc
cmp ax, ax
test edi, edi
push ebx
push edi
cmp al, cl
jmp loc.0040828d

Function at 0x478bdb
Capabilities:
Set socket configuration

Disassembly:
push ebp
sbb bp, 0xf6ab
inc bp
mov ebp, esp
sub ah, 0xa8
btr ax, si
sub esp, 0x1c
rcl ax, 0x2d
shl al, cl
btc eax, edx
mov eax, dword [0x46405c]
jmp loc.0040c5da

Function at 0x478cc0
Capabilities:
Encode data using base64

Disassembly:
push ebp
xchg ebp, ebp
mov ebp, esp
push ecx
test bp, 0xaf81
jmp loc.0040aa4c

Function at 0x4791ec
Capabilities:
Terminate process

Disassembly:
push 0x46f70c
jmp loc.004039b0
push 0x538
jmp 0x4702cf

Function at 0x47a436
Capabilities:
Read file on windows

Disassembly:
push 0x27c
mov ah, bl
not al
mov eax, 0x4517b7
jmp loc.0040e19d

Function at 0x47b06d
Capabilities:
Create service

Disassembly:
mov dword [ebp + 0x88], eax
btr ax, 0x85
push ebx
bswap ax
inc al
rcr eax, 0xa3
push 0x106
cwde
sub eax, 0xbae069f
cmc
lea eax, [ebp - 0x80]
stc
jmp 0x479051
push eax
clc
sub ebx, ebx
push ebx
jmp loc.0040c201
push ebp
dec bp
sar al, cl
sbb eax, eax
lea ebp, [esp - 0x8c]
adc eax, 0xeb239794
btr ax, ax
cmc
sub esp, 0x10c
mov eax, dword [0x46405c]
clc
xor eax, ebp
stc
jmp 0x470157
Function at 0x6018c0
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x1a4000]
push edi
jmp 0x6018da
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x6018e1
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x6018d0
mov eax, 1
add ebx, ebx
jne 0x6018f3
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x601904
jne 0x601923
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x601923
dec eax
add ebx, ebx
jne 0x601910
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
jmp 0x6018e8
add ebx, ebx
jne 0x60191f
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jmp 0x601975
xor ecx, ecx
sub eax, 3
jb 0x60193b
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x6019aa
sar eax, 1
mov ebp, eax
jmp 0x601946
add ebx, ebx
jne 0x601946
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x601914
inc ecx
add ebx, ebx
jne 0x601954
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x601914
add ebx, ebx
jne 0x601961
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x601956
jne 0x601972
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x601956
add ecx, 2
cmp ebp, 0xfffffb00
adc ecx, 2
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x601994
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x601986
jmp 0x6018d6
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x601994
add edi, ecx
jmp 0x6018d6
pop esi
mov edi, esi
mov ecx, 0x40f0
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x6019b2
cmp byte [edi], 0x11
jne 0x6019b2
mov eax, dword [edi]
mov bl, byte [edi + 4]
shr ax, 8
rol eax, 0x10
xchg ah, al
sub eax, edi
sub bl, 0xe8
add eax, esi
mov dword [edi], eax
add edi, 5
mov al, bl
loop 0x6019b7
lea edi, [esi + 0x1fa000]
mov eax, dword [edi]
or eax, eax
je 0x601a2f
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x31d3ec]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x31d568]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x6019e4
mov ecx, edi
jns 0x601a13
movzx eax, word [edi]
inc edi
push eax
inc edi
mov ecx, 0xaef24857
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x31d56c]
or eax, eax
je 0x601a29
mov dword [ebx], eax
add ebx, 4
jmp 0x601a01
call dword [esi + 0x31d57c]
add edi, 4
lea ebx, [esi - 4]
xor eax, eax
mov al, byte [edi]
inc edi
or eax, eax
je 0x601a60
cmp al, 0xef
ja 0x601a53
add ebx, eax
mov eax, dword [ebx]
xchg ah, al
rol eax, 0x10
xchg ah, al
add eax, esi
mov dword [ebx], eax
jmp 0x601a35
and al, 0xf
shl eax, 0x10
mov ax, word [edi]
add edi, 2
jmp 0x601a42
mov ebp, dword [esi + 0x31d570]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x23f]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0x601a94
sub esp, 0xffffff80
jmp 0x420577
Function at 0x44df55
Capabilities:
Encrypt data using rc4 prga

Disassembly:
jmp 0x4e6860
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 [0x513218], 1
jge 0x4e68cf
mov eax, dword [ebx + 8]
movzx ecx, word [eax]
test ecx, ecx
je 0x4e68a5
mov edx, dword [ebx + 8]
movzx eax, word [edx]
movzx ecx, word [ebx + 0xc]
cmp eax, ecx
je 0x4e68a5
mov edx, dword [ebx + 8]
add edx, 2
mov dword [ebx + 8], edx
jmp 0x4e6882
mov eax, dword [ebx + 8]
movzx ecx, word [eax]
movzx edx, word [ebx + 0xc]
cmp ecx, edx
jne 0x4e68bb
mov eax, dword [ebx + 8]
mov dword [ebp - 4], eax
jmp 0x4e68c2
mov dword [ebp - 4], 0
mov eax, dword [ebp - 4]
jmp 0x4e69bf
movzx ecx, word [ebx + 0xc]
movd xmm0, ecx
movaps xmmword [ebp - 0x30], xmm0
pshuflw xmm0, xmmword [ebp - 0x30], 0
movaps xmmword [ebp - 0x30], xmm0
pshufd xmm0, xmmword [ebp - 0x30], 0
movaps xmmword [ebp - 0x30], xmm0
mov edx, dword [ebx + 8]
and edx, 0xfff
cmp edx, 0xff0
ja 0x4e6990
mov eax, dword [ebx + 8]
movups xmm0, xmmword [eax]
movaps xmmword [ebp - 0x40], xmm0
movaps xmm0, xmmword [ebp - 0x20]
pxor xmm0, xmmword [ebp - 0x20]
movaps xmmword [ebp - 0x20], xmm0
movaps xmm0, xmmword [ebp - 0x20]
pcmpeqw xmm0, xmmword [ebp - 0x40]
movaps xmmword [ebp - 0x20], xmm0
movaps xmm0, xmmword [ebp - 0x40]
pcmpeqw xmm0, xmmword [ebp - 0x30]
movaps xmmword [ebp - 0x40], xmm0
movaps xmm0, xmmword [ebp - 0x20]
por xmm0, xmmword [ebp - 0x40]
movaps xmmword [ebp - 0x20], xmm0
movaps xmm0, xmmword [ebp - 0x20]
pmovmskb ecx, xmm0
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0
je 0x4e6985
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 0x4e6979
mov ecx, dword [ebx + 8]
mov dword [ebp - 0xc], ecx
jmp 0x4e6980
mov dword [ebp - 0xc], 0
mov eax, dword [ebp - 0xc]
jmp 0x4e69bf
mov edx, dword [ebx + 8]
add edx, 0x10
mov dword [ebx + 8], edx
jmp 0x4e69ba
mov eax, dword [ebx + 8]
movzx ecx, word [eax]
movzx edx, word [ebx + 0xc]
cmp ecx, edx
jne 0x4e69a3
mov eax, dword [ebx + 8]
jmp 0x4e69bf
mov eax, dword [ebx + 8]
movzx ecx, word [eax]
test ecx, ecx
jne 0x4e69b1
xor eax, eax
jmp 0x4e69bf
mov edx, dword [ebx + 8]
add edx, 2
mov dword [ebx + 8], edx
jmp 0x4e68ef
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret

Function at 0x44fe5e
Capabilities:
Query environment variable

Disassembly:
jmp 0x4bcf07
mov edi, edi
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
mov esi, eax
test esi, esi
jne 0x4bcf1b
xor edi, edi
jmp 0x4bcf5f
push ebx
push esi
call fcn.004bcdfe
sub eax, esi
sar eax, 1
push 0x40
push str.minkernelcrtsucrt_srcdesktopcrtenvget_environment_from_os.cpp
push 2
lea ebx, [eax + eax]
push ebx
call fcn.0044e9e1
mov edi, eax
add esp, 0x14
test edi, edi
je 0x4bcf4c
push ebx
push esi
push edi
call fcn.0044de01
add esp, 0xc
push 2
push 0
call fcn.0044d852
pop ecx
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
pop ebx
mov eax, edi
pop edi
pop esi
ret
Function at 0x4b7630
Capabilities:
Create thread

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x34
call fcn.0044d447
mov byte [ebp - 1], al
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x4b766e
cmp dword [ebp + 8], 0
je 0x4b765c
lea eax, [ebp + 8]
push eax
call fcn.0044fd2d
add esp, 4
movzx ecx, byte [ebp - 1]
test ecx, ecx
je 0x4b766e
mov eax, 4
jmp 0x4b779e
call fcn.0044e32e
movzx edx, al
test edx, edx
jne 0x4b769c
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x4b768d
mov dword [ebp - 0xc], 4
jmp 0x4b7694
mov dword [ebp - 0xc], 3
mov eax, dword [ebp - 0xc]
jmp 0x4b779e
movzx eax, byte [ebp - 1]
test eax, eax
je 0x4b7745
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], 0
push 0
push 0
lea ecx, [ebp - 0x34]
push ecx
push 0x4b7af0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
lea ecx, [ebp - 8]
call fcn.0044f297
lea ecx, [ebp - 8]
call fcn.0044d6ea
movzx edx, al
test edx, edx
jne 0x4b7707
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 8]
call fcn.0044e41e
mov eax, dword [ebp - 0x10]
jmp 0x4b779e
push 0
push 0xffffffffffffffff
lea ecx, [ebp - 8]
call fcn.0044f9d6
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
test eax, eax
je 0x4b7732
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 8]
call fcn.0044e41e
mov eax, dword [ebp - 0x14]
jmp 0x4b779e
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 8]
call fcn.0044e41e
mov eax, dword [ebp - 0x18]
jmp 0x4b779e
call fcn.0044d40b
movzx ecx, al
test ecx, ecx
jne 0x4b777e
mov edx, dword [ebp + 0x10]
or edx, 0x200000
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], 0
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp + 0xc]
push ecx
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x20]
push eax
call fcn.0044e36f
add esp, 0x10
jmp 0x4b779e
call fcn.0044fe9f
mov dword [ebp - 0x24], eax
lea ecx, [ebp + 0x10]
push ecx
lea edx, [ebp + 0xc]
push edx
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x24]
push ecx
call fcn.0044ffcb
add esp, 0x10
mov esp, ebp
pop ebp
ret
Function at 0x4b7800
Capabilities:
Create thread

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x34
call fcn.0044d447
mov byte [ebp - 1], al
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x4b783e
cmp dword [ebp + 8], 0
je 0x4b782c
lea eax, [ebp + 8]
push eax
call fcn.0044ee9b
add esp, 4
movzx ecx, byte [ebp - 1]
test ecx, ecx
je 0x4b783e
mov eax, 4
jmp 0x4b796e
call fcn.0044e32e
movzx edx, al
test edx, edx
jne 0x4b786c
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x4b785d
mov dword [ebp - 0xc], 4
jmp 0x4b7864
mov dword [ebp - 0xc], 3
mov eax, dword [ebp - 0xc]
jmp 0x4b796e
movzx eax, byte [ebp - 1]
test eax, eax
je 0x4b7915
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], 0
push 0
push 0
lea ecx, [ebp - 0x34]
push ecx
push 0x4b7b50
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
lea ecx, [ebp - 8]
call fcn.0044f297
lea ecx, [ebp - 8]
call fcn.0044d6ea
movzx edx, al
test edx, edx
jne 0x4b78d7
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 8]
call fcn.0044e41e
mov eax, dword [ebp - 0x10]
jmp 0x4b796e
push 0
push 0xffffffffffffffff
lea ecx, [ebp - 8]
call fcn.0044f9d6
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
test eax, eax
je 0x4b7902
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 8]
call fcn.0044e41e
mov eax, dword [ebp - 0x14]
jmp 0x4b796e
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 8]
call fcn.0044e41e
mov eax, dword [ebp - 0x18]
jmp 0x4b796e
call fcn.0044d40b
movzx ecx, al
test ecx, ecx
jne 0x4b794e
mov edx, dword [ebp + 0x10]
or edx, 0x200000
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], 0
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp + 0xc]
push ecx
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x20]
push eax
call fcn.0044e540
add esp, 0x10
jmp 0x4b796e
call fcn.0044fe9f
mov dword [ebp - 0x24], eax
lea ecx, [ebp + 0x10]
push ecx
lea edx, [ebp + 0xc]
push edx
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x24]
push ecx
call fcn.0044e81f
add esp, 0x10
mov esp, ebp
pop ebp
ret
Function at 0x401617
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
mov esi, ecx
cmp byte [esi + 0x12828], 0
push edi
jne 0x401641
push dword [esi + 4]
lea eax, [esi + 0xc]
push 1
push 4
push eax
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x10
jmp 0x40166b
mov eax, dword [esi + 0x12840]
add eax, dword [esi + 0x12848]
push 4
push eax
lea edi, [esi + 0xc]
push edi
call sub.MSVCRT.dll_memcpy
mov eax, dword [edi]
add esp, 0xc
add dword [esi + 0x12848], 4
mov dword [esi + 0x1283c], eax
xor ebx, ebx
cmp dword [esi + 0xc], ebx
je 0x40178d
mov ecx, esi
call fcn.004013b9
mov ecx, esi
call fcn.00401235
lea edi, [esi + 0x18]
mov ecx, 0x3f1
mov eax, 0x20202020
rep stosd dword es:[edi], eax
cmp dword [esi + 0xc], ebx
mov edi, 0xfc4
mov dword [ebp - 0x10], edi
mov dword [ebp - 8], ebx
jbe 0x40178d
mov ebx, 0xfff
jmp 0x4016b1
mov edi, dword [ebp - 0x10]
mov ecx, esi
call fcn.004013dc
cmp eax, 0x100
mov dword [ebp - 0xc], eax
jge 0x4016fd
cmp byte [esi + 0x12828], 0
jne 0x4016d9
push dword [esi + 8]
push eax
call dword [sym.imp.MSVCRT.dll_putc]
pop ecx
pop ecx
jmp 0x4016eb
mov byte [ebp - 1], al
lea eax, [ebp - 1]
push eax
lea ecx, [esi + 0x1282c]
call fcn.00402f00
mov al, byte [ebp - 0xc]
mov byte [esi + edi + 0x18], al
inc edi
and edi, ebx
inc dword [ebp - 8]
mov dword [ebp - 0x10], edi
jmp 0x401772
mov ecx, esi
call fcn.00401501
and dword [ebp - 0x14], 0
sub edi, eax
mov eax, dword [ebp - 0xc]
dec edi
add eax, 0xffffff03
and edi, ebx
test eax, eax
mov dword [ebp - 0x18], eax
jle 0x401772
add dword [ebp - 8], eax
mov eax, dword [ebp - 0x14]
add eax, edi
and eax, ebx
cmp byte [esi + 0x12828], 0
movzx eax, byte [eax + esi + 0x18]
mov dword [ebp - 0xc], eax
jne 0x401745
push dword [esi + 8]
push eax
call dword [sym.imp.MSVCRT.dll_putc]
pop ecx
pop ecx
jmp 0x401757
mov byte [ebp - 1], al
lea eax, [ebp - 1]
push eax
lea ecx, [esi + 0x1282c]
call fcn.00402f00
mov eax, dword [ebp - 0x10]
mov cl, byte [ebp - 0xc]
mov byte [esi + eax + 0x18], cl
inc eax
and eax, ebx
inc dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x18]
jl 0x40171f
mov eax, dword [esi + 0x14]
mov ecx, dword [ebp - 8]
cmp ecx, eax
jbe 0x401784
add eax, 0x400
mov dword [esi + 0x14], eax
cmp ecx, dword [esi + 0xc]
jb 0x4016ae
pop edi
pop esi
pop ebx
leave
ret
Function at 0x40194f
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
and dword [ebp - 8], 0
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_FindResourceA]
push edi
mov dword [ebp - 4], 1
movzx eax, word [ebp - 4]
push 3
push eax
push ebx
call esi
mov edi, eax
test edi, edi
je 0x4019a0
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
cmp eax, 0x8a8
je 0x4019c1
cmp eax, 0x2e8
jne 0x401997
mov eax, dword [ebp - 4]
mov dword [ebp - 8], eax
inc dword [ebp - 4]
cmp dword [ebp - 4], 8
jl 0x40196b
cmp dword [ebp - 8], 0
jne 0x4019aa
xor eax, eax
jmp 0x4019d4
push eax
add eax, 0x9f
pop eax
movzx eax, word [ebp - 8]
push 3
push eax
push ebx
call esi
mov edi, eax
test edi, edi
je 0x4019a6
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x4019a6
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
pop edi
pop esi
pop ebx
leave
ret 8

Function at 0x4019db
Capabilities:
Read file on windows
Set file attributes
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov esi, ecx
push eax
sub eax, 0xa9
pop eax
push 2
push 0
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
test eax, eax
je 0x401b0a
test esi, esi
mov ecx, dword [ebp + 8]
mov dword [0x405198], ecx
mov dword [0x40519c], eax
jne 0x401a16
xor ecx, ecx
jmp 0x401a19
mov ecx, dword [esi + 0x20]
push ecx
push 0x401919
push 0xe
push eax
call dword [sym.imp.KERNEL32.dll_EnumResourceNamesA]
test eax, eax
je 0x401b0a
push dword [0x42da6c]
mov ecx, esi
push dword [0x40519c]
call fcn.0040194f
mov esi, eax
test esi, esi
je 0x401b0a
and dword [0x42da64], 0xfffffffe
push dword [0x42da64]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov eax, dword [0x42da68]
test eax, eax
je 0x401a81
push 0x8a8
lea eax, [eax + 0x40d1b0]
push esi
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push eax
sub eax, 0x11b
pop eax
push 0x4050a4
push dword [ebp + 8]
call dword [sym.imp.MSVCRT.dll_fopen]
mov edi, eax
test edi, edi
pop ecx
pop ecx
mov dword [ebp - 4], edi
je 0x401b0a
mov esi, dword [sym.imp.MSVCRT.dll_fseek]
push 0
push 2
push edi
call esi
push edi
push 0x8000
push 1
mov ebx, 0x4051ac
push ebx
call dword [sym.imp.MSVCRT.dll_fread]
push 0
push 0
push edi
call esi
push edi
push dword [0x4051a4]
mov edi, dword [sym.imp.MSVCRT.dll_fwrite]
push 1
push 0x40d1b0
call edi
cmp eax, 0x170
nop
push 2
push 0
push dword [ebp - 4]
call esi
add esp, 0x44
push dword [ebp - 4]
push 0x8000
push 1
push ebx
call edi
push dword [ebp - 4]
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 0x14
lea ecx, [ebp + 8]
call sub.MFC42.DLL_CString::CString
pop edi
pop esi
xor al, al
pop ebx
leave
ret 4