Function at 0x408c00
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xc
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 0x24]
mov eax, dword [edx + 0x10]
cmp byte [eax], 0x25
je 0x408c20
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebx + 0xac]
inc eax
cmp eax, 0x11
ja case.default.0x408c2c
jmp dword [eax*4 + 0x740370]
mov eax, dword [ebx + 0x60]
test eax, eax
jne 0x408c40
cmp dword [ebx + 0x28], 1
je case.0x408c2c.2
mov eax, dword [edx + 0x10]
mov cl, byte [eax + 1]
cmp cl, 0x20
lea eax, [ecx - 9]
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne case.0x408c2c.2
cmp cl, 0xd
je case.0x408c2c.2
test cl, cl
je case.0x408c2c.2
sub esp, 0xc
push ebx
call fcn.00453a10
mov dword [esp], ebx
call fcn.0040b680
add esp, 0x10
mov esi, eax
mov eax, dword [0x78d2b4]
test eax, eax
jne 0x408cdf
test esi, esi
je 0x408d72
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x3b
je 0x408cf7
sub esp, 0xc
mov edx, 0x19
push 0
mov eax, ebx
call fcn.00405c40
add esp, 0x10
jmp case.0x408c2c.2
sub esp, 0xc
mov edx, 0x14
push 0
mov eax, ebx
call fcn.00405c40
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
sub esp, 0xc
mov edx, 0x12
push 0
jmp 0x408cb8
sub esp, 0xc
mov edx, 0x13
push 0
jmp 0x408cb8
push eax
push esi
push str.PEReference:__s_n
mov eax, dword [0x78d288]
push eax
call dword [0x69a2a8]
add esp, 0x10
jmp 0x408c82
sub esp, 0xc
push ebx
call fcn.00453a10
mov eax, dword [ebx]
add esp, 0x10
test eax, eax
je 0x408d10
mov eax, dword [eax + 0x60]
test eax, eax
jne 0x408d81
cmp dword [ebx + 0x1c], 1
je 0x408d24
mov edx, dword [ebx + 0x58]
test edx, edx
jne 0x408d40
mov eax, dword [ebx + 0x5c]
test eax, eax
jne 0x408d40
mov edx, 0x1a
push eax
push eax
push esi
push str.PEReference:____s__not_found_n
mov eax, ebx
call fcn.00406330
add esp, 0x10
jmp case.0x408c2c.2
mov eax, dword [ebx + 0x68]
test eax, eax
je 0x408d4e
mov eax, dword [ebx + 0x70]
test eax, eax
jne 0x408dbd
mov edx, 0x1b
push eax
mov eax, ebx
push 0
push esi
push str.PEReference:____s__not_found_n
call fcn.004060b0
add esp, 0x10
mov dword [ebx + 0x64], 0
jmp case.0x408c2c.2
sub esp, 0xc
mov edx, 0x18
push 0
jmp 0x408c9f
push edi
push edi
push esi
mov ecx, dword [ebx + 4]
push ecx
call eax
add esp, 0x10
mov edi, eax
test eax, eax
je 0x408d10
mov eax, dword [ebx + 0x24]
cmp dword [eax + 0x28], 0x407210
je 0x408dd4
mov edx, edi
mov eax, ebx
call fcn.00407220
push edi
push edi
push eax
push ebx
call fcn.00407150
add esp, 0x10
jmp case.0x408c2c.2
mov edx, 0x1b
push eax
mov eax, ebx
push 0
push esi
push str.PEReference:____s__not_found_n
call fcn.00406170
jmp 0x408d63
mov eax, dword [edi + 0x30]
sub eax, 4
cmp eax, 1
ja 0x408eb6
push esi
push esi
push edi
push ebx
call fcn.00454c30
pop edx
pop ecx
push eax
push ebx
call fcn.00407150
add esp, 0x10
test eax, eax
js case.0x408c2c.2
mov esi, dword [ebx + 0x124]
test esi, esi
jne 0x408e23
mov edx, dword [ebx + 0x24]
mov eax, dword [edx + 0x14]
mov ecx, dword [edx + 0x10]
sub eax, ecx
cmp eax, 0xf9
jg 0x408e23
mov eax, ebx
call fcn.004070a0
cmp dword [ebx + 0xac], 0xffffffff
je case.0x408c2c.2
mov edx, dword [ebx + 0x24]
mov eax, dword [edx + 0x14]
mov ecx, dword [edx + 0x10]
sub eax, ecx
cmp eax, 3
jg 0x408ec8
cmp dword [edi + 0x30], 5
jne case.0x408c2c.2
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x3c
jne case.0x408c2c.2
cmp byte [eax + 1], 0x3f
jne case.0x408c2c.2
cmp byte [eax + 2], 0x78
jne case.0x408c2c.2
cmp byte [eax + 3], 0x6d
jne case.0x408c2c.2
cmp byte [eax + 4], 0x6c
jne case.0x408c2c.2
mov cl, byte [eax + 5]
cmp cl, 0x20
lea eax, [ecx - 9]
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x408ea5
cmp cl, 0xd
jne case.0x408c2c.2
sub esp, 0xc
push ebx
call fcn.00408940
add esp, 0x10
jmp case.0x408c2c.2
mov edx, 0x1e
push ecx
push ecx
push esi
push str.PEReference:__s_is_not_a_parameter_entity_n
jmp 0x408d31
mov al, byte [ecx]
mov byte [ebp - 0x10], al
mov eax, dword [edx + 0x10]
mov al, byte [eax + 1]
mov byte [ebp - 0xf], al
mov eax, dword [edx + 0x10]
mov al, byte [eax + 2]
mov byte [ebp - 0xe], al
mov eax, dword [edx + 0x10]
mov al, byte [eax + 3]
mov byte [ebp - 0xd], al
push eax
push eax
lea eax, [ebp - 0x10]
push 4
push eax
call fcn.0047eda0
add esp, 0x10
test eax, eax
je 0x408e44
push esi
push esi
push eax
push ebx
call fcn.00454820
add esp, 0x10
jmp 0x408e44