joyce8/EMBER2024-capa huggingface dataset:
Function at 0x401045
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
push ebx
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push dword [ebp + 8]
mov esi, eax
lea eax, [ebp - 0x108]
mov dword [ebp - 4], esi
push eax
call fcn.00403930
lea eax, [ebp + esi - 0x109]
pop ecx
xor ebx, ebx
pop ecx
cmp byte [eax], 0x5c
jne 0x401082
dec dword [ebp - 4]
mov byte [eax], bl
lea eax, [ebp - 0x108]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x40109b
mov al, 1
jmp 0x40116e
cmp byte [ebp - 0x108], 0x5c
jne 0x4010c6
cmp byte [ebp - 0x107], 0x5c
jne 0x4010c6
lea eax, [ebp - 0x106]
push 0x5c
push eax
call fcn.00403870
pop ecx
cmp eax, ebx
pop ecx
je 0x4010da
push 0x5c
inc eax
jmp 0x4010ce
push 0x5c
lea eax, [ebp - 0x108]
push eax
call fcn.00403870
pop ecx
cmp eax, ebx
pop ecx
jne 0x4010e1
xor al, al
jmp 0x40116e
lea ecx, [ebp - 0x108]
push edi
sub eax, ecx
mov byte [ebp + 0xb], bl
inc eax
mov edi, eax
lea eax, [ebp + edi - 0x108]
push 0x5c
push eax
call fcn.00403870
pop ecx
cmp eax, ebx
pop ecx
jne 0x40111c
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.00403930
pop ecx
pop ecx
jmp 0x40114c
mov esi, eax
lea eax, [ebp - 0x108]
sub esi, eax
lea eax, [ebp - 0x108]
push esi
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.00403760
lea edi, [esi + 1]
add esp, 0xc
cmp edi, dword [ebp - 4]
mov byte [ebp + esi - 0x20c], bl
jl 0x401150
mov byte [ebp + 0xb], 1
lea eax, [ebp - 0x20c]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
cmp byte [ebp + 0xb], bl
je 0x4010f0
xor ecx, ecx
cmp eax, 1
sete cl
mov al, cl
pop edi
pop esi
pop ebx
leave
ret

Function at 0x4019b9
Capabilities:
Create thread
Resume thread

Disassembly:
push ebp
mov ebp, esp
lea eax, [ebp + 8]
push eax
push 4
push dword [ebp + 8]
push 0x401a55
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
mov dword [0x40d188], eax
je 0x401a12
push 0
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
test eax, eax
je 0x4019fb
push dword [0x40d188]
call dword [sym.imp.KERNEL32.dll_ResumeThread]
cmp eax, 0xffffffff
jne 0x401a16
mov eax, dword [0x40d188]
test eax, eax
je 0x401a12
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [0x40d188], 0
xor al, al
pop ebp
ret
mov al, 1
pop ebp
ret

Function at 0x402f90
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
push ebx
push esi
push edi
lea edi, [ebp - 0x40]
mov ecx, 0x10
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
jmp 0x402fb3
mov eax, dword [ebp + 0xc]
sub eax, 1
mov dword [ebp + 0xc], eax
cmp dword [ebp + 0xc], 0
jbe 0x402fe7
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
mov eax, dword [ebp + 0x10]
xor eax, edx
and eax, 0xff
mov ecx, dword [ebp + 0x10]
shr ecx, 8
mov edx, dword [eax*4 + 0x40c244]
xor edx, ecx
mov dword [ebp + 0x10], edx
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x402faa
mov eax, dword [ebp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x40737b
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
mov edx, dword [ebp + 8]
xor ecx, ecx
mov eax, 0x40c7b8
cmp edx, dword [eax]
je 0x40739d
add eax, 8
inc ecx
cmp eax, 0x40c848
jl 0x40738e
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword [esi + 0x40c7b8]
jne 0x4074cb
mov eax, dword [0x40d208]
cmp eax, 1
je 0x4074a5
test eax, eax
jne 0x4073ce
cmp dword [0x40c704], 1
je 0x4074a5
cmp edx, 0xfc
je 0x4074cb
lea eax, [ebp - 0x1a4]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x407405
lea eax, [ebp - 0x1a4]
push str._program_name_unknown_
push eax
call fcn.00403930
pop ecx
pop ecx
lea eax, [ebp - 0x1a4]
push edi
push eax
lea edi, [ebp - 0x1a4]
call fcn.00403a20
inc eax
pop ecx
cmp eax, 0x3c
jbe 0x407448
lea eax, [ebp - 0x1a4]
push eax
call fcn.00403a20
mov edi, eax
lea eax, [ebp - 0x1a4]
sub eax, 0x3b
push 3
add edi, eax
push 0x40a62c
push edi
call fcn.00403760
add esp, 0x10
lea eax, [ebp - 0xa0]
push str.Runtime_Error__n_nProgram:
push eax
call fcn.00403930
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.00403940
lea eax, [ebp - 0xa0]
push 0x40a60c
push eax
call fcn.00403940
push dword [esi + 0x40c7bc]
lea eax, [ebp - 0xa0]
push eax
call fcn.00403940
push 0x12010
lea eax, [ebp - 0xa0]
push str.Microsoft_Visual_C_Runtime_Library
push eax
call fcn.00408376
add esp, 0x2c
pop edi
jmp 0x4074cb
lea eax, [ebp + 8]
lea esi, [esi + 0x40c7bc]
push 0
push eax
push dword [esi]
call fcn.00403a20
pop ecx
push eax
push dword [esi]
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
pop esi
leave
ret
Function at 0x40176f
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [section..data]
jne 0x401779
repz ret
jmp fcn.00401a16

Function at 0x40893e
Capabilities:
Encode data using xor

Disassembly:
mov ebx, 0x4085d8
call fcn.00408965
add ecx, 0x95976105
xor dword [edx], ebx
sub esi, 0x24efc78d
add edx, 1
cmp edx, eax
jne fcn.0040893e
and esi, ecx
and esi, esi
ret
Function at 0x433000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..text
nop
nop
mov ebx, 0x40de38
nop
mov ecx, 0x27d33f46
test eax, eax
nop
nop
nop
nop
nop
nop
nop
je 0x43304e
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
nop
jne 0x433024
nop
nop
mov eax, section..data
nop
mov ebx, 0x4304d8
nop
mov ecx, 0x4e38380b
nop
nop
test eax, eax
nop
nop
nop
nop
je 0x433084
nop
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
add eax, 4
nop
nop
nop
nop
cmp eax, ebx
jne 0x43306c
nop
nop
nop
nop
nop
nop
nop
nop
popal
nop
jmp 0x431219

Function at 0x402e50
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ebx
push ecx
push edx
mov eax, dword [ebp + 8]
cmp eax, 2
jne 0x402e89
mov edi, 0
mov dword [0x406040], edi
mov byte [0x405475], 1
mov byte [0x40639d], 0
mov byte [0x40639e], 0
mov byte [0x40639f], 0
jmp 0x402eac
cmp eax, 1
jne 0x402eac
mov edi, 0
mov dword [0x406044], edi
mov byte [0x4054a7], 1
mov eax, 0
mov dword [0x406395], eax
cmp dword [section.BSS], 0
jbe 0x402eb7
jmp 0x402edf
push section.BSS
push 0
push 0
push 0x402ef0
push 0
push 0
call sub.kernel32.dll_CreateThread
mov dword [0x406010], eax
push 0xfffffffffffffff6
call sub.kernel32.dll_GetStdHandle
mov dword [0x40601c], eax
pop edx
pop ecx
pop ebx
leave
ret 4

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

Disassembly:
pushal
nop
nop
mov eax, section..reloc
nop
nop
mov ebx, 0x40c7d0
mov ecx, 0x484e3838
nop
nop
nop
nop
nop
test eax, eax
nop
je 0x43204e
nop
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
inc eax
nop
inc eax
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
cmp eax, ebx
nop
nop
nop
jne 0x432024
nop
nop
nop
mov eax, section..data
nop
mov ebx, 0x42f314
mov ecx, 0x49a0019f
nop
test eax, eax
nop
nop
nop
nop
je 0x432084
nop
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
add eax, 4
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
nop
jne 0x43206c
nop
nop
popal
nop
nop
nop
nop
jmp 0x431219
Function at 0xcd9058
Capabilities:
Decompress data using aplib

Disassembly:
call fcn.00cd91a8
push ebx
mov ebx, esp
push ebx
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 0x10]
cld
mov dl, 0x80
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
mov ebx, 2
add dl, dl
jne 0xcd907e
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0xcd906a
add dl, dl
jne 0xcd9089
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0xcd90dc
xor eax, eax
add dl, dl
jne 0xcd9096
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0xcd917d
add dl, dl
jne 0xcd90a5
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0xcd90b0
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0xcd90bb
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0xcd90c6
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
je 0xcd90d2
push edi
mov eax, eax
sub edi, eax
mov al, byte [edi]
pop edi
mov byte [edi], al
inc edi
mov ebx, 2
jmp 0xcd9075
mov eax, 1
add dl, dl
jne 0xcd90ea
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0xcd90f5
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0xcd90e1
sub eax, ebx
mov ebx, 1
jne 0xcd9128
mov ecx, 1
add dl, dl
jne 0xcd910e
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0xcd9119
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0xcd9105
push esi
mov esi, edi
sub esi, ebp
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0xcd9075
dec eax
shl eax, 8
mov al, byte [esi]
inc esi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0xcd913f
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0xcd914a
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0xcd9136
cmp eax, 0x7d00
jae 0xcd916d
cmp eax, 0x500
jb 0xcd9168
inc ecx
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0xcd9075
cmp eax, 0x7f
ja 0xcd9170
add ecx, 2
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0xcd9075
mov al, byte [esi]
inc esi
xor ecx, ecx
shr al, 1
je 0xcd919e
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 0xcd9075
pop ebx
sub edi, dword [ebx + 0x10]
mov eax, edi
pop ebx
ret 0x10
Function at 0x40211c
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
push ebp
mov ebp, esp
push edi
xor edi, edi
push esi
mov esi, eax
push ebx
push ecx
mov eax, dword [eax + 0xc]
movsx ecx, byte [eax]
cmp cl, 0x6e
jne 0x402141
lea edx, [eax + 1]
mov edi, 1
mov dword [esi + 0xc], edx
movsx ecx, byte [eax + 1]
xor ebx, ebx
lea eax, [ecx - 0x30]
cmp al, 9
jbe 0x402152
test edi, edi
je 0x402188
neg ebx
jmp 0x402188
lea eax, [ecx - 0x30]
mov ecx, 0xa
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
mov eax, 0x7fffffff
sub eax, edx
cdq
idiv ecx
cmp eax, ebx
jl 0x402185
imul ebx, ebx, 0xa
mov eax, dword [ebp - 0x10]
add ebx, eax
mov eax, dword [esi + 0xc]
lea edx, [eax + 1]
mov dword [esi + 0xc], edx
movsx ecx, byte [eax + 1]
jmp 0x402143
or ebx, 0xffffffff
pop edx
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
Function at 0x40411b
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, ecx
push ebx
mov ebx, eax
mov eax, dword [ecx]
cmp eax, 3
je 0x404220
sub eax, 0x19
cmp eax, 0x3a
ja case.0x40413b.40
jmp dword [eax*4 + 0x4823f8]
mov edx, str._restrict
jmp 0x40414e
mov edx, str._volatile
mov eax, ebx
pop ebx
pop esi
pop ebp
jmp fcn.00402527
mov edx, str._const
jmp 0x40414e
mov edx, str._transaction_safe
jmp 0x40414e
mov edx, str._noexcept
jmp 0x404172
mov edx, str._throw
mov eax, ebx
call fcn.00402527
cmp dword [esi + 0x10], 0
je case.0x40413b.33
mov edx, 0x28
mov eax, ebx
call fcn.004024a6
mov ecx, dword [esi + 0x10]
jmp 0x404234
mov edx, 0x20
mov eax, ebx
call fcn.004024a6
mov ecx, dword [esi + 0x10]
jmp 0x404251
mov edx, 0x2a
jmp 0x404245
mov edx, 0x20
mov eax, ebx
call fcn.004024a6
mov edx, 0x26
jmp 0x404245
mov edx, 0x20
mov eax, ebx
call fcn.004024a6
mov edx, 0x4823ce
jmp 0x40414e
mov edx, str.__Complex
jmp 0x40414e
mov edx, str.__Imaginary
jmp 0x40414e
cmp byte [ebx + 0x104], 0x28
je 0x404207
mov edx, 0x20
mov eax, ebx
call fcn.004024a6
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, ebx
call fcn.004028d9
mov edx, 0x4823e7
jmp 0x40414e
mov ecx, dword [ecx + 0xc]
jmp 0x404251
mov edx, str.___vector_
mov eax, ebx
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, ebx
call fcn.004028d9
mov edx, 0x29
mov eax, ebx
pop ebx
pop esi
pop ebp
jmp fcn.004024a6
mov ecx, esi
mov eax, ebx
mov edx, 0x11
pop ebx
pop esi
pop ebp
jmp fcn.004028d9
pop ebx
pop esi
pop ebp
ret

Function at 0x404589
Capabilities:
Parse credit card information

Disassembly:
cmp dword [ecx], 0x33
jne 0x40459c
mov edx, dword [ecx + 0xc]
mov ecx, dword [edx + 8]
mov edx, dword [edx + 4]
jmp fcn.004024e4
mov edx, 0x11
jmp fcn.004028d9

Function at 0x4077ec
Capabilities:
Parse pe header

Disassembly:
push ebp
xor edx, edx
mov ebp, esp
mov eax, dword [ebp + 8]
cmp word [eax], 0x5a4d
jne 0x407811
add eax, dword [eax + 0x3c]
cmp dword [eax], 0x4550
jne 0x407811
xor edx, edx
cmp word [eax + 0x18], 0x10b
sete dl
mov eax, edx
pop ebp
ret

Function at 0x407815
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push esi
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
push ebx
xor ebx, ebx
add edx, dword [edx + 0x3c]
movzx eax, word [edx + 0x14]
movzx esi, word [edx + 6]
lea eax, [edx + eax + 0x18]
cmp ebx, esi
jae 0x407849
mov edx, dword [eax + 0xc]
cmp ecx, edx
jb 0x407843
add edx, dword [eax + 8]
cmp ecx, edx
jb 0x40784b
inc ebx
add eax, 0x28
jmp 0x407831
xor eax, eax
pop ebx
pop esi
pop ebp
ret
Function at 0x41037a
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push edi
push ebx
mov ebx, eax
sub esp, 0x50
mov dword [esp], eax
call fcn.0040ff84
dec eax
jne 0x4103cf
xor eax, eax
lea edi, [ebp - 0x3d]
lea ebx, [ebp - 0x3d]
mov ecx, 0x35
rep stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [esp + 8], str.Error_cleaning_up_spin_keys_for_thread__lu._n
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x35
mov dword [esp], ebx
call fcn.00410350
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push eax
call sub.msvcrt.dll_abort
mov dword [ebx], 0xffffffff
lea esp, [ebp - 8]
pop ebx
pop edi
pop ebp
ret

Function at 0x410465
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x3c
call fcn.004103dc
mov eax, dword [0x47f214]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
push ecx
test eax, eax
jne 0x41056e
call fcn.004102b2
mov ebx, eax
test eax, eax
je 0x41056e
mov dword [eax + 0x24], 1
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebx + 0x3c], eax
xor eax, eax
mov dword [esp + 0xc], edi
mov dword [esp + 8], edi
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CreateEventA]
sub esp, 0x10
mov dword [ebx + 0x18], eax
lea eax, [ebx + 0x38]
mov dword [ebx + 0x1c], 0xffffffff
call fcn.0041037a
mov edx, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
xor eax, eax
mov dword [ebx + 0x64], eax
mov dword [ebp - 0x1c], edx
mov dword [ebx + 0x14], eax
call edx
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov edx, dword [ebp - 0x1c]
mov esi, eax
call edx
xor edx, edx
mov dword [esp + 0x18], 2
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edx
lea edx, [ebx + 0x14]
mov dword [esp + 0xc], edx
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
sub esp, 0x1c
test eax, eax
jne 0x410535
call sub.msvcrt.dll_abort
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetThreadPriority]
xor ecx, ecx
push edx
mov dword [ebx + 0x6c], eax
mov al, byte [ebx + 0x20]
mov dword [ebx + 0x68], ecx
and eax, 0xffffffcf
or eax, 0x10
mov byte [ebx + 0x20], al
mov dword [esp + 4], ebx
mov eax, dword [0x47f214]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push esi
push esi
test eax, eax
je 0x410530
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
Function at 0x4110f9
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
sub esp, 0x10
mov esi, dword [ebp + 8]
call fcn.00410465
mov dword [eax + 4], esi
mov ebx, eax
mov eax, dword [eax + 0xb4]
mov dword [esp], eax
call fcn.00410bc6
test byte [ebx + 0x20], 0x30
jne 0x411136
add ebx, 0x70
mov dword [esp + 4], 1
mov dword [esp], ebx
call dword [sym.imp.msvcrt.dll_longjmp]
mov eax, dword [0x47f214]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
push edx
test eax, eax
je 0x4111ca
cmp dword [ebx + 0x14], 0
mov eax, dword [eax + 0x18]
jne 0x411172
mov dword [ebx], 0xdeadbeef
test eax, eax
je 0x411168
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
xor eax, eax
mov esi, dword [ebx + 4]
mov dword [ebx + 0x18], eax
jmp 0x4111ad
mov dword [ebx + 0x68], 1
mov esi, dword [ebx + 4]
test eax, eax
je 0x41118a
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
xor eax, eax
mov dword [ebx + 0x18], eax
test byte [ebx + 0x24], 4
je 0x4111ca
mov eax, dword [ebx + 0x14]
mov dword [ebx], 0xdeadbeef
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
push ecx
mov dword [ebx + 0x14], eax
mov eax, ebx
call fcn.00410578
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [0x47f214]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push edx
push edx
mov dword [esp], esi
call dword [sym.imp.msvcrt.dll__endthreadex]

Function at 0x416e48
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov dword [ebp - 0x1c], ecx
cmp dword [ebp + 0x10], 0
jne 0x416e61
mov eax, 0
jmp 0x416f45
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call eax
sub esp, 4
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x416e8e
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
mov eax, 0
jmp 0x416f45
mov eax, dword [ebp + 8]
movzx eax, ax
mov edx, eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FindResourceA]
call eax
sub esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x416eca
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
mov eax, 0
jmp 0x416f45
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x10]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0xc]
mov dword [esp], edx
mov ecx, eax
call fcn.00416f4c
sub esp, 8
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
mov eax, dword [ebp - 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_LoadResource]
call eax
sub esp, 8
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x416f19
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
mov eax, 0
jmp 0x416f45
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_LockResource]
call eax
sub esp, 4
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x416f42
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
mov eax, 0
jmp 0x416f45
mov eax, dword [ebp - 0x18]
leave
ret 0xc
Function at 0x41734c
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x54]
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00401344
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 4]
mov edx, eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 4]
movzx eax, word [eax + 0x14]
movzx eax, ax
add eax, edx
add eax, 0x18
mov dword [ebp - 4], eax
mov dword [ebp - 8], 0
jmp 0x41740a
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
add eax, edx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
add eax, edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
add edx, eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x50]
cmp eax, edx
jae 0x4173e6
mov eax, 0
jmp 0x417421
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00401344
add dword [ebp - 8], 1
add dword [ebp - 4], 0x28
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 4]
movzx eax, word [eax + 6]
movzx eax, ax
cmp dword [ebp - 8], eax
jl 0x41739f
mov eax, 1
leave
ret

Function at 0x417494
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov dword [ebp - 0x1c], ecx
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call eax
sub esp, 4
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x4174be
mov eax, 0
jmp 0x417525
mov eax, dword [ebp + 8]
movzx eax, ax
mov edx, eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FindResourceA]
call eax
sub esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x4174f1
mov eax, 0
jmp 0x417525
mov eax, dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
call eax
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_ShowWindow]
call eax
sub esp, 8
mov eax, dword [ebp - 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_SizeofResource]
call eax
sub esp, 8
nop
leave
ret 8
Function at 0x4176ac
Capabilities:
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov dword [ebp - 0x1c], ecx
mov dword [esp], str.imageSize_n
call fcn.004155f8
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x50]
mov dword [ebp - 0xc], eax
mov dword [esp], str.alignment_n
call fcn.004155f8
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x10], eax
mov dword [esp], str.filemapping_n
call fcn.004155f8
mov dword [esp + 0x14], 0
mov eax, dword [ebp - 0xc]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x40
mov dword [esp + 4], 0
mov dword [esp], 0xffffffff
mov eax, dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
call eax
sub esp, 0x18
mov dword [ebp - 0x14], eax
mov dword [esp], str._filemapping_n
call fcn.004155f8
mov dword [esp], str.imageBase_n
call fcn.004155f8
mov eax, dword [ebp - 0xc]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x22
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_MapViewOfFile]
call eax
sub esp, 0x14
mov edx, dword [ebp - 0x1c]
mov dword [edx], eax
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
call eax
sub esp, 4
mov dword [esp], str.if_imageBase_n
call fcn.004155f8
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4177c2
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
mov edx, 0
div dword [ebp - 0x10]
mov eax, edx
test eax, eax
je 0x4177c2
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
call eax
sub esp, 4
nop
leave
ret

Function at 0x4527f0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, ecx
push ebx
sub esp, 0x10
mov ecx, esi
call fcn.00452638
mov edx, dword [ebp + 0xc]
mov dword [esp], eax
mov dword [esp + 8], edx
mov edx, dword [ebp + 8]
mov dword [esp + 4], edx
call sub.msvcrt.dll__read
mov ebx, eax
cmp eax, 0xffffffff
jne 0x452829
call dword [sym.imp.msvcrt.dll__errno]
cmp dword [eax], 4
je 0x4527fa
add esp, 0x10
mov eax, ebx
pop ebx
pop esi
pop ebp
ret 8