Function at 0x420ed0
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
push edi
mov edi, eax
xor al, al
cmp dword [edi + 0x40], 0xffffffff
je 0x4210f4
mov ecx, dword [edi + 0x40]
cmp ecx, 0x7c
je 0x4210f4
xor ebx, ebx
cmp ecx, 0x29
jne 0x420f16
cmp dword [edi + 0x10], ebx
jne 0x4210f4
mov eax, 0x10000000
test dword [edi + 0x44], eax
jne 0x420f1b
push 5
call fcn.004a438b
add esp, 4
jmp 0x4210e1
mov eax, 0x10000000
cmp ecx, 0x2e
jne 0x420fb8
push 0x14
call fcn.004b383b
add esp, 4
cmp eax, ebx
je 0x420f4a
mov dword [eax], 0x4ef194
mov dword [eax + 4], 5
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
jmp 0x420f4c
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 0x420f68
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 0x420fac
cmp byte [eax], 0x5c
jne 0x420faa
inc eax
cmp eax, ecx
je 0x420f96
test byte [edi + 0x44], 8
jne 0x420f96
mov cl, byte [eax]
cmp cl, 0x28
je 0x420fa8
cmp cl, 0x29
je 0x420fa8
test byte [edi + 0x44], 0x10
jne 0x420faa
mov cl, byte [eax]
cmp cl, 0x7b
je 0x420fa8
cmp cl, 0x7d
jne 0x420faa
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0041ffe0
jmp 0x4210e1
cmp ecx, 0x5c
jne 0x42105f
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x420ffc
cmp byte [eax], 0x5c
jne 0x420ffa
inc eax
cmp eax, ecx
je 0x420fe6
test byte [edi + 0x44], 8
jne 0x420fe6
mov cl, byte [eax]
cmp cl, 0x28
je 0x420ff8
cmp cl, 0x29
je 0x420ff8
test byte [edi + 0x44], 0x10
jne 0x420ffa
mov cl, byte [eax]
cmp cl, 0x7b
je 0x420ff8
cmp cl, 0x7d
jne 0x420ffa
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0041ffe0
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x421029
cmp byte [edi + 0x3e], 0x62
jne 0x421029
push 4
lea esi, [edi + 0x18]
call fcn.00421310
mov eax, edi
call fcn.00420e80
jmp 0x4210e8
cmp eax, ebx
je 0x421053
cmp byte [edi + 0x3e], 0x42
jne 0x421053
push 4
lea esi, [edi + 0x18]
call fcn.00421310
mov eax, dword [edi + 0x1c]
or dword [eax + 8], 1
add eax, 8
mov eax, edi
call fcn.00420e80
jmp 0x4210e8
mov eax, edi
call fcn.00421ed0
jmp 0x4210e1
cmp ecx, 0x5b
jne 0x4210bb
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x42109f
cmp byte [eax], 0x5c
jne 0x42109d
inc eax
cmp eax, ecx
je 0x421089
test byte [edi + 0x44], 8
jne 0x421089
mov cl, byte [eax]
cmp cl, 0x28
je 0x42109b
cmp cl, 0x29
je 0x42109b
test byte [edi + 0x44], 0x10
jne 0x42109d
mov cl, byte [eax]
cmp cl, 0x7b
je 0x42109b
cmp cl, 0x7d
jne 0x42109d
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0041ffe0
call fcn.00421e60
push 0x5d
mov ecx, 4
mov eax, edi
call fcn.00421e00
jmp 0x4210e1
cmp ecx, 0x28
jne 0x4210f8
mov eax, edi
call fcn.00420e80
push edi
call fcn.00421f90
mov bl, al
push 0x29
mov ecx, 5
mov eax, edi
call fcn.00421e00
test bl, bl
je 0x4210e8
mov eax, edi
call fcn.00422080
cmp dword [edi + 0x40], 0xffffffff
mov al, 1
jne 0x420ee1
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x421110
push 2
lea esi, [edi + 0x18]
call fcn.00421310
mov eax, edi
call fcn.00420e80
jmp 0x4210e8
cmp ecx, 0x24
jne 0x421128
push 3
lea esi, [edi + 0x18]
call fcn.00421310
mov eax, edi
call fcn.00420e80
jmp 0x4210e8
cmp ecx, 0x2a
je 0x421184
cmp ecx, 0x2b
je 0x421184
cmp ecx, 0x3f
je 0x421184
cmp ecx, 0x7b
je 0x421184
cmp ecx, 0x7d
jne 0x421152
test dword [edi + 0x44], eax
jne 0x421152
push 6
call fcn.004a438b
add esp, 4
jmp 0x4210e1
cmp ecx, 0x5d
jne 0x42116b
test dword [edi + 0x44], eax
jne 0x42116b
push 4
call fcn.004a438b
add esp, 4
jmp 0x4210e1
movzx edx, byte [edi + 0x3e]
push edx
lea eax, [edi + 0x18]
call fcn.004221b0
mov eax, edi
call fcn.00420e80
jmp 0x4210e1
push 0xa
call fcn.004a438b
add esp, 4
jmp 0x4210e1