Function at 0x422960
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d81f8
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
mov eax, dword [0x65bde0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
lea ecx, [ebp - 0x1c]
mov ebx, edx
call fcn.00403a00
mov dword [ebp - 4], 0
movzx eax, word [edi]
test ax, ax
je 0x422c84
lea ebx, [ebx]
cmp ax, 0x24
je 0x422bde
cmp ax, 0x26
je 0x422bde
cmp ax, 0x2b
je 0x422bde
cmp ax, 0x2c
je 0x422bde
cmp ax, 0x2f
je 0x422bde
cmp ax, 0x3a
je 0x422bde
cmp ax, 0x3b
je 0x422bde
cmp ax, 0x3d
je 0x422bde
cmp ax, 0x3f
je 0x422bde
cmp ax, 0x40
je 0x422bde
cmp ax, 0x23
je 0x422bde
cmp ax, 0x20
je 0x422bde
cmp ax, 0x7f
jbe 0x422c6b
mov ecx, 0x7ff
movzx esi, ax
mov edx, 0x61df78
cmp ax, cx
ja 0x422b1a
or esi, 0x3000
lea ecx, [ebp - 0x2c]
shr esi, 6
call fcn.004194f0
push esi
mov ecx, eax
call fcn.004199f0
push eax
push 0xffffffffffffffff
lea edx, [ebp - 0x18]
push 4
push edx
call fcn.005b4b4a
add esp, 0x14
lea ecx, [ebp - 0x2c]
call fcn.0040a260
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00406cc0
movzx esi, word [edi]
and esi, 0x3f
mov edx, 0x61df78
lea ecx, [ebp - 0x30]
or esi, 0x80
call fcn.004194f0
push esi
mov ecx, eax
call fcn.004199f0
push eax
push 0xffffffffffffffff
lea ecx, [ebp - 0x18]
push 4
push ecx
call fcn.005b4b4a
add esp, 0x14
lea ecx, [ebp - 0x30]
call fcn.0040a260
lea edx, [ebp - 0x18]
push edx
lea ecx, [ebp - 0x1c]
call fcn.00423f20
lea ecx, [ebp - 0x1c]
call fcn.00408420
mov esi, eax
test esi, esi
je 0x422c6b
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x422ae3
sub eax, edx
sar eax, 1
push esi
inc eax
push eax
push ebx
call fcn.005b424f
mov eax, esi
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x422b03
sub eax, edx
sar eax, 1
lea ebx, [ebx + eax*2]
jmp 0x422c74
or esi, 0xe0000
lea ecx, [ebp - 0x34]
shr esi, 0xc
call fcn.004194f0
push esi
mov ecx, eax
call fcn.004199f0
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x18]
push 4
push eax
call fcn.005b4b4a
add esp, 0x14
lea ecx, [ebp - 0x34]
call fcn.0040a260
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00406cc0
movzx esi, word [edi]
and esi, 0xfc0
or esi, 0x2000
mov edx, 0x61df78
lea ecx, [ebp - 0x20]
shr esi, 6
call fcn.004194f0
push esi
mov ecx, eax
call fcn.004199f0
push eax
push 0xffffffffffffffff
lea edx, [ebp - 0x18]
push 4
push edx
call fcn.005b4b4a
add esp, 0x14
lea ecx, [ebp - 0x20]
call fcn.0040a260
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00423f20
movzx esi, word [edi]
and esi, 0x3f
mov edx, 0x61df78
lea ecx, [ebp - 0x24]
or esi, 0x80
call fcn.004194f0
push esi
mov ecx, eax
call fcn.004199f0
push eax
push 0xffffffffffffffff
lea ecx, [ebp - 0x18]
push 4
push ecx
call fcn.005b4b4a
add esp, 0x14
lea ecx, [ebp - 0x24]
jmp 0x422abb
mov edx, 0x61df78
lea ecx, [ebp - 0x28]
call fcn.004194f0
movzx ecx, word [edi]
push ecx
mov ecx, eax
call fcn.004199f0
push eax
push 0xffffffffffffffff
lea edx, [ebp - 0x18]
push 4
push edx
call fcn.005b4b4a
add esp, 0x14
lea ecx, [ebp - 0x28]
call fcn.0040a260
lea eax, [ebp - 0x18]
xor esi, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x422c17
sub eax, edx
sar eax, 1
je 0x422c63
jmp 0x422c30
movzx eax, word [ebp + esi*2 - 0x18]
push eax
call fcn.005b4f09
mov word [ebp + esi*2 - 0x18], ax
lea eax, [ebp - 0x18]
add esp, 4
inc esi
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x422c50
sub eax, edx
sar eax, 1
cmp esi, eax
jb 0x422c30
lea esi, [ebp - 0x18]
jmp 0x422ade
mov cx, word [edi]
mov word [ebx], cx
add ebx, 2
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4229b0
xor edx, edx
lea ecx, [ebp - 0x1c]
mov word [ebx], dx
call fcn.0040a260
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005b3023
mov esp, ebp
pop ebp
ret