joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4dc880
Capabilities:
Check for software breakpoints

Disassembly:
push esi
push ebx
mov ebx, ecx
sub esp, 0x24
cmp dword [ecx + 0x28], 6
je 0x4dc8c8
mov dword [esp + 4], 0
mov eax, dword [ecx + 0xc8]
mov word [esp + 0x1e], 0
mov dword [esp], eax
call sym._SDLNet_CheckSockets
mov ecx, dword [ebx + 0x38]
test ecx, ecx
je 0x4dc8b7
mov edx, dword [ecx]
test edx, edx
jne 0x4dc8d8
mov eax, 1
add esp, 0x24
pop ebx
pop esi
ret
add esp, 0x24
pop ebx
pop esi
jmp method.DMG_SIO.four_player_receive_byte__
lea esi, [esp + 0x1e]
mov dword [esp + 8], 2
mov dword [esp + 4], esi
mov dword [esp], ecx
call sym._SDLNet_TCP_Recv
test eax, eax
jle 0x4dc8b7
movzx eax, byte [esp + 0x1f]
cmp al, 0xff
je 0x4dc980
cmp al, 0xf0
je 0x4dca50
cmp al, 0x80
je 0x4dca68
cmp al, 0x40
je 0x4dc9a0
test al, al
jne 0x4dc8b7
cmp dword [ebx + 0x28], 1
je 0x4dca00
mov byte [esp + 0x1e], 0xff
mov dword [esp + 8], 2
mov dword [esp + 4], esi
mov esi, dword [ebx + 0x4c]
mov dword [esp], esi
call sym._SDLNet_TCP_Send
cmp eax, 1
jg 0x4dc8b7
mov dword [esp + 8], 0x30
mov dword [esp + 4], 0x60a17c
mov dword [esp], sym.imp.libstdc_6.dll_std::cout
call sym.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__int_
mov byte [ebx + 4], 0
xor eax, eax
mov byte [ebx + 0x44], 0
mov byte [ebx + 0x58], 0
jmp 0x4dc8bc
movzx esi, byte [esp + 0x1e]
add esi, dword [0x5fc090]
mov byte [ebx + 8], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], esi
jmp 0x4dc8b7
mov edx, dword [ebx]
cmp byte [esp + 0x1e], 1
mov byte [esp + 0x1f], 0x41
mov ecx, dword [edx]
movzx eax, byte [ecx + 0xff56]
je 0x4dca98
or eax, 2
mov byte [ecx + 0xff56], al
mov edx, dword [ebx]
mov dword [edx + 0x294], 0
cmp dword [edx + 0x70], 7
jne 0x4dc9e0
mov byte [edx + 0x290], 0
lea esi, [esi]
mov dword [esp + 8], 2
mov dword [esp + 4], esi
mov ebx, dword [ebx + 0x4c]
mov dword [esp], ebx
call sym._SDLNet_TCP_Send
jmp 0x4dc8b7
mov ecx, dword [ebx]
mov edx, dword [ecx]
or byte [edx + 0xff0f], 8
mov eax, dword [ebx]
mov ecx, dword [eax]
movzx edx, byte [ecx + 0xff01]
movzx ecx, byte [esp + 0x1e]
mov byte [ebx + 0xc], dl
mov eax, dword [eax]
mov byte [eax + 0xff01], cl
mov edx, dword [ebx]
mov eax, dword [edx]
and byte [eax + 0xff02], 0x7f
mov edx, dword [ebx]
movzx ecx, byte [ebx + 0xc]
mov eax, dword [edx]
mov byte [esp + 0x1e], cl
movzx ecx, byte [eax + 0xff01]
mov byte [ebx + 0xc], cl
jmp 0x4dc92c
mov byte [ebx + 8], 0
mov dword [ebx + 0x18], 0
mov byte [esp + 0x1f], 1
jmp 0x4dc9e0
mov dword [esp + 8], 0x23
mov dword [esp + 4], str.SIO::Netplay_connection_suspended._n
mov dword [esp], sym.imp.libstdc_6.dll_std::cout
call sym.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__int_
mov byte [ebx + 4], 0
mov byte [ebx + 8], 0
mov dword [ebx + 0x18], 0
jmp 0x4dc8b7
and eax, 0xfffffffd
mov byte [ecx + 0xff56], al
mov ecx, dword [ebx]
mov dword [ecx + 0x294], 0x3180
cmp dword [ecx + 0x70], 7
jne 0x4dc9e0
mov byte [ecx + 0x290], 1
jmp 0x4dc9e0
Function at 0x4f3660
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
lea ebp, [ecx + 8]
push edi
push esi
push ebx
sub esp, 0x2c
mov dword [ecx], ebp
mov edi, dword [esp + 0x40]
test edi, edi
je 0x4f36fc
mov dword [esp], edi
mov ebx, ecx
call sym._strlen
mov dword [esp + 0x1c], eax
mov esi, eax
cmp eax, 0xf
ja 0x4f36c0
cmp eax, 1
jne 0x4f36b0
movzx edx, byte [edi]
mov byte [ebx + 8], dl
mov dword [ebx + 4], eax
mov byte [ebp + eax], 0
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret 4
test eax, eax
je 0x4f3698
jmp 0x4f36e4
lea eax, [esp + 0x1c]
mov dword [esp + 4], 0
mov ecx, ebx
mov dword [esp], eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::_M_create_unsigned_int__unsigned_int_
sub esp, 8
mov dword [ebx], eax
mov ebp, eax
mov ecx, dword [esp + 0x1c]
mov dword [ebx + 8], ecx
mov dword [esp], ebp
mov dword [esp + 8], esi
mov dword [esp + 4], edi
call sym._memcpy
mov eax, dword [esp + 0x1c]
mov ebp, dword [ebx]
jmp 0x4f3698
mov dword [esp], 0x60b7a4
call sym.std::__throw_logic_error_char_const_
lea esi, [esi]
nop

Function at 0x4f4290
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov edx, dword [ecx]
add ecx, dword [edx - 0x3c]
jmp method.DMG_core.debug_step__
Function at 0x4ff460
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov edx, dword [ecx]
add ecx, dword [edx - 0x44]
jmp method.DMG_core.debug_process_command__
Function at 0x5237b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
movzx eax, byte [esp + 8]
movzx edx, word [esp + 4]
add ecx, 8
mov dword [esp + 8], eax
mov dword [esp + 4], edx
jmp method.NTR_MMU.write_u8_unsigned_int__unsigned_char_

Function at 0x524390
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [ecx]
movzx edx, byte [esp + 8]
add ecx, dword [eax - 0x60]
movzx eax, word [esp + 4]
mov dword [esp + 8], edx
add ecx, 8
mov dword [esp + 4], eax
jmp method.NTR_MMU.write_u8_unsigned_int__unsigned_char_
Function at 0x534ff0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x10
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov edx, esi
mov edi, eax
or eax, 1
movzx ecx, dh
mov dword [esp], eax
and edi, 0xfffffffe
mov dword [esp + 4], ecx
mov ecx, ebx
call method.NTR_MMU.write_u8_unsigned_int__unsigned_char_
mov eax, esi
mov ecx, ebx
sub esp, 8
movzx esi, al
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], edi
add esp, 0x10
pop ebx
pop esi
pop edi
jmp method.NTR_MMU.write_u8_unsigned_int__unsigned_char_

Function at 0x535040
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x10
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov edx, esi
mov edi, eax
or eax, 3
shr edx, 0x18
mov dword [esp], eax
and edi, 0xfffffffc
mov dword [esp + 4], edx
call method.NTR_MMU.write_u8_unsigned_int__unsigned_char_
mov ecx, esi
lea edx, [edi + 2]
shr ecx, 0x10
sub esp, 8
movzx eax, cl
mov dword [esp], edx
mov ecx, ebx
mov dword [esp + 4], eax
call method.NTR_MMU.write_u8_unsigned_int__unsigned_char_
mov ecx, esi
lea edx, [edi + 1]
sub esp, 8
movzx eax, ch
mov ecx, ebx
mov dword [esp + 4], eax
mov dword [esp], edx
call method.NTR_MMU.write_u8_unsigned_int__unsigned_char_
mov ecx, esi
sub esp, 8
movzx esi, cl
mov ecx, ebx
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], edi
add esp, 0x10
pop ebx
pop esi
pop edi
jmp method.NTR_MMU.write_u8_unsigned_int__unsigned_char_
Function at 0x538300
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebx
sub esp, 0x18
mov ebx, dword [esp + 0x20]
cmp bl, 0xf
ja case.default.0x538314
movzx eax, bl
jmp dword [eax*4 + 0x613700]
cmp dword [ecx], 6
ja case.default.0x5383ff
mov edx, dword [ecx]
jmp dword [edx*4 + 0x613740]
mov eax, dword [ecx + 0x44]
add esp, 0x18
pop ebx
ret 4
mov eax, dword [ecx + 8]
jmp 0x53833b
mov eax, dword [ecx + 0xc]
jmp 0x53833b
mov eax, dword [ecx + 0x10]
jmp 0x53833b
mov eax, dword [ecx + 0x14]
jmp 0x53833b
mov eax, dword [ecx + 0x18]
jmp 0x53833b
mov eax, dword [ecx + 0x1c]
jmp 0x53833b
mov eax, dword [ecx + 0x20]
jmp 0x53833b
mov eax, dword [ecx + 0x24]
jmp 0x53833b
cmp dword [ecx], 2
je 0x538458
mov eax, dword [ecx + 0x28]
jmp 0x53833b
cmp dword [ecx], 2
je 0x538470
mov eax, dword [ecx + 0x2c]
jmp 0x53833b
cmp dword [ecx], 2
je 0x538460
mov eax, dword [ecx + 0x30]
jmp 0x53833b
cmp dword [ecx], 2
je 0x538490
mov eax, dword [ecx + 0x34]
jmp 0x53833b
cmp dword [ecx], 2
je 0x538480
mov eax, dword [ecx + 0x38]
jmp 0x53833b
cmp dword [ecx], 6
ja case.default.0x5383ff
mov ebx, dword [ecx]
jmp dword [ebx*4 + 0x61375c]
mov dword [esp + 8], 0x44
mov dword [esp + 4], str.CPU::Error___ARM7_tried_to_access_invalid_general_purpose_register:
mov dword [esp], sym.imp.libstdc_6.dll_std::cout
call sym.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__int_
movzx ecx, bl
mov dword [esp], ecx
mov ecx, sym.imp.libstdc_6.dll_std::cout
call sym.std::ostream::operator___int_
sub esp, 4
mov dword [esp + 8], 1
mov dword [esp + 4], 0x6136fd
mov dword [esp], eax
call sym.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__int_
xor eax, eax
jmp 0x53833b
mov eax, dword [ecx + 0x4c]
jmp 0x53833b
mov eax, dword [ecx + 0x54]
jmp 0x53833b
mov eax, dword [ecx + 0x50]
jmp 0x53833b
mov eax, dword [ecx + 0x5c]
jmp 0x53833b
mov eax, dword [ecx + 0x58]
jmp 0x53833b
mov eax, dword [ecx + 0x40]
jmp 0x53833b
mov eax, dword [ecx + 0x3c]
jmp 0x53833b
mov eax, dword [ecx + 0x70]
jmp 0x53833b
mov eax, dword [ecx + 0x64]
jmp 0x53833b
mov eax, dword [ecx + 0x94]
jmp 0x53833b
mov eax, dword [ecx + 0x90]
jmp 0x53833b
mov eax, dword [ecx + 0x6c]
jmp 0x53833b
mov eax, dword [ecx + 0x60]
jmp 0x53833b
mov eax, dword [ecx + 0x88]
jmp 0x53833b
mov eax, dword [ecx + 0x7c]
jmp 0x53833b
mov eax, dword [ecx + 0x84]
jmp 0x53833b
mov eax, dword [ecx + 0x78]
jmp 0x53833b
Function at 0x53a940
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push edi
pxor xmm0, xmm0
lea edi, [esp + 8]
and esp, 0xfffffff0
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x2c
cmp byte [0x65333e], 0
mov dword [ecx + 0x40], 0
mov dword [ecx + 0x38], 0
movups xmmword [ecx + 8], xmm0
movups xmmword [ecx + 0x18], xmm0
movups xmmword [ecx + 0x28], xmm0
je 0x53abd0
cmp byte [0x65333d], 1
sbb eax, eax
and eax, 0x380fd80
cmp byte [0x65333d], 1
sbb esi, esi
and esi, 0x380ffc0
cmp byte [0x65333d], 1
sbb ecx, ecx
and ecx, 0x380ff80
cmp byte [0x65333d], 1
sbb edx, edx
and edx, 0x8000000
cmp byte [0x65333d], 1
sbb edi, edi
and edi, 0xffffff8c
add edi, 0xd3
cmp byte [0x65333d], 1
mov dword [ebp - 0x1c], edi
sbb edi, edi
and edi, 0xfffffffe
add edi, 3
mov dword [ebx + 0x90], eax
pxor xmm1, xmm1
mov dword [ebx + 0x78], eax
mov dword [ebx + 0x60], eax
mov dword [ebx + 0x3c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebx + 0x6c], esi
mov esi, dword [ebx + 0x6a0]
mov dword [ebx + 0x84], ecx
mov dword [ebx + 0x44], edx
mov dword [ebx + 0x48], eax
mov dword [ebx], edi
mov dword [ebx + 0x68], 0
mov dword [ebx + 0x64], 0
mov dword [ebx + 0x5c], 0
mov dword [ebx + 0x74], 0
mov dword [ebx + 0x70], 0
mov dword [ebx + 0x80], 0
mov dword [ebx + 0x7c], 0
mov dword [ebx + 0x8c], 0
mov dword [ebx + 0x88], 0
mov dword [ebx + 0x98], 0
mov dword [ebx + 0x94], 0
mov byte [ebx + 0x9c], 0
mov dword [ebx + 0x9e], 0
mov byte [ebx + 0xa2], 0
mov dword [ebx + 0xa4], 0
mov dword [ebx + 4], 0
movups xmmword [ebx + 0x4c], xmm1
cmp dword [ebx + 0x6a4], esi
je 0x53aaa4
mov dword [ebx + 0x6a4], esi
mov dword [esp], 4
lea ecx, [ebx + 0x6a0]
mov edi, 1
call method.std::vector_nds_timer__std::allocator_nds_timer___._M_default_append_unsigned_int_
mov ecx, dword [ebx + 0x6a0]
mov eax, 1
sub esp, 4
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 0
mov dword [ecx + 0x28], 0
mov dword [ecx + 0x2c], 0
mov dword [ecx + 0x30], 0
mov dword [ecx + 0x34], 0
mov dword [ecx + 0x3c], 0
mov dword [ecx + 0x40], 0
mov dword [ecx + 0x44], 0
mov dword [ecx + 0x48], 0
mov ecx, ebx
call method.NTR_ARM7.setup_cpu_timing__
movzx edx, word [0x613b12]
movdqu xmm2, xmmword [0x613b00]
mov dword [ebx + 0xb8], edi
mov dword [ebx + 0xc4], 0
mov dword [ebx + 0xc8], 0
mov dword [ebx + 0xcc], 0
mov dword [ebx + 0xd0], 0
mov byte [ebx + 0x154], 0
mov byte [ebx + 0x9d], 0
mov word [ebx + 0xc0], dx
mov dword [ebx + 0xbc], eax
mov dword [ebx + 0x158], 0
movups xmmword [ebx + 0xa8], xmm2
mov dword [esp + 8], 0x18
mov dword [esp + 4], str.CPU::ARM7___Initialized_n
mov dword [esp], sym.imp.libstdc_6.dll_std::cout
call sym.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__int_
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
mov eax, 0x380fd80
mov esi, 0x380ffc0
mov ecx, 0x380ff80
mov dword [ebp - 0x1c], 0x5f
mov edx, 0x8000000
mov edi, 1
jmp 0x53a9e0
Function at 0x53dfb0
Capabilities:
Inspect section memory permissions

Disassembly:
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x20
mov esi, dword [esp + 0x30]
mov edi, esi
and edi, 7
mov dword [esp], edi
call method.NTR_ARM7.get_reg_unsigned_char__const
mov ecx, ebx
sub esp, 4
mov dword [esp + 0x1c], eax
mov eax, esi
shr si, 6
shr ax, 3
and esi, 0xf
and eax, 7
mov dword [esp], eax
call method.NTR_ARM7.get_reg_unsigned_char__const
mov edx, dword [ebx + 0x48]
sub esp, 4
mov ecx, edx
shr ecx, 0x1d
and ecx, 1
jmp dword [esi*4 + 0x61409c]

Function at 0x540af0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebx
sub esp, 0x18
mov ebx, dword [esp + 0x20]
cmp bl, 0xf
ja case.default.0x540b04
movzx eax, bl
jmp dword [eax*4 + 0x6141f0]
cmp dword [ecx], 6
ja case.default.0x540bef
mov edx, dword [ecx]
jmp dword [edx*4 + 0x614230]
mov eax, dword [ecx + 0x44]
add esp, 0x18
pop ebx
ret 4
mov eax, dword [ecx + 8]
jmp 0x540b2b
mov eax, dword [ecx + 0xc]
jmp 0x540b2b
mov eax, dword [ecx + 0x10]
jmp 0x540b2b
mov eax, dword [ecx + 0x14]
jmp 0x540b2b
mov eax, dword [ecx + 0x18]
jmp 0x540b2b
mov eax, dword [ecx + 0x1c]
jmp 0x540b2b
mov eax, dword [ecx + 0x20]
jmp 0x540b2b
mov eax, dword [ecx + 0x24]
jmp 0x540b2b
cmp dword [ecx], 2
je 0x540c48
mov eax, dword [ecx + 0x28]
jmp 0x540b2b
cmp dword [ecx], 2
je 0x540c60
mov eax, dword [ecx + 0x2c]
jmp 0x540b2b
cmp dword [ecx], 2
je 0x540c50
mov eax, dword [ecx + 0x30]
jmp 0x540b2b
cmp dword [ecx], 2
je 0x540c80
mov eax, dword [ecx + 0x34]
jmp 0x540b2b
cmp dword [ecx], 2
je 0x540c70
mov eax, dword [ecx + 0x38]
jmp 0x540b2b
cmp dword [ecx], 6
ja case.default.0x540bef
mov ebx, dword [ecx]
jmp dword [ebx*4 + 0x61424c]
mov dword [esp + 8], 0x44
mov dword [esp + 4], str.CPU::Error___ARM9_tried_to_access_invalid_general_purpose_register:
mov dword [esp], sym.imp.libstdc_6.dll_std::cout
call sym.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__int_
movzx ecx, bl
mov dword [esp], ecx
mov ecx, sym.imp.libstdc_6.dll_std::cout
call sym.std::ostream::operator___int_
sub esp, 4
mov dword [esp + 8], 1
mov dword [esp + 4], 0x6141ed
mov dword [esp], eax
call sym.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__int_
xor eax, eax
jmp 0x540b2b
mov eax, dword [ecx + 0x4c]
jmp 0x540b2b
mov eax, dword [ecx + 0x54]
jmp 0x540b2b
mov eax, dword [ecx + 0x50]
jmp 0x540b2b
mov eax, dword [ecx + 0x5c]
jmp 0x540b2b
mov eax, dword [ecx + 0x58]
jmp 0x540b2b
mov eax, dword [ecx + 0x40]
jmp 0x540b2b
mov eax, dword [ecx + 0x3c]
jmp 0x540b2b
mov eax, dword [ecx + 0x70]
jmp 0x540b2b
mov eax, dword [ecx + 0x64]
jmp 0x540b2b
mov eax, dword [ecx + 0x94]
jmp 0x540b2b
mov eax, dword [ecx + 0x90]
jmp 0x540b2b
mov eax, dword [ecx + 0x6c]
jmp 0x540b2b
mov eax, dword [ecx + 0x60]
jmp 0x540b2b
mov eax, dword [ecx + 0x88]
jmp 0x540b2b
mov eax, dword [ecx + 0x7c]
jmp 0x540b2b
mov eax, dword [ecx + 0x84]
jmp 0x540b2b
mov eax, dword [ecx + 0x78]
jmp 0x540b2b
Function at 0x547b10
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x2c
mov esi, dword [esp + 0x40]
mov edi, esi
and edi, 7
mov dword [esp], edi
call method.NTR_ARM9.get_reg_unsigned_char__const
mov ecx, ebx
sub esp, 4
mov dword [esp + 0x1c], eax
mov eax, esi
shr si, 6
shr ax, 3
and esi, 0xf
and eax, 7
mov dword [esp], eax
call method.NTR_ARM9.get_reg_unsigned_char__const
mov edx, dword [ebx + 0x48]
sub esp, 4
mov ecx, edx
shr ecx, 0x1d
and ecx, 1
jmp dword [esi*4 + 0x614d58]

Function at 0x54a6b0
Capabilities:
Inspect section memory permissions

Disassembly:
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x10
mov eax, dword [esp + 0x20]
movzx esi, al
shr ax, 8
lea edx, [esi + esi]
mov ecx, edx
mov edi, edx
or ecx, 0xfffffe00
test dh, 1
cmovne edi, ecx
and eax, 0xf
jmp dword [eax*4 + 0x614e04]
Function at 0x55c2b0
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff0
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
mov edi, ecx
push esi
push ebx
sub esp, 0x4c
mov dword [ebp - 0x3c], ecx
mov dword [esp], 0
call method.NTR_ARM9.get_reg_unsigned_char__const
mov ecx, edi
sub esp, 4
mov ebx, eax
mov dword [esp], 1
call method.NTR_ARM9.get_reg_unsigned_char__const
mov ecx, edi
sub esp, 4
and eax, 0xfffffffe
mov dword [esp], 2
mov esi, eax
call method.NTR_ARM9.get_reg_unsigned_char__const
movdqu xmm0, xmmword [0x615850]
movdqu xmm1, xmmword [0x615860]
sub esp, 4
shr eax, 1
movups xmmword [ebp - 0x38], xmm0
movups xmmword [ebp - 0x28], xmm1
je 0x55c3c1
lea eax, [esi + eax*2]
mov dword [ebp - 0x40], eax
lea esi, [esi]
nop
mov edx, dword [ebp - 0x3c]
mov edi, ebx
shr di, 4
mov ecx, dword [edx + 0x160]
mov dword [esp], esi
add esi, 2
call method.NTR_MMU.read_u16_unsigned_int_
movzx ecx, ax
mov eax, ebx
sub esp, 4
mov ebx, ecx
and eax, 0xf
mov edx, ecx
and ebx, 0xf
movzx eax, word [ebp + eax*2 - 0x38]
shr dx, 0xc
xor ax, word [ebp + ebx*2 - 0x38]
mov ebx, ecx
sar ecx, 8
movzx edx, dx
xor eax, edi
sar ebx, 4
and ecx, 0xf
mov edi, eax
and ebx, 0xf
shr ax, 4
and edi, 0xf
xor ax, word [ebp + ebx*2 - 0x38]
movzx ebx, word [ebp + edx*2 - 0x38]
xor ax, word [ebp + edi*2 - 0x38]
mov edi, eax
shr ax, 4
xor ax, word [ebp + ecx*2 - 0x38]
and edi, 0xf
xor ax, word [ebp + edi*2 - 0x38]
mov ecx, eax
shr ax, 4
and ecx, 0xf
xor ebx, eax
xor bx, word [ebp + ecx*2 - 0x38]
cmp dword [ebp - 0x40], esi
jne 0x55c330
movzx esi, bx
mov dword [esp], 0
mov dword [esp + 4], esi
mov ecx, dword [ebp - 0x3c]
call method.NTR_ARM9.set_reg_unsigned_char__unsigned_int_
sub esp, 8
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
Function at 0x55d3b0
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff0
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
mov edi, ecx
push esi
push ebx
sub esp, 0x4c
mov dword [ebp - 0x3c], ecx
mov dword [esp], 0
call method.NTR_ARM7.get_reg_unsigned_char__const
mov ecx, edi
sub esp, 4
mov ebx, eax
mov dword [esp], 1
call method.NTR_ARM7.get_reg_unsigned_char__const
mov ecx, edi
sub esp, 4
and eax, 0xfffffffe
mov dword [esp], 2
mov esi, eax
call method.NTR_ARM7.get_reg_unsigned_char__const
movdqu xmm0, xmmword [0x615850]
movdqu xmm1, xmmword [0x615860]
sub esp, 4
shr eax, 1
movups xmmword [ebp - 0x38], xmm0
movups xmmword [ebp - 0x28], xmm1
je 0x55d4c1
lea eax, [esi + eax*2]
mov dword [ebp - 0x40], eax
lea esi, [esi]
nop
mov edx, dword [ebp - 0x3c]
mov edi, ebx
shr di, 4
mov ecx, dword [edx + 0x158]
mov dword [esp], esi
add esi, 2
call method.NTR_MMU.read_u16_unsigned_int_
movzx ecx, ax
mov eax, ebx
sub esp, 4
mov ebx, ecx
and eax, 0xf
mov edx, ecx
and ebx, 0xf
movzx eax, word [ebp + eax*2 - 0x38]
shr dx, 0xc
xor ax, word [ebp + ebx*2 - 0x38]
mov ebx, ecx
sar ecx, 8
movzx edx, dx
xor eax, edi
sar ebx, 4
and ecx, 0xf
mov edi, eax
and ebx, 0xf
shr ax, 4
and edi, 0xf
xor ax, word [ebp + ebx*2 - 0x38]
movzx ebx, word [ebp + edx*2 - 0x38]
xor ax, word [ebp + edi*2 - 0x38]
mov edi, eax
shr ax, 4
xor ax, word [ebp + ecx*2 - 0x38]
and edi, 0xf
xor ax, word [ebp + edi*2 - 0x38]
mov ecx, eax
shr ax, 4
and ecx, 0xf
xor ebx, eax
xor bx, word [ebp + ecx*2 - 0x38]
cmp dword [ebp - 0x40], esi
jne 0x55d430
movzx esi, bx
mov dword [esp], 0
mov dword [esp + 4], esi
mov ecx, dword [ebp - 0x3c]
call method.NTR_ARM7.set_reg_unsigned_char__unsigned_int_
sub esp, 8
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
Function at 0x565be0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
lea ebp, [ecx + 8]
push edi
push esi
push ebx
sub esp, 0x2c
mov dword [ecx], ebp
mov edi, dword [esp + 0x40]
test edi, edi
je 0x565c7c
mov dword [esp], edi
mov ebx, ecx
call sym._strlen
mov dword [esp + 0x1c], eax
mov esi, eax
cmp eax, 0xf
ja 0x565c40
cmp eax, 1
jne 0x565c30
movzx edx, byte [edi]
mov byte [ebx + 8], dl
mov dword [ebx + 4], eax
mov byte [ebp + eax], 0
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret 4
test eax, eax
je 0x565c18
jmp 0x565c64
lea eax, [esp + 0x1c]
mov dword [esp + 4], 0
mov ecx, ebx
mov dword [esp], eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::_M_create_unsigned_int__unsigned_int_
sub esp, 8
mov dword [ebx], eax
mov ebp, eax
mov ecx, dword [esp + 0x1c]
mov dword [ebx + 8], ecx
mov dword [esp], ebp
mov dword [esp + 8], esi
mov dword [esp + 4], edi
call sym._memcpy
mov eax, dword [esp + 0x1c]
mov ebp, dword [ebx]
jmp 0x565c18
mov dword [esp], str.basic_string:_construction_from_null_is_not_valid
call sym.std::__throw_logic_error_char_const_
lea esi, [esi]
nop

Function at 0x565c90
Capabilities:
Inspect section memory permissions

Disassembly:
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0x10
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
mov esi, dword [ebx + ecx + 0x7c]
test esi, esi
je 0x565cfc
cmp byte [esi + 0x1c], 0
mov edi, edx
je 0x565cd0
movsx eax, byte [esi + 0x27]
mov dword [esp + 4], edi
mov dword [esp], ebx
mov dword [esp + 8], eax
call sym.std::basic_istream_char__std::char_traits_char____std::getline_char__std::char_traits_char___std::allocator_char____std::basic_istream_char__std::char_traits_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____char_
add esp, 0x10
pop ebx
pop esi
pop edi
ret
mov ecx, esi
call sym.std::ctype_char_::_M_widen_init___const
mov edx, dword [esi]
mov eax, 0xa
mov edx, dword [edx + 0x18]
cmp edx, method.std::ctype_char_.do_widen_char__const
je 0x565cb1
mov dword [esp], 0xa
mov ecx, esi
call edx
sub esp, 4
movsx eax, al
jmp 0x565cb1
call sym.std::__throw_bad_cast__
nop
lea esi, [esi]
lea esi, [esi]
Function at 0x567540
Capabilities:
Inspect section memory permissions

Disassembly:
mov edx, dword [ecx]
add ecx, dword [edx - 0x40]
jmp method.NTR_core.debug_display___const
Function at 0x578ba0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov edx, dword [ecx]
add ecx, dword [edx - 0x3c]
jmp method.NTR_core.debug_step__
Function at 0x5a0000
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
lea ebp, [ecx + 8]
push edi
push esi
push ebx
sub esp, 0x2c
mov dword [ecx], ebp
mov edi, dword [esp + 0x40]
test edi, edi
je 0x5a009c
mov dword [esp], edi
mov ebx, ecx
call sym._strlen
mov dword [esp + 0x1c], eax
mov esi, eax
cmp eax, 0xf
ja 0x5a0060
cmp eax, 1
jne 0x5a0050
movzx edx, byte [edi]
mov byte [ebx + 8], dl
mov dword [ebx + 4], eax
mov byte [ebp + eax], 0
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret 4
test eax, eax
je 0x5a0038
jmp 0x5a0084
lea eax, [esp + 0x1c]
mov dword [esp + 4], 0
mov ecx, ebx
mov dword [esp], eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::_M_create_unsigned_int__unsigned_int_
sub esp, 8
mov dword [ebx], eax
mov ebp, eax
mov ecx, dword [esp + 0x1c]
mov dword [ebx + 8], ecx
mov dword [esp], ebp
mov dword [esp + 8], esi
mov dword [esp + 4], edi
call sym._memcpy
mov eax, dword [esp + 0x1c]
mov ebp, dword [ebx]
jmp 0x5a0038
mov dword [esp], 0x619a7c
call sym.std::__throw_logic_error_char_const_
lea esi, [esi]
nop

Function at 0x5a0bf0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov edx, dword [ecx]
add ecx, dword [edx - 0x3c]
jmp method.MIN_core.debug_step__