Function at 0x422960
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
push edi
mov edi, eax
xor ebx, ebx
xor al, al
cmp dword [edi + 0x40], 0xffffffff
je 0x422cbe
jmp 0x422977
xor ebx, ebx
mov ecx, dword [edi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x422cbe
cmp ecx, 0x29
jne 0x4229aa
cmp dword [edi + 0x10], ebx
jne 0x422cbe
test dword [edi + 0x44], edx
jne 0x4229aa
push 5
call fcn.004925d4
add esp, 4
jmp 0x422cab
cmp ecx, 0x2e
jne 0x422a48
push 0x14
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
cmp eax, ebx
je 0x4229da
mov dword [eax], 0x40c940
mov dword [eax + 4], 5
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
jmp 0x4229dc
xor eax, eax
mov ecx, dword [edi + 0x1c]
mov dword [eax + 0x10], ecx
mov edx, dword [edi + 0x1c]
mov ecx, dword [edx + 0xc]
cmp ecx, ebx
je 0x4229f8
mov dword [eax + 0xc], ecx
mov ecx, dword [edi + 0x1c]
mov edx, dword [ecx + 0xc]
mov dword [edx + 0x10], eax
mov ecx, dword [edi + 0x1c]
mov dword [ecx + 0xc], eax
mov dword [edi + 0x1c], eax
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x422a3c
cmp byte [eax], 0x5c
jne 0x422a3a
inc eax
cmp eax, ecx
je 0x422a26
test byte [edi + 0x44], 8
jne 0x422a26
mov cl, byte [eax]
cmp cl, 0x28
je 0x422a38
cmp cl, 0x29
je 0x422a38
test byte [edi + 0x44], 0x10
jne 0x422a3a
mov cl, byte [eax]
cmp cl, 0x7b
je 0x422a38
cmp cl, 0x7d
jne 0x422a3a
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00421f70
jmp 0x422cab
cmp ecx, 0x5c
jne 0x422b5e
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x422a8c
cmp byte [eax], 0x5c
jne 0x422a8a
inc eax
cmp eax, ecx
je 0x422a76
test byte [edi + 0x44], 8
jne 0x422a76
mov cl, byte [eax]
cmp cl, 0x28
je 0x422a88
cmp cl, 0x29
je 0x422a88
test byte [edi + 0x44], 0x10
jne 0x422a8a
mov cl, byte [eax]
cmp cl, 0x7b
je 0x422a88
cmp cl, 0x7d
jne 0x422a8a
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00421f70
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x422af2
cmp byte [edi + 0x3e], 0x62
jne 0x422af2
lea esi, [edi + 0x18]
call fcn.0041bbe0
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x422ae6
cmp byte [eax], 0x5c
jne 0x422ae4
inc eax
cmp eax, ecx
je 0x422ad0
test byte [edi + 0x44], 8
jne 0x422ad0
mov cl, byte [eax]
cmp cl, 0x28
je 0x422ae2
cmp cl, 0x29
je 0x422ae2
test byte [edi + 0x44], 0x10
jne 0x422ae4
mov cl, byte [eax]
cmp cl, 0x7b
je 0x422ae2
cmp cl, 0x7d
jne 0x422ae4
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00421f70
jmp 0x422cb2
cmp eax, ebx
je 0x422b52
cmp byte [edi + 0x3e], 0x42
jne 0x422b52
lea esi, [edi + 0x18]
call fcn.0041bbe0
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x422b46
cmp byte [eax], 0x5c
jne 0x422b44
inc eax
cmp eax, ecx
je 0x422b30
test byte [edi + 0x44], 8
jne 0x422b30
mov cl, byte [eax]
cmp cl, 0x28
je 0x422b42
cmp cl, 0x29
je 0x422b42
test byte [edi + 0x44], 0x10
jne 0x422b44
mov cl, byte [eax]
cmp cl, 0x7b
je 0x422b42
cmp cl, 0x7d
jne 0x422b44
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00421f70
jmp 0x422cb2
mov eax, edi
call fcn.00423670
jmp 0x422cab
cmp ecx, 0x5b
jne 0x422c03
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x422ba2
cmp byte [eax], 0x5c
jne 0x422ba0
inc eax
cmp eax, ecx
je 0x422b8c
test byte [edi + 0x44], 8
jne 0x422b8c
mov cl, byte [eax]
cmp cl, 0x28
je 0x422b9e
cmp cl, 0x29
je 0x422b9e
test byte [edi + 0x44], 0x10
jne 0x422ba0
mov cl, byte [eax]
cmp cl, 0x7b
je 0x422b9e
cmp cl, 0x7d
jne 0x422ba0
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00421f70
call fcn.004235c0
cmp dword [edi + 0x40], 0x5d
je 0x422bbe
push 4
call fcn.004925d4
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x422bf9
cmp byte [eax], 0x5c
jne 0x422bf7
inc eax
cmp eax, ecx
je 0x422be3
test byte [edi + 0x44], 8
jne 0x422be3
mov cl, byte [eax]
cmp cl, 0x28
je 0x422bf5
cmp cl, 0x29
je 0x422bf5
test byte [edi + 0x44], 0x10
jne 0x422bf7
mov cl, byte [eax]
cmp cl, 0x7b
je 0x422bf5
cmp cl, 0x7d
jne 0x422bf7
mov dword [edi], eax
inc dword [edi]
call fcn.00421f70
jmp 0x422cab
cmp ecx, 0x28
jne 0x422cc2
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x422c47
cmp byte [eax], 0x5c
jne 0x422c45
inc eax
cmp eax, ecx
je 0x422c31
test byte [edi + 0x44], 8
jne 0x422c31
mov cl, byte [eax]
cmp cl, 0x28
je 0x422c43
cmp cl, 0x29
je 0x422c43
test byte [edi + 0x44], 0x10
jne 0x422c45
mov cl, byte [eax]
cmp cl, 0x7b
je 0x422c43
cmp cl, 0x7d
jne 0x422c45
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00421f70
mov eax, edi
call fcn.00423730
cmp dword [edi + 0x40], 0x29
mov bl, al
je 0x422c67
push 5
call fcn.004925d4
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x422ca2
cmp byte [eax], 0x5c
jne 0x422ca0
inc eax
cmp eax, ecx
je 0x422c8c
test byte [edi + 0x44], 8
jne 0x422c8c
mov cl, byte [eax]
cmp cl, 0x28
je 0x422c9e
cmp cl, 0x29
je 0x422c9e
test byte [edi + 0x44], 0x10
jne 0x422ca0
mov cl, byte [eax]
cmp cl, 0x7b
je 0x422c9e
cmp cl, 0x7d
jne 0x422ca0
mov dword [edi], eax
inc dword [edi]
call fcn.00421f70
test bl, bl
je 0x422cb2
mov eax, edi
call fcn.004237e0
cmp dword [edi + 0x40], 0xffffffff
mov al, 1
jne 0x422975
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x422cd8
lea esi, [edi + 0x18]
call fcn.0041bb20
mov eax, edi
call fcn.00422910
jmp 0x422cb2
cmp ecx, 0x24
jne 0x422cee
lea esi, [edi + 0x18]
call fcn.0041bb80
mov eax, edi
call fcn.00422910
jmp 0x422cb2
cmp ecx, 0x2a
je 0x422d4a
cmp ecx, 0x2b
je 0x422d4a
cmp ecx, 0x3f
je 0x422d4a
cmp ecx, 0x7b
je 0x422d4a
cmp ecx, 0x7d
jne 0x422d18
test dword [edi + 0x44], edx
jne 0x422d18
push 6
call fcn.004925d4
add esp, 4
jmp 0x422cab
cmp ecx, 0x5d
jne 0x422d31
test dword [edi + 0x44], edx
jne 0x422d31
push 4
call fcn.004925d4
add esp, 4
jmp 0x422cab
movzx edx, byte [edi + 0x3e]
lea eax, [edi + 0x18]
push edx
call fcn.00423910
mov eax, edi
call fcn.00422910
jmp 0x422cab
push 0xa
call fcn.004925d4
add esp, 4
jmp 0x422cab