joyce8/EMBER2024-capa huggingface dataset:
Function at 0x419060
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x649340
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x734fd0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, dword [ebp + 8]
mov dword [ebp - 4], 0
cmp dword [esi + 0x20dec], 0
je 0x4190b7
push 0
push 0x376
push str..Updater.cpp
push str.status___STATUS_Checking
call fcn.005cc270
add esp, 0x10
mov ecx, esi
call fcn.004176e0
call fcn.004178d0
test al, al
je 0x4190e2
mov ecx, esi
call fcn.00417940
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, esi
mov byte [esi + 0x98], 1
call fcn.00417bd0
mov dword [esi + 0x20dec], eax
lea eax, [esi + 0x20df5]
push 0x6f98c4
push eax
call fcn.00410ad0
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
add esp, 8
mov ebx, 5
jmp 0x419120
cmp dword [esi + 0x20dec], ebx
jne 0x419220
mov ecx, dword [esi + 0x217f8]
mov eax, dword [0x7ff790]
or eax, dword [0x7ff794]
mov dword [0x7ff780], ecx
mov edx, dword [esi + 0x217fc]
mov dword [0x7ff784], edx
je 0x419179
call fcn.004118e0
test al, al
je 0x419179
push 0
push 0
push 0x7ff780
push 0x4115a0
push 0
push 0
call fcn.005f3529
add esp, 0x18
mov dword [0x7ff948], eax
call fcn.00417c30
call fcn.00417d80
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x5e4]
push ecx
push eax
push str.current_build_version_d__updater_data_version_d_n
call fcn.005cbf10
mov eax, dword [esi + 0x5e4]
add esp, 0xc
cmp eax, dword [esi + 0x1c]
jne 0x4191ad
mov eax, esi
call fcn.00418f90
mov ebx, esi
call fcn.00418020
mov ecx, esi
call fcn.00418720
call fcn.00418ef0
push str.Validating_game_data_n
call fcn.005cbf10
add esp, 4
lea edx, [esi + 0x20df5]
push str.Validating_game_data
push edx
call fcn.00410ad0
add esp, 8
lea eax, [esi + 0x21600]
push eax
lea ecx, [esi + 0x215f8]
push ecx
push 0
lea ecx, [esi + 0x4e0]
call fcn.005de280
test al, al
jne 0x41920c
push str.Game_data_is_damaged__please_restart_launcher_to_repair_damaged_files
mov eax, esi
call fcn.00417680
push str.Validating_game_data___finished_n
call fcn.005cbf10
add esp, 4
mov eax, esi
call fcn.00418f90
push 0x32
call edi
jmp 0x419120
Function at 0x41a7e0
Capabilities:
Create thread

Disassembly:
cmp dword [esi + 0x21638], 0
je 0x41a802
push 0
push 0x624
push str..Updater.cpp
push str.mainThread___NULL
call fcn.005cc270
add esp, 0x10
cmp dword [esi + 0x21658], 0
je 0x41a824
push 0
push 0x625
push str..Updater.cpp
push str.loginThread___NULL
call fcn.005cc270
add esp, 0x10
push ebx
push edi
push 0
push 0
push esi
push 0x4192f0
push 0
push 0
call fcn.005f3529
push 0
push 0
push esi
push 0x419ba0
push 0
push 0
mov dword [esi + 0x21638], eax
call fcn.005f3529
add esp, 0x30
mov dword [esi + 0x21d20], eax
lea edi, [esi + 0x21648]
mov ebx, 3
push 0
push 0
push esi
push 0x419bb0
push 0
push 0
call fcn.005f3529
mov dword [edi], eax
add esp, 0x18
add edi, 4
sub ebx, 1
jne 0x41a866
pop edi
pop ebx
ret

Function at 0x41a910
Capabilities:
Terminate thread

Disassembly:
push ecx
push ebx
push ebp
push esi
push edi
push str.CUpdater::Stop___n
mov esi, eax
call fcn.005cbf10
add esp, 4
cmp byte [esi + 0x20df4], 0
jne 0x41a933
mov eax, dword [esi + 0x21640]
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0x7d8ce8
call edi
lea eax, [esi + 0x20dd4]
push eax
mov dword [esp + 0x14], eax
call edi
mov eax, dword [esi + 0x21638]
mov edi, dword [sym.imp.KERNEL32.dll_TerminateThread]
mov ebp, dword [sym.imp.KERNEL32.dll_CloseHandle]
xor ebx, ebx
cmp eax, ebx
je 0x41a978
push ebx
push eax
call edi
mov ecx, dword [esi + 0x21638]
push ecx
call ebp
mov dword [esi + 0x21638], ebx
mov eax, dword [esi + 0x21d20]
cmp eax, ebx
je 0x41a995
push ebx
push eax
call edi
mov edx, dword [esi + 0x21d20]
push edx
call ebp
mov dword [esi + 0x21d20], ebx
mov eax, dword [esi + 0x21658]
cmp eax, ebx
je 0x41a9b2
push ebx
push eax
call edi
mov eax, dword [esi + 0x21658]
push eax
call ebp
mov dword [esi + 0x21658], ebx
add esi, 0x21648
mov ebx, 3
lea ecx, [ecx]
mov eax, dword [esi]
test eax, eax
je 0x41a9d6
push 0
push eax
call edi
mov ecx, dword [esi]
push ecx
call ebp
mov dword [esi], 0
add esi, 4
sub ebx, 1
jne 0x41a9c0
mov edx, dword [esp + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push edx
call esi
push 0x7d8ce8
call esi
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
Function at 0x41d330
Capabilities:
Get local ipv4 addresses
Get mac address on windows

Disassembly:
sub esp, 8
push esi
push edi
push 0x11
mov dword [esp + 0xc], 4
call fcn.005f474d
mov edi, eax
push 0x288
mov dword [esp + 0x14], edi
call fcn.005f474d
mov esi, eax
add esp, 8
test esi, esi
jne 0x41d36a
push str.Error_allocating_memory_needed_to_call_GetAdaptersinfo_n
call fcn.005f48cd
add esp, 4
lea eax, [esp + 8]
push eax
push esi
call sub.IPHLPAPI.DLL_GetAdaptersInfo
cmp eax, 0x6f
jne 0x41d39a
mov ecx, dword [esp + 8]
push ecx
call fcn.005f474d
mov esi, eax
add esp, 4
test esi, esi
jne 0x41d39a
push str.Error_allocating_memory_needed_to_call_GetAdaptersinfo_n
call fcn.005f48cd
add esp, 4
lea edx, [esp + 8]
push edx
push esi
call sub.IPHLPAPI.DLL_GetAdaptersInfo
test eax, eax
jne 0x41d405
movzx eax, byte [esi + 0x199]
movzx ecx, byte [esi + 0x198]
movzx edx, byte [esi + 0x197]
push eax
movzx eax, byte [esi + 0x196]
push ecx
movzx ecx, byte [esi + 0x195]
push edx
movzx edx, byte [esi + 0x194]
push eax
push ecx
push edx
lea eax, [esp + 0x24]
push str._02X:_02X:_02X:_02X:_02X:_02X
push eax
call fcn.004159c0
push edi
add esi, 0x1b0
push esi
push str.Address:__s__mac:__s_n
call fcn.005f48cd
add esp, 0x2c
mov eax, edi
pop edi
pop esi
add esp, 8
ret
push esi
call fcn.005f4670
add esp, 4
pop edi
xor eax, eax
pop esi
add esp, 8
ret

Function at 0x41d720
Capabilities:
Set registry value

Disassembly:
push ecx
push 0
lea eax, [esp + 4]
push eax
push 0
push 0xf003f
push 0
push 0
push 0
push str.SoftwareArktos_Entertainment_GroupWarZ
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x41d779
mov eax, esi
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41d750
mov ecx, dword [esp]
sub eax, edx
inc eax
push eax
push esi
push 1
push 0
push str.username
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edx, dword [esp]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop ecx
ret

Function at 0x41d780
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 8
lea eax, [esp]
push eax
push 0xf003f
push 0
push str.SoftwareArktos_Entertainment_GroupWarZ
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x41d7d0
mov edx, dword [esp + 0xc]
lea ecx, [esp + 4]
push ecx
push edx
push eax
push eax
mov eax, dword [esp + 0x10]
push str.username
push eax
mov dword [esp + 0x1c], 0x80
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esp]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, 1
add esp, 8
ret 4
Function at 0x41d7e0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
push ebx
push esi
push edi
mov ebx, eax
lea eax, [esp + 0x10]
push eax
push 0xf003f
push 0
mov edi, 0x5c8e3464
lea esi, [esp + 0x2c]
call fcn.0041e670
push eax
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x41d826
call fcn.0041d880
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x14]
push ecx
add ebx, 0x100
push ebx
push 0
mov ecx, 0x702988
push 0
sub ecx, 0x3d4a4584
lea eax, [esp + 0x28]
mov dword [esp + 0x24], 0x32
call fcn.0041e6b0
mov edx, dword [esp + 0x20]
push eax
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x41d880
Capabilities:
Set registry value

Disassembly:
sub esp, 0x214
mov eax, dword [0x734fd0]
xor eax, esp
mov dword [esp + 0x20c], eax
push esi
push edi
push 0
lea eax, [esp + 0x10]
push eax
push 0
push 0xf003f
push 0
push 0
push 0
mov edi, 0x5c8e3464
lea esi, [esp + 0x34]
call fcn.0041e670
push eax
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x41d95b
push 0x1c8
push eax
lea ecx, [esp + 0x50]
push ecx
call fcn.005f4bd0
add esp, 0xc
lea eax, [esp + 0x48]
call fcn.00411230
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
push edx
push eax
mov ecx, 0x702990
sub ecx, 0x6b50b473
lea eax, [esp + 0x18]
lea esi, [ebx + 0x100]
call fcn.0041e710
push eax
mov edx, esi
call fcn.0041e770
mov eax, esi
add esp, 0xc
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41d920
sub eax, edx
inc eax
push eax
push esi
push 1
mov ecx, 0x702988
push 0
sub ecx, 0x3d4a4584
lea eax, [esp + 0x20]
call fcn.0041e6b0
mov ecx, dword [esp + 0x1c]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edx, dword [esp + 0xc]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [esp + 0x214]
pop edi
pop esi
xor ecx, esp
call fcn.005f2c33
add esp, 0x214
ret

Function at 0x41d980
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x68
push esi
push edi
lea eax, [esp + 8]
push eax
push 0x20019
mov edi, 0x702998
push 0
sub edi, 0x42506fd2
lea esi, [esp + 0x27]
call fcn.0041e790
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
setne al
pop edi
pop esi
test al, al
jne 0x41da02
mov edx, dword [esp + 0x6c]
lea ecx, [esp + 4]
push ecx
add edx, 0x132
push edx
push 0
mov ecx, 0x7029f0
push 0
sub ecx, 0x6dba643a
lea eax, [esp + 0x18]
mov dword [esp + 0x14], 0x32
call fcn.0041e7d0
push eax
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esp]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, 1
add esp, 0x68
ret 4
Function at 0x41da10
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x4c
push esi
push edi
lea eax, [esp + 8]
push eax
push 0x20019
push 0
mov edi, 0x12460ba0
lea esi, [esp + 0x29]
call fcn.0041e860
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
setne al
test al, al
jne 0x41da85
mov edx, dword [esp + 0x58]
lea ecx, [esp + 0xc]
push ecx
add edx, 0x164
push edx
push 0
push 0
mov edi, 0x7fa03761
lea esi, [esp + 0x20]
mov dword [esp + 0x1c], 0x32
call fcn.0041e8a0
push eax
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esp + 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
mov al, 1
pop esi
add esp, 0x4c
ret 4

Function at 0x41df80
Capabilities:
Access peb ldr_data
Get process heap flags

Disassembly:
push 0xffffffffffffffff
push 0x64891b
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x734fd0]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x14], esi
lea ecx, [esi + 4]
mov dword [esi], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
call fcn.005f28a5
push 4
mov dword [esp + 0x24], 0
call fcn.005cdeb0
mov edi, eax
add esp, 4
test edi, edi
je 0x41e002
call fcn.005f2716
mov dword [edi], eax
call fcn.005f2544
push 0
lea ecx, [esp + 0x14]
mov ebx, eax
call fcn.005f2866
mov eax, dword [ebx + 4]
cmp eax, 0xffffffff
jae 0x41dff7
inc eax
mov dword [ebx + 4], eax
lea ecx, [esp + 0x10]
call fcn.005f288e
jmp 0x41e004
xor edi, edi
lea eax, [esi + 8]
mov dword [esi + 0x10], eax
lea ecx, [esi + 0x18]
mov dword [esi + 0x20], ecx
lea edx, [esi + 0x1c]
mov dword [esi + 0x24], edx
mov dword [esi + 0x38], edi
lea eax, [esi + 0xc]
mov dword [esi + 0x14], eax
lea ecx, [esi + 0x28]
mov dword [esi + 0x30], ecx
lea edx, [esi + 0x2c]
mov dword [esi + 0x34], edx
mov dword [eax], 0
mov eax, dword [esi + 0x24]
mov dword [eax], 0
mov ecx, dword [esi + 0x34]
mov dword [ecx], 0
mov edx, dword [esi + 0x10]
mov dword [edx], 0
mov eax, dword [esi + 0x20]
mov dword [eax], 0
mov ecx, dword [esi + 0x30]
mov dword [ecx], 0
mov eax, esi
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x14
ret

Function at 0x41e8a0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov edx, 0x8f
xor ecx, ecx
jmp 0x41e8b0
mov al, byte [edi + ecx - 0x7f300d2d]
xor al, dl
inc edx
and edx, 0x800000ff
mov byte [ecx + esi], al
jns 0x41e8cd
dec edx
or edx, 0xffffff00
inc edx
inc ecx
cmp ecx, 0xc
jl 0x41e8b0
mov byte [esi + 0xc], 0
mov eax, esi
ret
Function at 0x41fe60
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov edx, dword [esp + 4]
add edx, 0xc
mov dword [esp + 4], edx
jmp sym.PlayiFATz.exe_ZSTD_CCtxParams_getParameter
Function at 0x4638b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x7fc
mov eax, dword [0x734fd0]
xor eax, esp
mov dword [esp + 0x7f4], eax
push ebx
push ebp
push esi
push edi
xor esi, esi
push 0x40
lea eax, [esp + 0x80]
push esi
push eax
mov edi, ecx
mov dword [esp + 0x84], esi
call fcn.005f4bd0
add esp, 0xc
push 0x44
lea ecx, [esp + 0x38]
push esi
push ecx
mov dword [esp + 0x3c], esi
call fcn.005f4bd0
mov ebx, dword [edi]
add edi, 4
add esp, 0xc
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], edi
cmp ebx, 0x10
jbe 0x463916
mov eax, 0xffffffd4
jmp 0x463a9e
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x81c]
lea ecx, [esp + 0x80]
push ecx
mov ecx, dword [esp + 0x81c]
lea edx, [esp + 0x50c]
push edx
call fcn.00462d70
add esp, 0x10
mov dword [esp + 0x2c], eax
cmp eax, 0xffffff88
ja 0x463a9e
mov edi, dword [esp + 0x1c]
cmp edi, ebx
ja 0x46390c
mov dword [esp + 0x14], edi
cmp dword [esp + edi*4 + 0x78], esi
jne 0x463970
dec edi
cmp dword [esp + edi*4 + 0x78], esi
je 0x463965
mov dword [esp + 0x14], edi
xor ebp, ebp
lea eax, [ebp + 1]
lea ebx, [edi + 1]
mov dword [esp + 0x20], ebp
cmp ebx, eax
jbe 0x463993
mov ecx, ebp
add ebp, dword [esp + eax*4 + 0x78]
mov dword [esp + eax*4 + 0x34], ecx
inc eax
cmp eax, ebx
jb 0x463980
mov dword [esp + 0x20], ebp
mov esi, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x34], ebp
test esi, esi
jbe 0x4639cb
movzx edx, byte [esp + eax + 0x500]
mov ecx, dword [esp + edx*4 + 0x34]
mov byte [esp + ecx*2 + 0x600], al
inc eax
lea edi, [ecx + 1]
mov dword [esp + edx*4 + 0x34], edi
mov byte [esp + ecx*2 + 0x601], dl
cmp eax, esi
jb 0x4639a1
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
sub edx, dword [esp + 0x1c]
xor esi, esi
lea eax, [esi + 1]
dec edx
mov dword [esp + 0x34], esi
cmp ebx, eax
jbe 0x463a02
mov ebp, dword [esp + eax*4 + 0x78]
lea ecx, [eax + edx]
shl ebp, cl
mov edi, esi
mov dword [esp + eax*4 + 0xc0], edi
inc eax
add esi, ebp
cmp eax, ebx
jb 0x4639e1
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
sub ecx, edi
mov edi, dword [esp + 0x24]
inc ecx
sub edi, ecx
inc edi
cmp ecx, edi
jae 0x463a67
mov edx, ecx
neg edx
mov eax, ecx
shl eax, 4
shl edx, 4
add eax, ecx
sub edx, ecx
lea eax, [esp + eax*4 + 0xc4]
add edx, edx
mov dword [esp + 0x18], eax
add edx, edx
cmp ebx, 1
jbe 0x463a54
lea esi, [ebx - 1]
jmp 0x463a40
mov ebp, dword [edx + eax]
shr ebp, cl
add eax, 4
sub esi, 1
mov dword [eax - 4], ebp
jne 0x463a40
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
inc ecx
add eax, 0x44
sub edx, 0x44
mov dword [esp + 0x18], eax
cmp ecx, edi
jb 0x463a33
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
inc ecx
push ecx
push edx
lea eax, [esp + 0xc8]
push eax
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x38]
push ebp
lea edx, [esp + 0x614]
push edx
push eax
push ecx
call fcn.00463780
mov eax, dword [esp + 0x4c]
add esp, 0x20
mov ecx, dword [esp + 0x804]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005f2c33
add esp, 0x7fc
ret
Function at 0x46b6b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x6c
push ebx
push ebp
mov ebp, dword [esp + 0x7c]
push esi
mov esi, ecx
lea ecx, [esi + eax]
mov dword [esp + 0x24], ecx
lea ecx, [edx + ebp]
xor edx, edx
push edi
mov edi, dword [esp + 0x80]
mov ebx, dword [edi + 0x6860]
mov dword [esp + 0x18], edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x14], edx
lea edx, [edi + 0x1004]
mov dword [esp + 0x1c], edx
mov edx, dword [edi + 0x6814]
mov dword [esp + 0x38], edx
mov edx, dword [edi + 0x6818]
mov dword [esp + 0x34], edx
mov edx, dword [edi + 0x681c]
mov dword [esp + 0x30], edx
mov edx, dword [edi + 0x6858]
push edx
push eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2c], ecx
mov ecx, dword [edi + 0x685c]
mov dword [esp + 0x28], ecx
add ebx, ecx
push esi
lea ecx, [edi + 0x1808]
push eax
push ecx
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x30]
lea edx, [esp + 0x98]
call fcn.0046af00
add esp, 0x18
cmp eax, 0xffffff88
ja 0x46b8d5
cmp dword [esp + 0x80], 0
lea edx, [eax + esi]
je 0x46b895
mov ecx, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x74], eax
add eax, ecx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x28]
mov esi, 1
sub eax, edx
lea ecx, [esp + 0x48]
mov dword [esp + 0x44], esi
mov dword [esp + 0x70], esi
call fcn.00468d70
cmp eax, 0xffffff88
jbe 0x46b7b6
mov eax, 0xffffffec
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
lea edx, [esp + 0x58]
push edx
mov eax, edi
lea edx, [esp + 0x4c]
call fcn.00468e70
lea eax, [esp + 0x64]
add esp, 4
push eax
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x4c]
call fcn.00468e70
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x6c]
add esp, 4
push ecx
lea edx, [esp + 0x4c]
call fcn.00468e70
add esp, 4
lea ecx, [esp + 0x48]
call fcn.00462510
cmp eax, 2
jg 0x46b887
jmp 0x46b815
mov esi, 1
cmp dword [esp + 0x80], 0
je 0x46b895
sub dword [esp + 0x80], esi
lea edx, [esp + 0x3c]
push edx
lea esi, [esp + 0x4c]
call fcn.0046b2e0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
add esp, 4
push eax
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x4c]
push ebx
lea eax, [esp + 0x30]
push eax
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x44]
mov dword [eax + 8], ecx
push edx
mov eax, ebp
call fcn.0046b4f0
add esp, 0x24
cmp eax, 0xffffff88
ja 0x46b8d5
mov ecx, esi
add ebp, eax
call fcn.00462510
cmp eax, 2
jle 0x46b810
cmp dword [esp + 0x80], 0
jne 0x46b7a9
mov ecx, dword [esp + 0x20]
mov eax, ebx
sub eax, ecx
cmp ecx, ebx
ja 0x46b7a9
lea esi, [eax + ebp]
cmp esi, dword [esp + 0x24]
jbe 0x46b8bb
mov eax, 0xffffffba
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
test eax, eax
jbe 0x46b8cc
push eax
push ecx
push ebp
call fcn.005f4c50
add esp, 0xc
mov ebp, esi
mov eax, ebp
sub eax, dword [esp + 0x84]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
Function at 0x46efe0
Capabilities:
Create thread

Disassembly:
push ebx
mov ebx, dword [esp + 8]
push ebp
xor ebp, ebp
cmp ebx, ebp
jne 0x46eff1
pop ebp
xor eax, eax
pop ebx
ret
mov eax, dword [esp + 0x10]
push esi
push 0x54
cmp eax, ebp
je 0x46f013
mov ecx, dword [esp + 0x20]
push ecx
call eax
push 0x54
mov esi, eax
push ebp
push esi
call fcn.005f4bd0
add esp, 0x14
jmp 0x46f01f
push 1
call fcn.006065e0
add esp, 8
mov esi, eax
cmp esi, ebp
jne 0x46f029
pop esi
pop ebp
xor eax, eax
pop ebx
ret
push edi
mov edi, 1
mov dword [esi + 0x24], edi
mov eax, dword [esp + 0x18]
push 8
cmp eax, ebp
je 0x46f048
mov edx, dword [esp + 0x24]
push edx
call eax
add esp, 8
jmp 0x46f050
call fcn.005f474d
add esp, 4
mov dword [esi + 0x18], eax
lea eax, [esi + 0x30]
push eax
mov dword [esi + 0x1c], ebp
mov dword [esi + 0x20], ebp
mov dword [esi + 0x28], ebp
mov dword [esi + 0x2c], edi
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov edi, dword [sym.imp.KERNEL32.dll_InitializeConditionVariable]
lea ecx, [esi + 0x48]
push ecx
call edi
lea edx, [esi + 0x4c]
push edx
call edi
lea eax, [ebx + ebx*2]
add eax, eax
mov dword [esi + 0x50], ebp
mov ecx, dword [esp + 0x18]
add eax, eax
push eax
cmp ecx, ebp
je 0x46f09a
mov eax, dword [esp + 0x24]
push eax
call ecx
add esp, 8
jmp 0x46f0a2
call fcn.005f474d
add esp, 4
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], ebp
mov ecx, dword [esp + 0x18]
mov dword [esi], ecx
mov edx, dword [esp + 0x1c]
mov dword [esi + 4], edx
mov ecx, dword [esp + 0x20]
mov dword [esi + 8], ecx
cmp eax, ebp
je 0x46f123
cmp dword [esi + 0x18], ebp
je 0x46f123
cmp ebx, ebp
jbe 0x46f113
xor ebx, ebx
jmp 0x46f0d0
mov edi, dword [esi + 0xc]
push 0
push 0
add edi, ebx
push edi
push 0x4700a0
push 0
push 0
mov dword [edi + 8], esi
mov dword [edi + 4], 0x46eee0
call fcn.005f3529
add esp, 0x18
mov dword [edi], eax
test eax, eax
jne 0x46f105
call fcn.005fa01b
cmp dword [eax], 0
jne 0x46f120
inc ebp
add ebx, 0xc
cmp ebp, dword [esp + 0x14]
jb 0x46f0d0
mov ebx, dword [esp + 0x14]
pop edi
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
mov eax, esi
pop esi
pop ebp
pop ebx
ret
mov dword [esi + 0x10], ebp
mov eax, esi
call fcn.0046f1d0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
Function at 0x46f280
Capabilities:
Create thread

Disassembly:
sub esp, 0xc
push ebp
mov ebp, dword [esp + 0x14]
cmp ebp, dword [esi + 0x10]
ja 0x46f2a3
test ebp, ebp
jne 0x46f299
lea eax, [ebp + 1]
pop ebp
add esp, 0xc
ret
mov dword [esi + 0x14], ebp
xor eax, eax
pop ebp
add esp, 0xc
ret
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov edx, dword [esi + 8]
mov dword [esp + 8], eax
lea eax, [ebp + ebp*2]
add eax, eax
add eax, eax
push edi
push eax
test ecx, ecx
je 0x46f2c5
push edx
call ecx
add esp, 8
jmp 0x46f2cd
call fcn.005f474d
add esp, 4
mov edi, eax
test edi, edi
jne 0x46f2dc
lea eax, [edi + 1]
pop edi
pop ebp
add esp, 0xc
ret
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
lea ecx, [eax + eax*2]
add ecx, ecx
add ecx, ecx
push ecx
push edx
push edi
call fcn.005f4c50
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0xc]
add esp, 0xc
test eax, eax
je 0x46f31c
push eax
test ecx, ecx
je 0x46f314
push edx
call ecx
add esp, 8
jmp 0x46f31c
call fcn.005f4670
add esp, 4
push ebx
mov ebx, dword [esi + 0x10]
mov dword [esi + 0xc], edi
cmp ebx, ebp
jae 0x46f368
lea ecx, [ebx + ebx*2]
lea edi, [edi + ecx*4]
lea ecx, [ecx]
push 0
push 0
push edi
push 0x4700a0
push 0
push 0
mov dword [edi + 8], esi
mov dword [edi + 4], 0x46eee0
call fcn.005f3529
add esp, 0x18
mov dword [edi], eax
test eax, eax
jne 0x46f360
call fcn.005fa01b
cmp dword [eax], 0
jne 0x46f377
inc ebx
add edi, 0xc
cmp ebx, ebp
jb 0x46f330
pop ebx
pop edi
mov dword [esi + 0x10], ebp
mov dword [esi + 0x14], ebp
xor eax, eax
pop ebp
add esp, 0xc
ret
mov dword [esi + 0x10], ebx
pop ebx
pop edi
mov eax, 1
pop ebp
add esp, 0xc
ret