joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4a8bb0
Capabilities:
Parse pe header

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [esp + 0x10]
or ebx, 0xffffffff
push edi
xor edi, edi
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0x3c
jne 0x4a8e89
cmp byte [eax + 1], 0x21
jne 0x4a8e89
cmp byte [eax + 2], 0x45
jne 0x4a8e89
cmp byte [eax + 3], 0x4c
jne 0x4a8e89
cmp byte [eax + 4], 0x45
jne 0x4a8e89
cmp byte [eax + 5], 0x4d
jne 0x4a8e89
cmp byte [eax + 6], 0x45
jne 0x4a8e89
cmp byte [eax + 7], 0x4e
jne 0x4a8e89
cmp byte [eax + 8], 0x54
jne 0x4a8e89
mov eax, dword [ecx + 0x38]
add dword [esi + 0xc8], 9
add dword [ecx + 0x10], 9
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x24]
add dword [eax + 0x20], 9
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0
jne 0x4a8c4e
push 0xfa
push ecx
call fcn.004c19d0
add esp, 8
push esi
call fcn.004b1e70
add esp, 4
test eax, eax
jne 0x4a8c73
push str.Space_required_after_ELEMENT_n
push 0x41
push esi
call fcn.004a2c80
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
ret
push esi
call fcn.004ac2d0
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x4a8c9a
push str.xmlParseElementDecl:_no_name_for_Element_n
push 0x44
push esi
call fcn.004a2c80
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
ret
push esi
call fcn.004b1e70
add esp, 4
test eax, eax
jne 0x4a8cb7
push str.Space_required_after_the_element_name_n
push 0x41
push esi
call fcn.004a2c80
add esp, 0xc
mov edx, dword [esi + 0x24]
mov eax, dword [edx + 0x10]
mov cl, byte [eax]
cmp cl, 0x45
jne 0x4a8d11
cmp byte [eax + 1], 0x4d
jne 0x4a8d11
cmp byte [eax + 2], 0x50
jne 0x4a8d11
cmp byte [eax + 3], 0x54
jne 0x4a8d11
cmp byte [eax + 4], 0x59
jne 0x4a8d11
add dword [esi + 0xc8], 5
add dword [edx + 0x10], 5
mov eax, dword [esi + 0x24]
add dword [eax + 0x20], 5
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0
jne 0x4a8d07
push 0xfa
push ecx
call fcn.004c19d0
add esp, 8
mov ebx, 1
jmp 0x4a8e03
cmp cl, 0x41
jne 0x4a8d57
cmp byte [eax + 1], 0x4e
jne 0x4a8d57
cmp byte [eax + 2], 0x59
jne 0x4a8d57
add dword [esi + 0xc8], 3
add dword [edx + 0x10], 3
mov eax, dword [esi + 0x24]
add dword [eax + 0x20], 3
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0
jne 0x4a8d4d
push 0xfa
push ecx
call fcn.004c19d0
add esp, 8
mov ebx, 2
jmp 0x4a8e03
cmp cl, 0x28
jne 0x4a8eff
mov ebx, dword [edx + 0x38]
xor edi, edi
push esi
call fcn.004c1530
add esp, 4
cmp dword [esi + 0x124], edi
jne 0x4a8d90
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x14]
sub ecx, dword [eax + 0x10]
cmp ecx, 0xfa
jge 0x4a8d90
push esi
invalid
Function at 0x4ba220
Capabilities:
Create thread
Get thread local storage value
Set thread local storage value

Disassembly:
call fcn.004ba4e0
push dword [0x6b2274]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
jne 0x4ba308
push esi
push edi
push 0x204
call fcn.00596ade
mov edi, eax
add esp, 4
test edi, edi
jne 0x4ba26d
call fcn.004b8c00
mov esi, eax
call fcn.004b8c20
push str.xmlGetGlobalState:_out_of_memory_n
push dword [eax]
mov eax, dword [esi]
call eax
add esp, 8
xor eax, eax
pop edi
pop esi
ret
push ebx
push 0x204
push 0
push edi
call fcn.0058a1a0
push edi
call fcn.004b8e10
push 8
call fcn.00596ade
mov ebx, eax
add esp, 0x14
test ebx, ebx
jne 0x4ba2c3
call fcn.004b8c00
mov esi, eax
call fcn.004b8c20
push str.xmlGetGlobalState:_out_of_memory_n
push dword [eax]
mov eax, dword [esi]
call eax
lea eax, [edi + 0x1c4]
push eax
call fcn.004b8a90
push edi
call fcn.005963f4
add esp, 0x10
xor eax, eax
pop ebx
pop edi
pop esi
ret
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push 2
push 1
push 0
push ebx
mov dword [ebx + 4], edi
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
push edi
push dword [0x6b2274]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push ebx
push 0
push 0x4ba310
call fcn.0059da8d
add esp, 0xc
mov eax, edi
pop ebx
pop edi
pop esi
ret

Function at 0x4ba4e0
Capabilities:
Allocate thread local storage

Disassembly:
cmp dword [0x6b8180], 0
jne 0x4ba540
mov eax, 1
lock xadd dword [0x6b8184], eax
inc eax
cmp eax, 1
jne 0x4ba522
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x6b2274], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x6b817c], eax
call fcn.004bb880
mov dword [0x6b8180], 1
ret
cmp dword [0x6b8180], 0
jne 0x4ba540
push esi
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0
call esi
cmp dword [0x6b8180], 0
je 0x4ba532
pop esi
ret

Function at 0x4bb9b0
Capabilities:
Encode data using xor

Disassembly:
push esi
mov esi, dword [esp + 0xc]
push edi
test esi, esi
jle 0x4bb9fb
mov edi, dword [esp + 0xc]
test edi, edi
je 0x4bb9fb
mov ecx, dword [esp + 0x14]
xor edx, edx
test esi, esi
jle 0x4bb9e8
nop dword [eax]
movzx eax, byte [edx + edi]
inc edx
add eax, ecx
imul ecx, eax, 0x401
mov eax, ecx
shr eax, 6
xor ecx, eax
cmp edx, esi
jl 0x4bb9d0
lea ecx, [ecx + ecx*8]
mov eax, ecx
shr eax, 0xb
xor eax, ecx
pop edi
imul eax, eax, 0x8001
pop esi
ret
pop edi
xor eax, eax
pop esi
ret
Function at 0x4bba00
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword [esp + 0x14]
xor edx, edx
push esi
mov esi, dword [esp + 0xc]
push edi
test esi, esi
jle 0x4bba2c
mov edi, dword [esp + 0xc]
movzx eax, byte [edx + edi]
inc edx
add eax, ecx
imul ecx, eax, 0x401
mov eax, ecx
shr eax, 6
xor ecx, eax
cmp edx, esi
jl 0x4bba14
mov esi, dword [esp + 0x18]
lea eax, [ecx + 0x3a]
imul ecx, eax, 0x401
xor edx, edx
mov eax, ecx
shr eax, 6
xor ecx, eax
test esi, esi
jle 0x4bba68
mov edi, dword [esp + 0x14]
nop word [eax + eax]
movzx eax, byte [edx + edi]
inc edx
add eax, ecx
imul ecx, eax, 0x401
mov eax, ecx
shr eax, 6
xor ecx, eax
cmp edx, esi
jl 0x4bba50
lea ecx, [ecx + ecx*8]
mov eax, ecx
shr eax, 0xb
xor eax, ecx
pop edi
imul eax, eax, 0x8001
pop esi
ret
Function at 0x4bcc00
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
mov esi, dword [esp + 0x10]
xor eax, eax
test esi, esi
je 0x4bcc3c
mov bl, byte [esi]
movzx ecx, bl
mov eax, ecx
shl eax, 4
sub eax, ecx
add eax, eax
test bl, bl
je 0x4bcc3c
nop
mov edx, eax
lea esi, [esi + 1]
mov ecx, eax
shl edx, 5
shr ecx, 3
add edx, ecx
movsx ecx, bl
mov bl, byte [esi]
add edx, ecx
xor eax, edx
test bl, bl
jne 0x4bcc20
mov esi, dword [esp + 0x14]
mov edx, eax
mov ecx, eax
shl edx, 5
shr ecx, 3
add edx, ecx
xor eax, edx
test esi, esi
je 0x4bcc74
mov bl, byte [esi]
test bl, bl
je 0x4bcc74
mov edx, eax
lea esi, [esi + 1]
mov ecx, eax
shl edx, 5
shr ecx, 3
add edx, ecx
movsx ecx, bl
mov bl, byte [esi]
add edx, ecx
xor eax, edx
test bl, bl
jne 0x4bcc58
mov esi, dword [esp + 0x18]
mov edx, eax
mov ecx, eax
shl edx, 5
shr ecx, 3
add edx, ecx
xor eax, edx
test esi, esi
je 0x4bccac
mov bl, byte [esi]
test bl, bl
je 0x4bccac
mov edx, eax
lea esi, [esi + 1]
mov ecx, eax
shl edx, 5
shr ecx, 3
add edx, ecx
movsx ecx, bl
mov bl, byte [esi]
add edx, ecx
xor eax, edx
test bl, bl
jne 0x4bcc90
mov ecx, dword [esp + 0xc]
xor edx, edx
pop esi
pop ebx
div dword [ecx + 4]
mov eax, edx
ret
Function at 0x4bccc0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
mov esi, dword [esp + 0x14]
push edi
mov edi, dword [esp + 0x14]
test edi, edi
mov eax, edi
cmove eax, esi
movzx eax, byte [eax]
mov ecx, eax
shl ecx, 4
sub ecx, eax
add ecx, ecx
mov eax, ecx
test edi, edi
je 0x4bcd1d
mov bl, byte [edi]
test bl, bl
je 0x4bcd0c
nop word [eax + eax]
mov edx, eax
lea edi, [edi + 1]
mov ecx, eax
shl edx, 5
shr ecx, 3
add edx, ecx
movsx ecx, bl
mov bl, byte [edi]
add edx, ecx
xor eax, edx
test bl, bl
jne 0x4bccf0
mov ecx, eax
mov edx, eax
shr ecx, 3
shl edx, 5
add ecx, 0x3a
add ecx, edx
xor eax, ecx
test esi, esi
je 0x4bcd43
mov bl, byte [esi]
test bl, bl
je 0x4bcd43
mov edx, eax
lea esi, [esi + 1]
mov ecx, eax
shl edx, 5
shr ecx, 3
add edx, ecx
movsx ecx, bl
mov bl, byte [esi]
add edx, ecx
xor eax, edx
test bl, bl
jne 0x4bcd27
mov esi, dword [esp + 0x1c]
mov edx, eax
mov ecx, eax
shl edx, 5
shr ecx, 3
add edx, ecx
xor eax, edx
test esi, esi
je 0x4bcd8d
mov bl, byte [esi]
test bl, bl
je 0x4bcd7c
nop
mov edx, eax
lea esi, [esi + 1]
mov ecx, eax
shl edx, 5
shr ecx, 3
add edx, ecx
movsx ecx, bl
mov bl, byte [esi]
add edx, ecx
xor eax, edx
test bl, bl
jne 0x4bcd60
mov ecx, eax
mov edx, eax
shr ecx, 3
shl edx, 5
add ecx, 0x3a
add ecx, edx
xor eax, ecx
mov esi, dword [esp + 0x20]
test esi, esi
je 0x4bcdbc
mov bl, byte [esi]
test bl, bl
je 0x4bcdbc
nop dword [eax + eax]
mov edx, eax
lea esi, [esi + 1]
mov ecx, eax
shl edx, 5
shr ecx, 3
add edx, ecx
movsx ecx, bl
mov bl, byte [esi]
add edx, ecx
xor eax, edx
test bl, bl
jne 0x4bcda0
mov esi, dword [esp + 0x24]
mov edx, eax
mov ecx, eax
shl edx, 5
shr ecx, 3
add edx, ecx
xor eax, edx
test esi, esi
je 0x4bce05
mov bl, byte [esi]
test bl, bl
je 0x4bcdf4
mov edx, eax
lea esi, [esi + 1]
mov ecx, eax
shl edx, 5
shr ecx, 3
add edx, ecx
movsx ecx, bl
mov bl, byte [esi]
add edx, ecx
xor eax, edx
test bl, bl
jne 0x4bcdd8
mov ecx, eax
mov edx, eax
shr ecx, 3
shl edx, 5
add ecx, 0x3a
add ecx, edx
xor eax, ecx
mov esi, dword [esp + 0x28]
test esi, esi
je 0x4bce2f
mov bl, byte [esi]
test bl, bl
je 0x4bce2f
mov edx, eax
lea esi, [esi + 1]
mov ecx, eax
shl edx, 5
shr ecx, 3
add edx, ecx
movsx ecx, bl
mov bl, byte [esi]
add edx, ecx
xor eax, edx
test bl, bl
jne 0x4bce13
mov ecx, dword [esp + 0x10]
xor edx, edx
pop edi
pop esi
pop ebx
div dword [ecx + 4]
mov eax, edx
ret
Function at 0x4c54b0
Capabilities:
Parse credit card information

Disassembly:
push ebx
mov ebx, dword [esp + 0xc]
test ebx, ebx
jne 0x4c54be
or eax, 0xffffffff
pop ebx
ret
push esi
mov esi, dword [ebx]
push edi
mov edi, dword [esp + 0x10]
mov al, byte [esi]
cmp al, 0x61
jl 0x4c54d4
cmp al, 0x7a
jle 0x4c55ba
cmp al, 0x41
jl 0x4c54e0
cmp al, 0x5a
jle 0x4c55ba
cmp al, 0x30
jl 0x4c54ec
cmp al, 0x39
jle 0x4c55ba
cmp al, 0x2d
je 0x4c55ba
cmp al, 0x2e
je 0x4c55ba
cmp al, 0x5f
je 0x4c55ba
cmp al, 0x7e
je 0x4c55ba
cmp al, 0x25
jne 0x4c5552
mov cl, byte [esi + 1]
cmp cl, 0x30
jl 0x4c551d
cmp cl, 0x39
jle 0x4c552f
cmp cl, 0x61
jl 0x4c5527
cmp cl, 0x66
jle 0x4c552f
sub cl, 0x41
cmp cl, 5
ja 0x4c5596
mov cl, byte [esi + 2]
cmp cl, 0x30
jl 0x4c553c
cmp cl, 0x39
jle 0x4c55ba
cmp cl, 0x61
jl 0x4c5546
cmp cl, 0x66
jle 0x4c55ba
cmp cl, 0x41
jl 0x4c5596
cmp cl, 0x46
jle 0x4c55ba
jmp 0x4c5596
cmp al, 0x21
je 0x4c55ba
cmp al, 0x24
je 0x4c55ba
cmp al, 0x26
je 0x4c55ba
cmp al, 0x28
je 0x4c55ba
cmp al, 0x29
je 0x4c55ba
cmp al, 0x2a
je 0x4c55ba
cmp al, 0x2b
je 0x4c55ba
cmp al, 0x2c
je 0x4c55ba
cmp al, 0x3b
je 0x4c55ba
cmp al, 0x3d
je 0x4c55ba
cmp al, 0x27
je 0x4c55ba
cmp al, 0x3a
je 0x4c55ba
cmp al, 0x40
je 0x4c55ba
cmp al, 0x2f
je 0x4c55ba
cmp al, 0x3f
je 0x4c55ba
cmp al, 0x5b
je 0x4c55ba
cmp al, 0x5d
je 0x4c55ba
test edi, edi
je 0x4c5614
mov edx, dword [edi + 0x24]
test dl, 1
je 0x4c55d1
cmp al, 0x7b
je 0x4c55ba
cmp al, 0x7d
je 0x4c55ba
cmp al, 0x7c
je 0x4c55ba
cmp al, 0x5c
je 0x4c55ba
cmp al, 0x5e
je 0x4c55ba
cmp al, 0x60
jne 0x4c55d1
xor ecx, ecx
cmp al, 0x25
sete cl
lea esi, [esi + ecx*2]
inc esi
lea ecx, [ecx*2 + 1]
jmp 0x4c54c6
mov eax, dword [edi + 0x20]
test eax, eax
je 0x4c55e5
push eax
call dword [0x6b21ac]
mov edx, dword [edi + 0x24]
add esp, 4
mov ecx, dword [ebx]
mov eax, esi
sub eax, ecx
test dl, 2
je 0x4c5605
push eax
push ecx
call fcn.004b95c0
add esp, 8
mov dword [edi + 0x20], eax
mov dword [ebx], esi
xor eax, eax
pop edi
pop esi
pop ebx
push 0
push eax
push ecx
call fcn.004c7120
add esp, 0xc
mov dword [edi + 0x20], eax
pop edi
mov dword [ebx], esi
xor eax, eax
pop esi
pop ebx
ret
Function at 0x4c5620
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, dword [esp + 0xc]
push esi
push edi
mov edi, dword [ebp]
mov dword [esp + 0x14], edi
mov al, byte [edi]
cmp al, 0x2f
jne 0x4c56a2
cmp byte [edi + 1], al
jne 0x4c567c
mov esi, dword [esp + 0x10]
lea eax, [edi + 2]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
push esi
call fcn.004c5380
add esp, 8
test eax, eax
jne 0x4c5841
cmp dword [esi + 0xc], eax
jne 0x4c5666
mov dword [esi + 0x14], 0xffffffff
lea eax, [esp + 0x14]
push eax
push esi
call fcn.004c5a60
add esp, 8
test eax, eax
je 0x4c5695
pop edi
pop esi
pop ebp
ret
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x14]
call fcn.004c5b00
add esp, 8
test eax, eax
jne 0x4c5841
mov edi, dword [esp + 0x14]
xor eax, eax
mov dword [ebp], edi
pop edi
pop esi
pop ebp
ret
cmp al, 0x61
jl 0x4c56ae
cmp al, 0x7a
jle 0x4c578d
cmp al, 0x41
jl 0x4c56ba
cmp al, 0x5a
jle 0x4c578d
cmp al, 0x30
jl 0x4c56c6
cmp al, 0x39
jle 0x4c578d
cmp al, 0x2d
je 0x4c578d
cmp al, 0x2e
je 0x4c578d
cmp al, 0x5f
je 0x4c578d
cmp al, 0x7e
je 0x4c578d
cmp al, 0x25
jne 0x4c572c
mov cl, byte [edi + 1]
cmp cl, 0x30
jl 0x4c56f7
cmp cl, 0x39
jle 0x4c570b
cmp cl, 0x61
jl 0x4c5701
cmp cl, 0x66
jle 0x4c570b
cmp cl, 0x41
jl 0x4c572c
cmp cl, 0x46
jg 0x4c572c
mov cl, byte [edi + 2]
cmp cl, 0x30
jl 0x4c5718
cmp cl, 0x39
jle 0x4c578d
cmp cl, 0x61
jl 0x4c5722
cmp cl, 0x66
jle 0x4c578d
cmp cl, 0x41
jl 0x4c572c
cmp cl, 0x46
jle 0x4c578d
cmp al, 0x21
je 0x4c578d
cmp al, 0x24
je 0x4c578d
cmp al, 0x26
je 0x4c578d
cmp al, 0x28
je 0x4c578d
cmp al, 0x29
je 0x4c578d
cmp al, 0x2a
je 0x4c578d
cmp al, 0x2b
je 0x4c578d
cmp al, 0x2c
je 0x4c578d
cmp al, 0x3b
je 0x4c578d
cmp al, 0x3d
je 0x4c578d
cmp al, 0x27
je 0x4c578d
cmp al, 0x3a
je 0x4c578d
cmp al, 0x40
je 0x4c578d
mov esi, dword [esp + 0x10]
test esi, esi
je 0x4c583c
mov eax, dword [esi + 0x18]
test eax, eax
je 0x4c577d
push eax
call dword [0x6b21ac]
add esp, 4
mov dword [esi + 0x18], 0
xor eax, eax
mov dword [ebp], edi
pop edi
pop esi
pop ebp
ret
push 0
lea eax, [esp + 0x18]
mov dword [esp + 0x18], edi
push 0
push eax
call fcn.004c5fa0
add esp, 0xc
test eax, eax
jne 0x4c5841
mov esi, dword [esp + 0x14]
cmp byte [esi], 0x2f
jne 0x4c57d6
push 1
lea eax, [esp + 0x18]
inc esi
push 0
push eax
mov dword [esp + 0x20], esi
call fcn.004c5fa0
add esp, 0xc
test eax, eax
jne 0x4c5841
mov esi, dword [esp + 0x14]
cmp byte [esi], 0x2f
je 0x4c57b3
push ebx
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x4c5839
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x4c57f0
push eax
call dword [0x6b21ac]
add esp, 4
cmp esi, edi
je 0x4c5832
mov eax, esi
sub eax, edi
test byte [ebx + 0x24], 2
je 0x4c5817
push eax
push edi
call fcn.004b95c0
add esp, 8
mov dword [ebx + 0x18], eax
mov edi, esi
xor eax, eax
mov dword [ebp], edi
pop ebx
pop edi
pop esi
pop ebp
ret
push 0
push eax
push edi
call fcn.004c7120
add esp, 0xc
mov dword [ebx + 0x18], eax
mov edi, esi
xor eax, eax
mov dword [ebp], edi
pop ebx
pop edi
pop esi
pop ebp
ret
mov dword [ebx + 0x18], 0
mov edi, esi
pop ebx
mov dword [ebp], edi
xor eax, eax
pop edi
pop esi
pop ebp
ret
Function at 0x4c5850
Capabilities:
Parse credit card information

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0x10]
push esi
mov esi, dword [ebp]
mov ebx, esi
mov dword [esp + 0x14], esi
mov al, byte [esi]
cmp al, 0x5b
jne 0x4c58fe
mov al, byte [esi + 1]
inc esi
mov edx, esi
cmp al, 0x5d
je 0x4c588a
mov ecx, esi
mov edx, ecx
test al, al
je 0x4c58f0
mov al, byte [ecx + 1]
lea esi, [ecx + 1]
mov ecx, esi
mov edx, esi
cmp al, 0x5d
jne 0x4c5876
lea esi, [edx + 1]
push edi
mov edi, dword [esp + 0x14]
test edi, edi
je 0x4c5a55
mov eax, dword [edi + 8]
test eax, eax
je 0x4c58ab
push eax
call dword [0x6b21ac]
add esp, 4
mov eax, dword [edi + 0xc]
mov dword [edi + 8], 0
test eax, eax
je 0x4c58c3
push eax
call dword [0x6b21ac]
add esp, 4
cmp esi, ebx
je 0x4c5a4e
mov eax, esi
sub eax, ebx
test byte [edi + 0x24], 2
je 0x4c5a35
push eax
push ebx
call fcn.004b95c0
add esp, 8
mov dword [edi + 0xc], eax
mov dword [ebp], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret
cmp byte [esi], 0x5d
je 0x4c588a
pop esi
pop ebp
mov eax, 1
pop ebx
ret
cmp al, 0x30
jl 0x4c5973
cmp al, 0x39
jg 0x4c5973
lea eax, [esp + 0x14]
push eax
call fcn.004c5420
add esp, 4
test eax, eax
jne 0x4c5973
mov eax, dword [esp + 0x14]
cmp byte [eax], 0x2e
jne 0x4c5973
inc eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
call fcn.004c5420
add esp, 4
test eax, eax
jne 0x4c5973
mov eax, dword [esp + 0x14]
cmp byte [eax], 0x2e
jne 0x4c5973
lea eax, [esp + 0x14]
push eax
call fcn.004c5420
add esp, 4
test eax, eax
jne 0x4c5973
mov eax, dword [esp + 0x14]
cmp byte [eax], 0x2e
jne 0x4c5973
lea eax, [esp + 0x14]
push eax
call fcn.004c5420
add esp, 4
test eax, eax
jne 0x4c5973
mov esi, dword [esp + 0x14]
jmp 0x4c588d
mov al, byte [esi]
cmp al, 0x61
jl 0x4c5981
cmp al, 0x7a
jle 0x4c5a23
cmp al, 0x41
jl 0x4c598d
cmp al, 0x5a
jle 0x4c5a23
cmp al, 0x30
jl 0x4c5999
cmp al, 0x39
jle 0x4c5a23
cmp al, 0x2d
je 0x4c5a23
cmp al, 0x2e
je 0x4c5a23
cmp al, 0x5f
je 0x4c5a23
cmp al, 0x7e
je 0x4c5a23
cmp al, 0x25
jne 0x4c59f3
mov cl, byte [esi + 1]
cmp cl, 0x30
jl 0x4c59be
cmp cl, 0x39
jle 0x4c59d2
cmp cl, 0x61
jl 0x4c59c8
cmp cl, 0x66
jle 0x4c59d2
cmp cl, 0x41
jl 0x4c59f3
cmp cl, 0x46
jg 0x4c59f3
mov cl, byte [esi + 2]
cmp cl, 0x30
jl 0x4c59df
cmp cl, 0x39
jle 0x4c5a23
cmp cl, 0x61
jl 0x4c59e9
cmp cl, 0x66
jle 0x4c5a23
cmp cl, 0x41
jl 0x4c59f3
cmp cl, 0x46
jle 0x4c5a23
cmp al, 0x21
je 0x4c5a23
cmp al, 0x24
je 0x4c5a23
cmp al, 0x26
je 0x4c5a23
cmp al, 0x28
je 0x4c5a23
cmp al, 0x29
je 0x4c5a23
cmp al, 0x2a
je 0x4c5a23
cmp al, 0x2b
je 0x4c5a23
cmp al, 0x2c
je 0x4c5a23
cmp al, 0x3b
je 0x4c5a23
cmp al, 0x3d
je 0x4c5a23
cmp al, 0x27
jne 0x4c588d
cmp al, 0x25
jne 0x4c5a2f
add esi, 3
jmp 0x4c5973
inc esi
jmp 0x4c5973
push 0
push eax
push ebx
call fcn.004c7120
add esp, 0xc
mov dword [edi + 0xc], eax
mov dword [ebp], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret
mov dword [edi + 0xc], 0
pop edi
mov dword [ebp], esi
xor eax, eax
pop esi
pop ebp
pop ebx
ret
Function at 0x4c5bc0
Capabilities:
Parse credit card information

Disassembly:
push ebx
mov ebx, dword [esp + 0xc]
test ebx, ebx
jne 0x4c5bce
or eax, 0xffffffff
pop ebx
ret
push esi
mov esi, dword [ebx]
push edi
mov edi, dword [esp + 0x10]
mov al, byte [esi]
cmp al, 0x61
jl 0x4c5be4
cmp al, 0x7a
jle 0x4c5cd0
cmp al, 0x41
jl 0x4c5bf0
cmp al, 0x5a
jle 0x4c5cd0
cmp al, 0x30
jl 0x4c5bfc
cmp al, 0x39
jle 0x4c5cd0
cmp al, 0x2d
je 0x4c5cd0
cmp al, 0x2e
je 0x4c5cd0
cmp al, 0x5f
je 0x4c5cd0
cmp al, 0x7e
je 0x4c5cd0
cmp al, 0x25
jne 0x4c5c66
mov cl, byte [esi + 1]
cmp cl, 0x30
jl 0x4c5c2d
cmp cl, 0x39
jle 0x4c5c3f
cmp cl, 0x61
jl 0x4c5c37
cmp cl, 0x66
jle 0x4c5c3f
sub cl, 0x41
cmp cl, 5
ja 0x4c5ca2
mov cl, byte [esi + 2]
cmp cl, 0x30
jl 0x4c5c50
cmp cl, 0x39
jle 0x4c5cd0
cmp cl, 0x61
jl 0x4c5c5a
cmp cl, 0x66
jle 0x4c5cd0
cmp cl, 0x41
jl 0x4c5ca2
cmp cl, 0x46
jle 0x4c5cd0
jmp 0x4c5ca2
cmp al, 0x21
je 0x4c5cd0
cmp al, 0x24
je 0x4c5cd0
cmp al, 0x26
je 0x4c5cd0
cmp al, 0x28
je 0x4c5cd0
cmp al, 0x29
je 0x4c5cd0
cmp al, 0x2a
je 0x4c5cd0
cmp al, 0x2b
je 0x4c5cd0
cmp al, 0x2c
je 0x4c5cd0
cmp al, 0x3b
je 0x4c5cd0
cmp al, 0x3d
je 0x4c5cd0
cmp al, 0x27
je 0x4c5cd0
cmp al, 0x3a
je 0x4c5cd0
cmp al, 0x40
je 0x4c5cd0
cmp al, 0x2f
je 0x4c5cd0
cmp al, 0x3f
je 0x4c5cd0
test edi, edi
je 0x4c5d43
test byte [edi + 0x24], 1
je 0x4c5ce7
cmp al, 0x7b
je 0x4c5cd0
cmp al, 0x7d
je 0x4c5cd0
cmp al, 0x7c
je 0x4c5cd0
cmp al, 0x5c
je 0x4c5cd0
cmp al, 0x5e
je 0x4c5cd0
cmp al, 0x5b
je 0x4c5cd0
cmp al, 0x5d
je 0x4c5cd0
cmp al, 0x60
jne 0x4c5ce7
xor ecx, ecx
cmp al, 0x25
sete cl
lea esi, [esi + ecx*2]
inc esi
lea ecx, [ecx*2 + 1]
jmp 0x4c5bd6
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x4c5cf8
push eax
call dword [0x6b21ac]
add esp, 4
mov ecx, dword [ebx]
mov eax, esi
sub eax, ecx
test byte [edi + 0x24], 2
je 0x4c5d10
push eax
push ecx
call fcn.004b95c0
add esp, 8
jmp 0x4c5d1c
push 0
push eax
push ecx
call fcn.004c7120
add esp, 0xc
mov dword [edi + 0x1c], eax
mov eax, dword [edi + 0x28]
test eax, eax
je 0x4c5d30
push eax
call dword [0x6b21ac]
add esp, 4
mov ecx, dword [ebx]
mov eax, esi
sub eax, ecx
push eax
push ecx
call fcn.004b95c0
add esp, 8
mov dword [edi + 0x28], eax
pop edi
mov dword [ebx], esi
xor eax, eax
pop esi
pop ebx
Function at 0x4c5d50
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
push edi
mov edi, dword [esp + 0x14]
mov al, byte [edi]
cmp al, 0x2f
jne 0x4c5db3
cmp byte [edi + 1], 0x2f
lea eax, [esp + 0x14]
mov ebx, dword [esp + 0x10]
push eax
push ebx
jne 0x4c5d9a
add edi, 2
mov dword [esp + 0x1c], edi
call fcn.004c5380
add esp, 8
test eax, eax
jne 0x4c5f90
lea eax, [esp + 0x14]
push eax
push ebx
call fcn.004c5a60
add esp, 8
test eax, eax
je 0x4c5daa
pop edi
pop esi
pop ebx
ret
call fcn.004c5b00
add esp, 8
test eax, eax
jne 0x4c5f90
mov edi, dword [esp + 0x14]
jmp 0x4c5f37
cmp al, 0x61
jl 0x4c5dbf
cmp al, 0x7a
jle 0x4c5e9a
cmp al, 0x41
jl 0x4c5dcb
cmp al, 0x5a
jle 0x4c5e9a
cmp al, 0x30
jl 0x4c5dd7
cmp al, 0x39
jle 0x4c5e9a
cmp al, 0x2d
je 0x4c5e9a
cmp al, 0x2e
je 0x4c5e9a
cmp al, 0x5f
je 0x4c5e9a
cmp al, 0x7e
je 0x4c5e9a
cmp al, 0x25
jne 0x4c5e3d
mov cl, byte [edi + 1]
cmp cl, 0x30
jl 0x4c5e08
cmp cl, 0x39
jle 0x4c5e1c
cmp cl, 0x61
jl 0x4c5e12
cmp cl, 0x66
jle 0x4c5e1c
cmp cl, 0x41
jl 0x4c5e3d
cmp cl, 0x46
jg 0x4c5e3d
mov cl, byte [edi + 2]
cmp cl, 0x30
jl 0x4c5e29
cmp cl, 0x39
jle 0x4c5e9a
cmp cl, 0x61
jl 0x4c5e33
cmp cl, 0x66
jle 0x4c5e9a
cmp cl, 0x41
jl 0x4c5e3d
cmp cl, 0x46
jle 0x4c5e9a
cmp al, 0x21
je 0x4c5e9a
cmp al, 0x24
je 0x4c5e9a
cmp al, 0x26
je 0x4c5e9a
cmp al, 0x28
je 0x4c5e9a
cmp al, 0x29
je 0x4c5e9a
cmp al, 0x2a
je 0x4c5e9a
cmp al, 0x2b
je 0x4c5e9a
cmp al, 0x2c
je 0x4c5e9a
cmp al, 0x3b
je 0x4c5e9a
cmp al, 0x3d
je 0x4c5e9a
cmp al, 0x27
je 0x4c5e9a
cmp al, 0x3a
je 0x4c5e9a
cmp al, 0x40
je 0x4c5e9a
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x4c5f37
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x4c5e8e
push eax
call dword [0x6b21ac]
add esp, 4
mov dword [ebx + 0x18], 0
jmp 0x4c5f37
push 0
lea eax, [esp + 0x18]
mov dword [esp + 0x18], edi
push 0x3a
push eax
call fcn.004c5fa0
add esp, 0xc
test eax, eax
jne 0x4c5f90
mov esi, dword [esp + 0x14]
cmp byte [esi], 0x2f
jne 0x4c5ee7
push 1
lea eax, [esp + 0x18]
inc esi
push 0
push eax
mov dword [esp + 0x20], esi
call fcn.004c5fa0
add esp, 0xc
test eax, eax
jne 0x4c5f90
mov esi, dword [esp + 0x14]
cmp byte [esi], 0x2f
je 0x4c5ec0
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x4c5f35
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x4c5f00
push eax
call dword [0x6b21ac]
add esp, 4
cmp esi, edi
je 0x4c5f2e
mov eax, esi
sub eax, edi
test byte [ebx + 0x24], 2
je 0x4c5f1d
push eax
push edi
call fcn.004b95c0
add esp, 8
mov dword [ebx + 0x18], eax
jmp 0x4c5f35
push 0
push eax
push edi
call fcn.004c7120
add esp, 0xc
mov dword [ebx + 0x18], eax
jmp 0x4c5f35
mov dword [ebx + 0x18], 0
mov edi, esi
cmp byte [edi], 0x3f
jne 0x4c5f57
lea eax, [esp + 0x14]
inc edi
push eax
push ebx
mov dword [esp + 0x1c], edi
call fcn.004c5bc0
add esp, 8
test eax, eax
jne 0x4c5f90
mov edi, dword [esp + 0x14]
cmp byte [edi], 0x23
jne 0x4c5f77
lea eax, [esp + 0x14]
inc edi
push eax
push ebx
mov dword [esp + 0x1c], edi
call fcn.004c54b0
add esp, 8
test eax, eax
jne 0x4c5f90
mov edi, dword [esp + 0x14]
cmp byte [edi], 0
je 0x4c5f8e
push ebx
call fcn.004c4ff0
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
ret
xor eax, eax
pop edi
pop esi
pop ebx
ret