joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4219a4
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov dword [ebp - 0x10], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], eax
call sym.___pthread_self_lite
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xb4]
mov dword [esp], eax
call sym.__pthread_cleanup_dest
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax + 0x20]
and eax, 0x30
test al, al
jne 0x4219ff
mov eax, dword [ebp - 0x14]
add eax, 0x70
mov dword [esp + 4], 1
mov dword [esp], eax
mov eax, dword [sym.imp.api_ms_win_crt_private_l1_1_0.dll_longjmp]
call eax
mov eax, dword [0x4d526c]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_TlsGetValue]
call eax
sub esp, 4
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x421b29
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x421a91
mov eax, dword [ebp - 0x10]
mov dword [eax], 0xdeadbeef
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x421a4e
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
call eax
sub esp, 4
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x18], 0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sym._push_pthread_mem
mov dword [ebp - 0x10], 0
mov eax, dword [0x4d526c]
mov edx, dword [ebp - 0x10]
mov dword [esp + 4], edx
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_TlsSetValue]
call eax
sub esp, 8
jmp 0x421b29
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x68], 1
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x421ac1
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
call eax
sub esp, 4
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x18], 0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x24]
and eax, 4
test eax, eax
je 0x421b29
mov eax, dword [ebp - 0x10]
mov dword [eax], 0xdeadbeef
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x14]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
call eax
sub esp, 4
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x14], 0
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sym._push_pthread_mem
mov dword [ebp - 0x10], 0
mov eax, dword [0x4d526c]
mov edx, dword [ebp - 0x10]
mov dword [esp + 4], edx
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_TlsSetValue]
call eax
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__endthreadex]
call eax
Function at 0x42354c
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov dword [esp], 0x4d527c
call sym._pthread_spin_lock
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov eax, dword [eax]
cmp eax, 0xbab1f0ed
jne 0x423578
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov eax, dword [eax + 4]
test eax, eax
jg 0x4235ba
mov dword [esp], 2
mov eax, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
call eax
mov dword [esp + 0x10], 0x28
mov dword [esp + 0xc], str..._.._.._mingw_w64_libraries_winpthreads_src_rwlock.c
mov dword [esp + 8], str.___rwlock_t__rwl___valid__LIFE_RWLOCK______rwlock_t__rwl___busy___0_
mov dword [esp + 4], str.Assertion_failed:___s___file__s__line__d_n
mov dword [esp], eax
call sym._fprintf
mov dword [esp], 1
call sym._exit
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov edx, dword [eax + 4]
sub edx, 1
mov dword [eax + 4], edx
mov dword [esp], 0x4d527c
call sym._pthread_spin_unlock
mov eax, dword [ebp + 0xc]
leave
ret

Function at 0x42a180
Capabilities:
Read file on windows

Disassembly:
push esi
push ebx
mov ebx, ecx
sub esp, 0x14
mov eax, dword [ecx + 0x20]
mov esi, dword [esp + 0x20]
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
mov dword [esp], esi
mov dword [esp + 8], eax
call sym._fread
mov edx, 0xffffffff
test eax, eax
jle 0x42a1b8
movzx edx, byte [esi + eax - 1]
mov dword [ebx + 0x24], edx
add esp, 0x14
pop ebx
pop esi
ret 8

Function at 0x42a1d0
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x1c
mov eax, dword [ecx + 0x20]
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call sym._fwrite
add esp, 0x1c
ret 8
Function at 0x42aca0
Capabilities:
Write file on windows

Disassembly:
push edi
push esi
push ebx
sub esp, 0x20
cmp byte [0x4d6dd4], 0
jne 0x42adc6
mov byte [0x4d6dd4], 1
call sym.___cxa_current_exception_type
test eax, eax
je 0x42ad94
mov ebx, dword [eax + 4]
xor eax, eax
cmp byte [ebx], 0x2a
mov dword [esp + 8], 0
sete al
mov dword [esp + 4], 0
add ebx, eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call sym.___cxa_demangle
mov dword [esp], 2
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov edi, eax
call esi
mov dword [esp + 8], 0x30
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.terminate_called_after_throwing_an_instance_of_
call sym._fwrite
mov edx, dword [esp + 0x1c]
mov dword [esp], 2
test edx, edx
je 0x42ad84
call esi
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._fputs
mov dword [esp], 2
call esi
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x52ae45
call sym._fwrite
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x4cb988
jmp 0x4cb980
call esi
mov dword [esp], edi
mov dword [esp + 4], eax
call sym._fputs
jmp 0x42ad4a
mov dword [esp], 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov dword [esp + 8], 0x2d
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.terminate_called_without_an_active_exception_n
call sym._fwrite
jmp 0x4cb97b
mov dword [esp], 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov dword [esp + 8], 0x1d
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.terminate_called_recursively_n
call sym._fwrite
call sym._abort
nop
nop
nop
nop
nop
nop
nop
nop
Function at 0x43a380
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x3c], ecx
mov ecx, 0x4d669c
mov ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x38], eax
call method.std::locale::id._M_id___const
mov edx, dword [esp + 0x80]
mov edx, dword [edx + 0x6c]
cmp eax, dword [edx + 8]
jae 0x43a50d
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4]
test eax, eax
je 0x43a50d
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x531430
mov dword [esp + 4], 0x5310d4
mov dword [esp], eax
call sym.___dynamic_cast
test eax, eax
je 0x43a50d
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x88]
lea ebp, [esp + 0x44]
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax + 8]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x80]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 0x10], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
call fcn.0043c1b0
mov ecx, ebp
sub esp, 0x24
mov esi, eax
mov ebx, edx
mov eax, dword [esp + 0x88]
mov dword [esp], eax
call method.std::__time_get_state._M_finalize_state_tm_
sub esp, 4
cmp ebx, 0xffffffff
sete dl
test esi, esi
setne al
and al, dl
mov ebp, eax
jne 0x43a4e0
cmp dword [esp + 0x38], 0xffffffff
sete al
test edi, edi
je 0x43a495
test al, al
jne 0x43a4b8
cmp dl, al
jne 0x43a4a3
mov eax, dword [esp + 0x84]
or dword [eax], 2
add esp, 0x5c
mov eax, esi
mov edx, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 0x1c
mov ecx, dword [edi + 0xc]
xor eax, eax
cmp dword [edi + 8], ecx
jb 0x43a495
mov eax, dword [edi]
mov byte [esp + 0x38], dl
mov ecx, edi
call dword [eax + 0x24]
movzx edx, byte [esp + 0x38]
cmp eax, 0xffffffff
sete al
jmp 0x43a495
mov eax, dword [esi + 0xc]
xor edx, edx
cmp dword [esi + 8], eax
jb 0x43a485
mov eax, dword [esi]
mov byte [esp + 0x3c], dl
mov ecx, esi
call dword [eax + 0x24]
movzx edx, byte [esp + 0x3c]
cmp eax, 0xffffffff
mov eax, 0
cmove edx, ebp
cmove esi, eax
jmp 0x43a485
call method.std.__throw_bad_cast__
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
Function at 0x43a520
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x3c], ecx
mov ecx, 0x4d669c
mov ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x38], eax
call method.std::locale::id._M_id___const
mov edx, dword [esp + 0x80]
mov edx, dword [edx + 0x6c]
cmp eax, dword [edx + 8]
jae 0x43a6ad
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4]
test eax, eax
je 0x43a6ad
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x531430
mov dword [esp + 4], 0x5310d4
mov dword [esp], eax
call sym.___dynamic_cast
test eax, eax
je 0x43a6ad
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x88]
lea ebp, [esp + 0x44]
mov dword [esp + 0x44], 0
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x48], 0
mov eax, dword [eax + 0x10]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x80]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 0x10], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov dword [esp + 0x4c], 0
call fcn.0043c1b0
mov ecx, ebp
sub esp, 0x24
mov esi, eax
mov ebx, edx
mov eax, dword [esp + 0x88]
mov dword [esp], eax
call method.std::__time_get_state._M_finalize_state_tm_
sub esp, 4
cmp ebx, 0xffffffff
sete dl
test esi, esi
setne al
and al, dl
mov ebp, eax
jne 0x43a680
cmp dword [esp + 0x38], 0xffffffff
sete al
test edi, edi
je 0x43a635
test al, al
jne 0x43a658
cmp dl, al
jne 0x43a643
mov eax, dword [esp + 0x84]
or dword [eax], 2
add esp, 0x5c
mov eax, esi
mov edx, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 0x1c
mov ecx, dword [edi + 0xc]
xor eax, eax
cmp dword [edi + 8], ecx
jb 0x43a635
mov eax, dword [edi]
mov byte [esp + 0x38], dl
mov ecx, edi
call dword [eax + 0x24]
movzx edx, byte [esp + 0x38]
cmp eax, 0xffffffff
sete al
jmp 0x43a635
mov eax, dword [esi + 0xc]
xor edx, edx
cmp dword [esi + 8], eax
jb 0x43a625
mov eax, dword [esi]
mov byte [esp + 0x3c], dl
mov ecx, esi
call dword [eax + 0x24]
movzx edx, byte [esp + 0x3c]
cmp eax, 0xffffffff
mov eax, 0
cmove edx, ebp
cmove esi, eax
jmp 0x43a625
call method.std.__throw_bad_cast__
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
Function at 0x4402d0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
mov edi, ecx
push esi
push ebx
sub esp, 0x5c
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
mov dword [esp + 0x34], ecx
mov ecx, 0x4d66a0
mov dword [esp + 0x30], eax
call method.std::locale::id._M_id___const
mov edx, dword [esp + 0x80]
mov edx, dword [edx + 0x6c]
cmp eax, dword [edx + 8]
jae 0x440481
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4]
test eax, eax
je 0x440481
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x53143c
mov dword [esp + 4], 0x5310d4
mov dword [esp], eax
call sym.___dynamic_cast
test eax, eax
je 0x440481
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x88]
lea ebp, [esp + 0x44]
mov ecx, dword [esp + 0x34]
mov eax, dword [eax + 8]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0xc], ecx
mov ecx, edi
mov dword [esp], ebx
mov dword [esp + 0x10], edx
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
call fcn.00441fb0
mov ecx, ebp
sub esp, 0x24
mov ebx, eax
mov edi, eax
mov eax, dword [esp + 0x88]
mov word [esp + 0x3a], dx
mov dword [esp + 0x3c], edx
mov dword [esp], eax
call method.std::__time_get_state._M_finalize_state_tm_
sub esp, 4
mov edx, dword [esp + 0x3c]
cmp dx, 0xffff
sete dl
test ebx, ebx
setne al
and al, dl
mov ebp, eax
jne 0x440440
cmp word [esp + 0x34], 0xffff
mov ebx, dword [esp + 0x30]
sete al
mov ecx, eax
test ebx, ebx
je 0x4403fe
test al, al
jne 0x440420
cmp dl, cl
jne 0x44040c
mov eax, dword [esp + 0x84]
or dword [eax], 2
mov si, word [esp + 0x3a]
add esp, 0x5c
mov eax, edi
pop ebx
mov edx, esi
pop esi
pop edi
pop ebp
ret 0x1c
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x440460
movzx eax, word [eax]
cmp ax, 0xffff
sete cl
jmp 0x4403fe
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x440478
movzx eax, word [eax]
xor edx, edx
mov edi, 0
cmp ax, 0xffff
cmove edx, ebp
cmovne edi, ebx
jmp 0x4403e7
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x34], dl
mov eax, dword [ecx]
call dword [eax + 0x24]
movzx edx, byte [esp + 0x34]
jmp 0x44042f
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
jmp 0x44044b
call method.std.__throw_bad_cast__
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
Function at 0x440490
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
mov edi, ecx
push esi
push ebx
sub esp, 0x5c
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
mov dword [esp + 0x34], ecx
mov ecx, 0x4d66a0
mov dword [esp + 0x30], eax
call method.std::locale::id._M_id___const
mov edx, dword [esp + 0x80]
mov edx, dword [edx + 0x6c]
cmp eax, dword [edx + 8]
jae 0x440641
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4]
test eax, eax
je 0x440641
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x53143c
mov dword [esp + 4], 0x5310d4
mov dword [esp], eax
call sym.___dynamic_cast
test eax, eax
je 0x440641
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x88]
lea ebp, [esp + 0x44]
mov dword [esp + 0x44], 0
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x48], 0
mov eax, dword [eax + 0x10]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0xc], ecx
mov ecx, edi
mov dword [esp], ebx
mov dword [esp + 0x10], edx
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp + 0x4c], 0
call fcn.00441fb0
mov ecx, ebp
sub esp, 0x24
mov ebx, eax
mov edi, eax
mov eax, dword [esp + 0x88]
mov word [esp + 0x3a], dx
mov dword [esp + 0x3c], edx
mov dword [esp], eax
call method.std::__time_get_state._M_finalize_state_tm_
sub esp, 4
mov edx, dword [esp + 0x3c]
cmp dx, 0xffff
sete dl
test ebx, ebx
setne al
and al, dl
mov ebp, eax
jne 0x440600
cmp word [esp + 0x34], 0xffff
mov ebx, dword [esp + 0x30]
sete al
mov ecx, eax
test ebx, ebx
je 0x4405be
test al, al
jne 0x4405e0
cmp dl, cl
jne 0x4405cc
mov eax, dword [esp + 0x84]
or dword [eax], 2
mov si, word [esp + 0x3a]
add esp, 0x5c
mov eax, edi
pop ebx
mov edx, esi
pop esi
pop edi
pop ebp
ret 0x1c
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x440620
movzx eax, word [eax]
cmp ax, 0xffff
sete cl
jmp 0x4405be
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x440638
movzx eax, word [eax]
xor edx, edx
mov edi, 0
cmp ax, 0xffff
cmove edx, ebp
cmovne edi, ebx
jmp 0x4405a7
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x34], dl
mov eax, dword [ecx]
call dword [eax + 0x24]
movzx edx, byte [esp + 0x34]
jmp 0x4405ef
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
jmp 0x44060b
call method.std.__throw_bad_cast__
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
Function at 0x4635e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, ecx
push edi
push esi
push ebx
sub esp, 0x4c
mov esi, dword [esp + 0x70]
mov ebx, dword [esp + 0x64]
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x60]
mov edi, dword [esi + 0xc]
mov edx, edi
and edx, 0xffffffb5
or edx, 8
mov dword [esi + 0xc], edx
lea edx, [esp + 0x3c]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0xc], ecx
mov ecx, ebp
mov dword [esp + 4], ebx
xor bx, bx
mov dword [esp + 8], edx
mov dword [esp], eax
call method.std::istreambuf_iterator_wchar_t__std::char_traits_wchar_t____std::num_get_wchar_t__std::istreambuf_iterator_wchar_t__std::char_traits_wchar_t_____._M_extract_int_unsigned_long__std::istreambuf_iterator_wchar_t__std::char_traits_wchar_t_____std::is
sub esp, 0x1c
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x20]
mov dword [esp + 0x2c], ecx
movzx ecx, word [esp + 0x2c]
mov dword [esp + 0x28], edx
mov eax, edx
mov edx, ebx
mov ebx, dword [esp + 0x3c]
or edx, ecx
mov ecx, dword [esp + 0x78]
mov dword [esi + 0xc], edi
mov dword [ecx], ebx
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret 0x1c
Function at 0x467f10
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x3c], ecx
mov ecx, 0x4d669c
mov ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x38], eax
call method.std::locale::id._M_id___const
mov edx, dword [esp + 0x80]
mov edx, dword [edx + 0x6c]
cmp eax, dword [edx + 8]
jae 0x46809d
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4]
test eax, eax
je 0x46809d
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x531430
mov dword [esp + 4], 0x5310d4
mov dword [esp], eax
call sym.___dynamic_cast
test eax, eax
je 0x46809d
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x88]
lea ebp, [esp + 0x44]
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax + 8]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x80]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 0x10], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
call fcn.00469590
mov ecx, ebp
sub esp, 0x24
mov esi, eax
mov ebx, edx
mov eax, dword [esp + 0x88]
mov dword [esp], eax
call method.std::__time_get_state._M_finalize_state_tm_
sub esp, 4
cmp ebx, 0xffffffff
sete dl
test esi, esi
setne al
and al, dl
mov ebp, eax
jne 0x468070
cmp dword [esp + 0x38], 0xffffffff
sete al
test edi, edi
je 0x468025
test al, al
jne 0x468048
cmp dl, al
jne 0x468033
mov eax, dword [esp + 0x84]
or dword [eax], 2
add esp, 0x5c
mov eax, esi
mov edx, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 0x1c
mov ecx, dword [edi + 0xc]
xor eax, eax
cmp dword [edi + 8], ecx
jb 0x468025
mov eax, dword [edi]
mov byte [esp + 0x38], dl
mov ecx, edi
call dword [eax + 0x24]
movzx edx, byte [esp + 0x38]
cmp eax, 0xffffffff
sete al
jmp 0x468025
mov eax, dword [esi + 0xc]
xor edx, edx
cmp dword [esi + 8], eax
jb 0x468015
mov eax, dword [esi]
mov byte [esp + 0x3c], dl
mov ecx, esi
call dword [eax + 0x24]
movzx edx, byte [esp + 0x3c]
cmp eax, 0xffffffff
mov eax, 0
cmove edx, ebp
cmove esi, eax
jmp 0x468015
call method.std.__throw_bad_cast__
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
Function at 0x4680b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x3c], ecx
mov ecx, 0x4d669c
mov ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x38], eax
call method.std::locale::id._M_id___const
mov edx, dword [esp + 0x80]
mov edx, dword [edx + 0x6c]
cmp eax, dword [edx + 8]
jae 0x46823d
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4]
test eax, eax
je 0x46823d
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x531430
mov dword [esp + 4], 0x5310d4
mov dword [esp], eax
call sym.___dynamic_cast
test eax, eax
je 0x46823d
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x88]
lea ebp, [esp + 0x44]
mov dword [esp + 0x44], 0
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x48], 0
mov eax, dword [eax + 0x10]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x80]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 0x10], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov dword [esp + 0x4c], 0
call fcn.00469590
mov ecx, ebp
sub esp, 0x24
mov esi, eax
mov ebx, edx
mov eax, dword [esp + 0x88]
mov dword [esp], eax
call method.std::__time_get_state._M_finalize_state_tm_
sub esp, 4
cmp ebx, 0xffffffff
sete dl
test esi, esi
setne al
and al, dl
mov ebp, eax
jne 0x468210
cmp dword [esp + 0x38], 0xffffffff
sete al
test edi, edi
je 0x4681c5
test al, al
jne 0x4681e8
cmp dl, al
jne 0x4681d3
mov eax, dword [esp + 0x84]
or dword [eax], 2
add esp, 0x5c
mov eax, esi
mov edx, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 0x1c
mov ecx, dword [edi + 0xc]
xor eax, eax
cmp dword [edi + 8], ecx
jb 0x4681c5
mov eax, dword [edi]
mov byte [esp + 0x38], dl
mov ecx, edi
call dword [eax + 0x24]
movzx edx, byte [esp + 0x38]
cmp eax, 0xffffffff
sete al
jmp 0x4681c5
mov eax, dword [esi + 0xc]
xor edx, edx
cmp dword [esi + 8], eax
jb 0x4681b5
mov eax, dword [esi]
mov byte [esp + 0x3c], dl
mov ecx, esi
call dword [eax + 0x24]
movzx edx, byte [esp + 0x3c]
cmp eax, 0xffffffff
mov eax, 0
cmove edx, ebp
cmove esi, eax
jmp 0x4681b5
call method.std.__throw_bad_cast__
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop