Function at 0x415a9f
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
push eax
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 0x24]
mov eax, dword [edx + 0x10]
cmp byte [eax], 0x25
jne case.0x415ac4.2
mov eax, dword [ebx + 0xac]
inc eax
cmp eax, 0x11
ja case.default.0x415ac4
jmp dword [eax*4 + 0x5de4f8]
push 0
mov edx, 0x12
jmp 0x415ae4
push 0
mov edx, 0x13
jmp 0x415ae4
push 0
mov edx, 0x14
mov eax, ebx
call fcn.00413119
jmp case.0x415ac4.2
cmp dword [ebx + 0x60], 0
jne 0x415b00
cmp dword [ebx + 0x28], 1
je case.0x415ac4.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.0x415ac4.2
cmp cl, 0xd
je case.0x415ac4.2
test cl, cl
je case.0x415ac4.2
push ebx
call fcn.00434cf3
push ebx
call fcn.00417d93
pop edi
mov esi, eax
cmp dword [0x621c10], 0
pop eax
je 0x415b5d
push esi
push str.PEReference:__s_n
push dword [0x621be4]
call dword [0x58b618]
add esp, 0xc
test esi, esi
jne 0x415b6d
push 0
mov edx, 0x18
jmp 0x415d1a
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x3b
jne 0x415d13
push ebx
call fcn.00434cf3
mov eax, dword [ebx]
pop ecx
test eax, eax
je 0x415b9e
cmp dword [eax + 0x60], 0
je 0x415b9e
push esi
push dword [ebx + 4]
call dword [eax + 0x60]
mov edi, eax
pop eax
test edi, edi
pop edx
jne 0x415c05
cmp dword [ebx + 0x1c], 1
je 0x415bb0
cmp dword [ebx + 0x58], 0
jne 0x415bc0
cmp dword [ebx + 0x5c], 0
jne 0x415bc0
push esi
mov edx, 0x1a
push str.PEReference:____s__not_found_n
jmp 0x415d08
cmp dword [ebx + 0x68], 0
je 0x415be2
cmp dword [ebx + 0x70], 0
je 0x415be2
mov eax, ebx
mov edx, 0x1b
push esi
push str.PEReference:____s__not_found_n
call fcn.0041346a
pop edi
pop eax
jmp 0x415bf9
push 0
mov edx, 0x1b
push esi
mov eax, ebx
push str.PEReference:____s__not_found_n
call fcn.004133fc
add esp, 0xc
mov dword [ebx + 0x64], 0
jmp case.0x415ac4.2
mov eax, dword [ebx + 0x24]
cmp dword [eax + 0x28], 0x413f7f
je 0x415c26
mov edx, edi
mov eax, ebx
call fcn.00413f8b
push eax
push ebx
call fcn.00413eee
jmp 0x415d0f
mov eax, dword [edi + 0x30]
sub eax, 4
cmp eax, 1
ja 0x415cfd
push edi
push ebx
call fcn.00435a43
push eax
push ebx
call fcn.00413eee
add esp, 0x10
cmp dword [ebx + 0x124], 0
jne 0x415c66
mov edx, dword [ebx + 0x24]
mov eax, dword [edx + 0x14]
sub eax, dword [edx + 0x10]
cmp eax, 0xf9
jg 0x415c66
mov eax, ebx
call fcn.00413e7a
mov edx, dword [ebx + 0x24]
mov eax, dword [edx + 0x14]
mov ecx, dword [edx + 0x10]
sub eax, ecx
cmp eax, 3
jle 0x415cb0
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]
push 4
mov byte [ebp - 0xd], al
lea eax, [ebp - 0x10]
push eax
call fcn.0046007b
pop ecx
test eax, eax
pop esi
je 0x415cb0
push eax
push ebx
call fcn.0043576d
pop eax
pop edx
cmp dword [edi + 0x30], 5
jne case.0x415ac4.2
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x3c
jne case.0x415ac4.2
cmp byte [eax + 1], 0x3f
jne case.0x415ac4.2
cmp byte [eax + 2], 0x78
jne case.0x415ac4.2
cmp byte [eax + 3], 0x6d
jne case.0x415ac4.2
cmp byte [eax + 4], 0x6c
jne case.0x415ac4.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 0x415cf5
cmp cl, 0xd
jne case.0x415ac4.2
push ebx
call fcn.00415879
jmp 0x415d21
push esi
mov edx, 0x1e
push str.PEReference:__s_is_not_a_parameter_entity_n
mov eax, ebx
call fcn.004135bc
pop esi
pop edi
jmp case.0x415ac4.2
push 0
mov edx, 0x19
mov eax, ebx
call fcn.00413119
pop ebx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret