Function at 0x10034409
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
xor ebx, ebx
mov dword [ebp - 8], esi
inc ebx
mov dl, byte [edi]
movzx ecx, dl
cmp ecx, 0x2e
jg 0x100345ba
je 0x1003459f
cmp ecx, 0x26
jg 0x10034520
je 0x10034518
cmp ecx, 0x22
jg 0x100344b7
je 0x10034857
cmp ecx, 9
jl 0x100348ca
cmp ecx, 0xa
jle 0x10034492
cmp ecx, 0xb
jle 0x100348ca
cmp ecx, 0xd
jle 0x10034492
cmp ecx, 0x20
je 0x10034492
cmp ecx, 0x21
jne 0x100348ca
cmp byte [edi + 1], 0x3d
push 2
pop eax
je 0x10034487
mov dword [esi], 0x90
jmp 0x100349ab
mov dword [esi], 0x43
jmp 0x100349ab
movzx eax, byte [edi + 1]
xor ebx, ebx
inc ebx
push eax
jmp 0x100344a2
inc ebx
movzx ecx, byte [ebx + edi]
push ecx
call fcn.1008bfe8
pop ecx
test eax, eax
jne 0x1003449c
mov dword [esi], 0x91
jmp 0x100349a9
mov eax, ecx
sub eax, 0x23
je 0x100344d7
dec eax
je 0x100345f5
dec eax
jne 0x100348ca
mov dword [esi], 0x52
jmp 0x1003456f
movzx eax, byte [edi + 1]
push eax
call fcn.1008bf92
pop ecx
test eax, eax
je 0x100345f5
mov esi, ebx
inc esi
movzx eax, byte [esi + edi]
push eax
call fcn.1008bf92
pop ecx
test eax, eax
jne 0x100344ec
mov dword [ebp - 4], esi
cmp esi, ebx
mov esi, dword [ebp - 8]
jle 0x100345f5
mov eax, dword [ebp - 4]
mov dword [esi], 0x7f
jmp 0x100349ab
mov dword [esi], 0x4a
jmp 0x1003456f
mov eax, ecx
sub eax, 0x27
je 0x10034857
dec eax
je 0x10034597
dec eax
je 0x1003458f
dec eax
je 0x10034587
dec eax
je 0x1003457f
dec eax
je 0x10034577
dec eax
jne 0x100348ca
cmp byte [edi + 1], 0x2d
jne 0x10034569
movzx ecx, byte [edi + 2]
push 2
pop eax
jmp 0x1003455a
cmp ecx, 0xa
je 0x1003455e
inc eax
movzx ecx, byte [eax + edi]
test ecx, ecx
jne 0x10034550
mov dword [esi], 0x93
jmp 0x100349ab
mov dword [esi], 0x4f
xor eax, eax
inc eax
jmp 0x100349ab
mov dword [esi], 0x16
jmp 0x1003456f
mov dword [esi], 0x4e
jmp 0x1003456f
mov dword [esi], 0x50
jmp 0x1003456f
mov dword [esi], 0x14
jmp 0x1003456f
mov dword [esi], 0x13
jmp 0x1003456f
movzx eax, byte [edi + 1]
push eax
call fcn.1008bf92
pop ecx
test eax, eax
jne 0x1003464c
mov dword [esi], 0x70
jmp 0x1003456f
cmp ecx, 0x3f
jg 0x100347f8
je 0x100347d1
cmp ecx, 0x3b
jg 0x10034746
je 0x1003473c
cmp ecx, 0x2f
je 0x100346fe
jle 0x100348ca
cmp ecx, 0x39
jle 0x1003464c
cmp ecx, 0x3a
jne 0x100348ca
movzx eax, byte [edi + 1]
xor ecx, ecx
mov dword [ebp - 4], ecx
mov dword [esi], 0x80
test eax, eax
je 0x100349a3
test al, al
js 0x1003495c
cmp eax, 0x1f
jle 0x10034626
cmp byte [eax + 0x100bfac0], 0
jne 0x1003495c
cmp eax, 0x28
jne 0x10034633
test ecx, ecx
jg 0x1003496f
cmp eax, 0x3a
jne 0x1003499f
cmp byte [edi + ebx + 1], al
jne 0x1003499f
inc ebx
jmp 0x10034960
movzx eax, byte [edi]
xor ebx, ebx
mov dword [esi], 0x7c
jmp 0x1003465e
inc ebx
movzx eax, byte [ebx + edi]
push eax
call fcn.1008bf92
pop ecx
test eax, eax
jne 0x10034659
cmp byte [ebx + edi], 0x2e
jne 0x10034685
inc ebx
movzx eax, byte [ebx + edi]
push eax
call fcn.1008bf92
pop ecx
test eax, eax
jne 0x1003466f
mov dword [esi], 0x7d
mov al, byte [ebx + edi]
cmp al, 0x65
je 0x10034690
cmp al, 0x45
jne 0x100346d7
movzx eax, byte [ebx + edi + 1]
push eax
call fcn.1008bf92
pop ecx
test eax, eax
jne 0x100346bc
mov al, byte [ebx + edi + 1]
cmp al, 0x2b
je 0x100346ac
cmp al, 0x2d
jne 0x100346d7
movzx eax, byte [ebx + edi + 2]
push eax
call fcn.1008bf92
pop ecx
test eax, eax
je 0x100346d7
add ebx, 2
jmp 0x100346c2
inc ebx
movzx eax, byte [ebx + edi]
push eax
call fcn.1008bf92
pop ecx
test eax, eax
jne 0x100346c1
mov dword [esi], 0x7d
movzx eax, byte [ebx + edi]
test al, al
js 0x100346f5
cmp eax, 0x1f
jle 0x100349a9
cmp byte [eax + 0x100bfac0], 0
je 0x100349a9
mov dword [esi], 0x90
inc ebx
jmp 0x100346d7
cmp byte [edi + 1], 0x2a
jne 0x10034731
mov cl, byte [edi + 2]
test cl, cl
je 0x10034731
push 3
pop eax
movzx ecx, cl
cmp ecx, 0x2a
jne 0x1003471c
cmp byte [eax + edi], 0x2f
je 0x1003472b
movzx ecx, byte [eax + edi]
test ecx, ecx
je 0x1003455e
inc eax
jmp 0x10034711
inc eax
jmp 0x1003455e
mov dword [esi], 0x51
jmp 0x1003456f
xor ebx, ebx
inc ebx
mov dword [esi], ebx
jmp 0x100349a9
mov eax, ecx
sub eax, 0x3c
je 0x10034795
dec eax
je 0x10034780
dec eax
jne 0x100348ca
movzx eax, byte [edi + 1]
cmp eax, 0x3d
jne 0x10034768
mov dword [esi], 0x48
jmp 0x100347a4
cmp eax, 0x3e
jne 0x10034775
mov dword [esi], 0x4d
jmp 0x100347a4
mov dword [esi], 0x45
jmp 0x1003456f
xor eax, eax
mov dword [esi], 0x44
cmp byte [edi + 1], 0x3d
sete al
inc eax
jmp 0x100349ab
movzx eax, byte [edi + 1]
cmp eax, 0x3d
jne 0x100347ac
mov dword [esi], 0x46
push 2
pop eax
jmp 0x100349ab
cmp eax, 0x3e
jne 0x100347b9
mov dword [esi], 0x43
jmp 0x100347a4
cmp eax, 0x3c
jne 0x100347c6
mov dword [esi], 0x4c
jmp 0x100347a4
mov dword [esi], 0x47
jmp 0x1003456f
movzx eax, byte [edi + 1]
mov dword [esi], 0x80
xor esi, esi
inc esi
push eax
jmp 0x100347e7
inc esi
movzx ecx, byte [esi + edi]
push ecx
call fcn.1008bf92
pop ecx
test eax, eax
jne 0x100347e1
mov eax, esi
jmp 0x100349ab
mov eax, ecx
sub eax, 0x40
je 0x100345f5
sub eax, 0x18
je 0x100348b9
sub eax, 3
je 0x10034898
sub eax, 5
je 0x10034857
sub eax, 0x18
je 0x100348b9
sub eax, 4
je 0x1003483b
dec eax
dec eax
jne 0x100348ca
mov dword [esi], 0x57
jmp 0x1003456f
cmp byte [edi + 1], 0x7c
je 0x1003484c
mov dword [esi], 0x4b
jmp 0x1003456f
mov dword [esi], 0x53
jmp 0x100347a4
movzx ebx, byte [edi + 1]
xor edx, edx
inc edx
test ebx, ebx
je 0x1003488b
cmp ebx, ecx
jne 0x10034870
movzx eax, byte [edi + edx + 1]
cmp eax, ecx
jne 0x10034879
inc edx
inc edx
movzx ebx, byte [edx + edi]
test ebx, ebx
jne 0x10034862
test ebx, ebx
je 0x1003488b
mov dword [esi], 0x58
lea eax, [edx + 1]
jmp 0x100349ab
mov dword [esi], 0x90
mov eax, edx
jmp 0x100349ab
xor eax, eax
inc eax
cmp dl, 0x5d
je 0x100348ae
movzx ecx, byte [eax + edi]
test ecx, ecx
je 0x100348ae
inc eax
cmp ecx, 0x5d
jne 0x100348a0
mov dword [esi], 0x17
jmp 0x100349ab
movzx eax, byte [edi + 1]
mov dword [ebp - 8], eax
cmp eax, 0x27
je 0x10034913
cmp eax, 0x22
je 0x10034913
test cl, cl
js 0x100348e7
cmp ecx, 0x1f
jle 0x100348dc
cmp byte [ecx + 0x100bfac0], 0
jne 0x100348e7
mov dword [esi], 0x90
jmp 0x1003456f
xor ebx, ebx
inc ebx
movzx eax, byte [ebx + edi]
test al, al
js 0x10034900
cmp eax, 0x1f
jle 0x10034903
cmp byte [eax + 0x100bfac0], 0
je 0x10034903
inc ebx
jmp 0x100348ea
mov edx, ebx
mov ecx, edi
call fcn.10034389
mov dword [esi], eax
jmp 0x100349a9
movzx ecx, byte [edi + 2]
push 2
mov dword [esi], 0x7e
pop ebx
jmp 0x10034939
cmp ecx, eax
je 0x1003493f
push ecx
call fcn.1008c03e
pop ecx
test eax, eax
je 0x100349a3
mov eax, dword [ebp - 8]
inc ebx
movzx ecx, byte [ebx + edi]
test ecx, ecx
jne 0x10034922
jmp 0x100349a9
mov eax, ebx
and eax, 0x80000001
jns 0x1003494d
dec eax
or eax, 0xfffffffe
inc eax
je 0x10034955
mov dword [esi], 0x90
test ecx, ecx
je 0x100349a9
inc ebx
jmp 0x100349a9
inc ecx
mov dword [ebp - 4], ecx
inc ebx
movzx eax, byte [ebx + edi]
test eax, eax
jne 0x1003460c
jmp 0x1003499f
inc ebx
movzx eax, byte [ebx + edi]
mov dword [ebp - 8], eax
test eax, eax
je 0x1003498e
push eax
call fcn.1008bfe8
test eax, eax
mov eax, dword [ebp - 8]
pop ecx
jne 0x1003498e
cmp eax, 0x29
jne 0x1003496f
mov ecx, dword [ebp - 4]
cmp eax, 0x29
jne 0x10034999
inc ebx
jmp 0x1003499f
mov dword [esi], 0x90
test ecx, ecx
jne 0x100349a9
mov dword [esi], 0x90
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret