Function at 0x28abb01a
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x24]
mov ecx, dword [eax + 0x10]
cmp byte [ecx], 0x25
jne 0x28abb299
mov eax, dword [ebx + 0xac]
inc eax
cmp eax, 0x11
push esi
ja case.default.0x28abb045
movzx eax, byte [eax + 0x28abb2b0]
jmp dword [eax*4 + 0x28abb29c]
push 0
push ebx
push 0x12
pop eax
call fcn.28ab952c
pop ecx
pop ecx
jmp case.0x28abb045.2
push 0
push ebx
push 0x13
jmp 0x28abb051
push 0
push ebx
push 0x14
jmp 0x28abb051
xor esi, esi
cmp dword [ebx + 0x60], esi
jne 0x28abb07d
cmp dword [ebx + 0x28], 1
je case.0x28abb045.2
mov al, byte [ecx + 1]
cmp al, 0x20
je case.0x28abb045.2
cmp al, 9
jb 0x28abb094
cmp al, 0xa
jbe case.0x28abb045.2
cmp al, 0xd
je case.0x28abb045.2
test al, al
je case.0x28abb045.2
jmp 0x28abb0a8
xor esi, esi
push edi
mov eax, ebx
call fcn.28ac94ff
mov eax, ebx
call fcn.28abc660
mov edi, eax
mov dword [ebp - 4], edi
call fcn.28ab21c0
cmp dword [eax], esi
je 0x28abb0de
call fcn.28ab20bc
push edi
push str.PEReference:__s_n
mov ecx, eax
call fcn.28ab20f0
push dword [eax]
call dword [ecx]
add esp, 0xc
cmp edi, esi
jne 0x28abb0eb
push esi
push ebx
push 0x18
jmp 0x28abb28f
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x3b
jne 0x28abb28b
mov eax, ebx
call fcn.28ac94ff
mov eax, dword [ebx]
cmp eax, esi
je 0x28abb11c
mov eax, dword [eax + 0x60]
cmp eax, esi
je 0x28abb11c
push edi
push dword [ebx + 4]
call eax
mov edi, eax
cmp edi, esi
pop ecx
pop ecx
jne 0x28abb178
cmp dword [ebx + 0x1c], 1
je 0x28abb16c
cmp dword [ebx + 0x58], esi
jne 0x28abb12c
cmp dword [ebx + 0x5c], esi
je 0x28abb16c
cmp dword [ebx + 0x68], esi
je 0x28abb14f
cmp dword [ebx + 0x70], esi
je 0x28abb14f
mov ebx, dword [ebp - 4]
mov esi, dword [ebp + 8]
push str.PEReference:____s__not_found_n
push 0x1b
xor edx, edx
pop ecx
call fcn.28ab99d7
mov ebx, esi
jmp 0x28abb163
mov edi, dword [ebp - 4]
push str.PEReference:____s__not_found_n
push 0x1b
xor esi, esi
mov ecx, ebx
call fcn.28ab9962
pop ecx
and dword [ebx + 0x64], 0
jmp 0x28abb296
push dword [ebp - 4]
push str.PEReference:____s__not_found_n
push 0x1a
jmp 0x28abb1b0
mov eax, dword [ebx + 0x24]
cmp dword [eax + 0x28], 0x28ae6152
je 0x28abb199
push ebx
mov eax, edi
call fcn.28abaf40
pop ecx
mov ecx, ebx
call fcn.28abaa35
jmp 0x28abb297
mov eax, dword [edi + 0x30]
cmp eax, 4
je 0x28abb1bd
cmp eax, 5
je 0x28abb1bd
push dword [ebp - 4]
push str.PEReference:__s_is_not_a_parameter_entity_n
push 0x1e
pop eax
mov edi, ebx
call fcn.28ab9b14
jmp 0x28abb295
mov esi, dword [ebp + 8]
mov ebx, edi
mov eax, esi
call fcn.28aca1cc
mov ecx, esi
call fcn.28abaa35
test eax, eax
jl 0x28abb297
cmp dword [esi + 0x124], 0
jne 0x28abb1f9
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x14]
sub ecx, dword [eax + 0x10]
cmp ecx, 0xfa
jge 0x28abb1f9
mov eax, esi
call fcn.28aba875
cmp dword [esi + 0xac], 0xffffffff
je 0x28abb297
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x14]
sub ecx, dword [eax + 0x10]
cmp ecx, 4
jl 0x28abb246
mov eax, dword [eax + 0x10]
mov cl, byte [eax]
mov byte [ebp + 8], cl
mov cl, byte [eax + 1]
mov byte [ebp + 9], cl
mov cl, byte [eax + 2]
mov al, byte [eax + 3]
mov byte [ebp + 0xb], al
push 4
lea eax, [ebp + 8]
mov byte [ebp + 0xa], cl
call fcn.28aaec2c
test eax, eax
pop ecx
je 0x28abb246
mov ebx, eax
mov eax, esi
call fcn.28ac9cdf
cmp dword [edi + 0x30], 5
jne 0x28abb297
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x3c
jne 0x28abb297
cmp byte [eax + 1], 0x3f
jne 0x28abb297
cmp byte [eax + 2], 0x78
jne 0x28abb297
cmp byte [eax + 3], 0x6d
jne 0x28abb297
cmp byte [eax + 4], 0x6c
jne 0x28abb297
mov al, byte [eax + 5]
cmp al, 0x20
je 0x28abb282
cmp al, 9
jb 0x28abb27e
cmp al, 0xa
jbe 0x28abb282
cmp al, 0xd
jne 0x28abb297
mov eax, esi
call fcn.28ac1d60
jmp 0x28abb297
push esi
push ebx
push 0x19
pop eax
call fcn.28ab952c
pop ecx
pop ecx
pop edi
pop esi
pop ebx
leave
ret