Function at 0x696f20
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, dword [esp + 8]
mov eax, dword [esi + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0x25
jne 0x6972b8
mov ecx, dword [esi + 0xac]
lea eax, [ecx + 1]
cmp eax, 0x11
push ebp
mov ebp, 1
ja case.default.0x696f53
movzx eax, byte [eax + 0x6972d0]
jmp dword [eax*4 + 0x6972bc]
xor ecx, ecx
lea edx, [ecx + 0x12]
call fcn.00692d40
pop ebp
pop esi
ret
cmp dword [esi + 0xd4], 0
je 0x696f79
cmp ecx, 0xffffffff
je case.0x696f53.2
push 0
push str.PEReference_in_prolog_n
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 3
mov dword [esi + 0x54], 0x13
push 0x13
jmp 0x696fcd
cmp dword [esi + 0xd4], 0
je 0x696fad
cmp ecx, 0xffffffff
je case.0x696f53.2
push 0
push str.PEReference_in_epilog_n
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 3
mov dword [esi + 0x54], 0x14
push 0x14
push ebp
push 0
push esi
push 0
push 0
push 0
call fcn.006a66d0
add esp, 0x44
cmp dword [esi + 0x120], 0
mov dword [esi + 0xc], 0
jne case.0x696f53.2
mov dword [esi + 0xd4], ebp
pop ebp
pop esi
ret
cmp dword [esi + 0x60], 0
jne 0x69700b
cmp dword [esi + 0x28], ebp
je case.0x696f53.2
mov al, byte [edx + 1]
cmp al, 0x20
je case.0x696f53.2
cmp al, 9
jb 0x697022
cmp al, 0xa
jbe case.0x696f53.2
cmp al, 0xd
je case.0x696f53.2
test al, al
je case.0x696f53.2
push ebx
push edi
push esi
call fcn.006a8600
push esi
call fcn.006979c0
add esp, 8
mov edi, eax
call fcn.006a4520
cmp dword [eax], 0
je 0x69706b
call fcn.006a4400
mov ebx, eax
call fcn.006a4440
mov ecx, dword [eax]
mov edx, dword [ebx]
push edi
push str.PEReference:__s_n
push ecx
call edx
add esp, 0xc
xor ebx, ebx
cmp edi, ebx
jne 0x6970a3
cmp dword [esi + 0xd4], ebx
je 0x697086
cmp dword [esi + 0xac], 0xffffffff
je 0x6972b5
push ebx
push str.PEReference:_no_name_n
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 3
mov dword [esi + 0x54], 0x18
push 0x18
jmp 0x697296
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x10]
cmp byte [ecx], 0x3b
jne 0x69726d
push esi
call fcn.006a8600
mov eax, dword [esi]
add esp, 4
cmp eax, ebx
je 0x6970d8
mov eax, dword [eax + 0x60]
cmp eax, ebx
je 0x6970d8
mov edx, dword [esi + 4]
push edi
push edx
call eax
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x697148
cmp dword [esi + 0x1c], ebp
je 0x697132
cmp dword [esi + 0x58], 0
jne 0x6970e9
cmp dword [esi + 0x5c], 0
je 0x697132
cmp dword [esi + 0x68], 0
je 0x697113
cmp dword [esi + 0x70], 0
je 0x697113
xor edx, edx
push str.PEReference:____s__not_found_n
lea ebx, [edx + 0x1b]
call fcn.006931d0
add esp, 4
pop edi
pop ebx
pop ebp
mov dword [esi + 0x64], 0
pop esi
ret
push 0x1b
xor ecx, ecx
mov ebx, str.PEReference:____s__not_found_n
mov eax, esi
call fcn.00693160
add esp, 4
pop edi
pop ebx
pop ebp
mov dword [esi + 0x64], 0
pop esi
ret
mov eax, edi
mov edx, str.PEReference:____s__not_found_n
mov ecx, 0x1a
call fcn.00693300
pop edi
pop ebx
pop ebp
pop esi
ret
mov eax, dword [esi + 0x24]
cmp dword [eax + 0x28], 0x6941e0
je 0x69716b
push ebx
mov eax, esi
call fcn.006941f0
push eax
push esi
call fcn.00695820
add esp, 0xc
pop edi
pop ebx
pop ebp
pop esi
ret
mov eax, dword [ebx + 0x30]
cmp eax, 4
je 0x69718e
cmp eax, 5
je 0x69718e
mov eax, edi
mov edx, str.PEReference:__s_is_not_a_parameter_entity_n
mov ecx, 0x1e
call fcn.00693300
pop edi
pop ebx
pop ebp
pop esi
ret
push ebx
push esi
call fcn.006a9280
push eax
push esi
call fcn.00695820
add esp, 0x10
test eax, eax
jl 0x6972b5
cmp dword [esi + 0x124], 0
jne 0x6971c6
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x14]
sub ecx, dword [eax + 0x10]
cmp ecx, 0xfa
jge 0x6971c6
call fcn.006956b0
mov eax, dword [esi + 0x24]
mov edx, dword [eax + 0x14]
sub edx, dword [eax + 0x10]
cmp edx, 4
jl 0x69721b
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx]
mov byte [esp + 0x14], dl
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
mov byte [esp + 0x15], dl
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 2]
mov byte [esp + 0x16], dl
mov eax, dword [eax + 0x10]
mov cl, byte [eax + 3]
lea edx, [esp + 0x14]
push 4
push edx
mov byte [esp + 0x1f], cl
call fcn.006b5480
add esp, 8
test eax, eax
je 0x69721b
push eax
push esi
call fcn.006a9910
add esp, 8
cmp dword [ebx + 0x30], 5
jne 0x6972b5
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x3c
jne 0x6972b5
cmp byte [eax + 1], 0x3f
jne 0x6972b5
cmp byte [eax + 2], 0x78
jne 0x6972b5
cmp byte [eax + 3], 0x6d
jne 0x6972b5
cmp byte [eax + 4], 0x6c
jne 0x6972b5
mov al, byte [eax + 5]
cmp al, 0x20
je 0x69725f
cmp al, 9
jb 0x69725b
cmp al, 0xa
jbe 0x69725f
cmp al, 0xd
jne 0x6972b5
push esi
call fcn.00696770
add esp, 4
pop edi
pop ebx
pop ebp
pop esi
ret
cmp dword [esi + 0xd4], ebx
je 0x69727e
cmp dword [esi + 0xac], 0xffffffff
je 0x6972b5
push ebx
push str.PEReference:_expecting___n
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 3
mov dword [esi + 0x54], 0x19
push 0x19
push ebp
push ebx
push esi
push ebx
push ebx
push ebx
call fcn.006a66d0
add esp, 0x44
cmp dword [esi + 0x120], ebx
mov dword [esi + 0xc], ebx
jne 0x6972b5
mov dword [esi + 0xd4], ebp
pop edi
pop ebx
pop ebp
pop esi
ret