Function at 0x43632d
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov dl, byte [esi]
movzx ecx, dl
xor edi, edi
inc edi
cmp ecx, 0x2e
jg 0x4364f8
je 0x4364da
cmp ecx, 0x26
jg 0x436444
je 0x436439
cmp ecx, 0x22
jg 0x4363d9
je 0x4367bf
cmp ecx, 9
jl 0x436836
cmp ecx, 0xa
jle 0x4363b2
cmp ecx, 0xb
jle 0x436836
cmp ecx, 0xd
jle 0x4363b2
cmp ecx, 0x20
je 0x4363b2
cmp ecx, 0x21
jne 0x436836
cmp byte [esi + 1], 0x3d
mov eax, dword [ebp + 0xc]
push 2
je 0x4363a7
mov dword [eax], 0x91
jmp 0x436701
mov dword [eax], 0x44
jmp 0x436701
movzx eax, byte [esi + 1]
xor edi, edi
inc edi
jmp 0x4363c0
inc edi
movzx eax, byte [edi + esi]
push eax
call fcn.004bcadf
pop ecx
test eax, eax
jne 0x4363bb
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0x92
jmp 0x436926
mov eax, ecx
sub eax, 0x23
je 0x4363fc
dec eax
je 0x436533
dec eax
jne 0x436836
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x53
jmp 0x43649b
movzx eax, byte [esi + 1]
push eax
mov ebx, edi
call fcn.004bca89
pop ecx
test eax, eax
je 0x436533
inc ebx
movzx eax, byte [ebx + esi]
push eax
call fcn.004bca89
pop ecx
test eax, eax
jne 0x436411
cmp ebx, edi
jle 0x436533
mov ecx, dword [ebp + 0xc]
mov eax, ebx
mov dword [ecx], 0x80
jmp 0x436928
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x4b
jmp 0x43649b
mov eax, ecx
sub eax, 0x27
je 0x4367bf
dec eax
je 0x4364cf
dec eax
je 0x4364c4
dec eax
je 0x4364b9
dec eax
je 0x4364ae
dec eax
je 0x4364a3
dec eax
jne 0x436836
cmp byte [esi + 1], 0x2d
jne 0x436492
movzx eax, byte [esi + 2]
push 2
pop edx
jmp 0x43647e
cmp eax, 0xa
je 0x436482
inc edx
movzx eax, byte [edx + esi]
test eax, eax
jne 0x436474
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0x94
mov eax, edx
jmp 0x436928
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x50
xor eax, eax
inc eax
jmp 0x436928
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x16
jmp 0x43649b
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x4f
jmp 0x43649b
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x51
jmp 0x43649b
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x14
jmp 0x43649b
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x13
jmp 0x43649b
movzx eax, byte [esi + 1]
push eax
call fcn.004bca89
pop ecx
test eax, eax
jne 0x43658d
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x71
jmp 0x43649b
cmp ecx, 0x3f
jg 0x43675a
je 0x436732
cmp ecx, 0x3b
jg 0x436695
je 0x436688
cmp ecx, 0x2f
je 0x436642
jle 0x436836
cmp ecx, 0x39
jle 0x43658d
cmp ecx, 0x3a
jne 0x436836
mov edx, dword [ebp + 0xc]
xor ecx, ecx
mov dword [edx], 0x81
movzx eax, byte [esi + 1]
mov dword [ebp + 8], ecx
test eax, eax
je 0x436920
test al, al
js 0x4368dc
cmp eax, 0x1f
jle 0x436567
cmp byte [eax + 0x4eeb10], 0
jne 0x4368dc
cmp eax, 0x28
jne 0x436574
test ecx, ecx
jg 0x4368ef
cmp eax, 0x3a
jne 0x43691c
cmp byte [esi + edi + 1], al
jne 0x43691c
inc edi
jmp 0x4368e0
mov ebx, dword [ebp + 0xc]
xor edi, edi
mov dword [ebx], 0x7d
movzx eax, byte [esi]
jmp 0x4365a2
inc edi
movzx eax, byte [edi + esi]
push eax
call fcn.004bca89
pop ecx
test eax, eax
jne 0x43659d
cmp byte [edi + esi], 0x2e
jne 0x4365c9
inc edi
movzx eax, byte [edi + esi]
push eax
call fcn.004bca89
pop ecx
test eax, eax
jne 0x4365b3
mov dword [ebx], 0x7e
mov al, byte [edi + esi]
cmp al, 0x65
je 0x4365d4
cmp al, 0x45
jne 0x43661b
movzx eax, byte [edi + esi + 1]
push eax
call fcn.004bca89
pop ecx
test eax, eax
jne 0x436600
mov al, byte [edi + esi + 1]
cmp al, 0x2b
je 0x4365f0
cmp al, 0x2d
jne 0x43661b
movzx eax, byte [edi + esi + 2]
push eax
call fcn.004bca89
pop ecx
test eax, eax
je 0x43661b
add edi, 2
jmp 0x436606
inc edi
movzx eax, byte [edi + esi]
push eax
call fcn.004bca89
pop ecx
test eax, eax
jne 0x436605
mov dword [ebx], 0x7e
movzx eax, byte [edi + esi]
test al, al
js 0x436639
cmp eax, 0x1f
jle 0x436926
cmp byte [eax + 0x4eeb10], 0
je 0x436926
mov dword [ebx], 0x91
inc edi
jmp 0x43661b
cmp byte [esi + 1], 0x2a
jne 0x43667a
mov cl, byte [esi + 2]
test cl, cl
je 0x43667a
push 3
pop eax
movzx ecx, cl
cmp ecx, 0x2a
jne 0x436660
cmp byte [eax + esi], 0x2f
je 0x43666b
movzx ecx, byte [eax + esi]
test ecx, ecx
je 0x43666c
inc eax
jmp 0x436655
inc eax
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0x94
jmp 0x436928
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x52
jmp 0x43649b
mov eax, dword [ebp + 0xc]
xor edi, edi
inc edi
mov dword [eax], edi
jmp 0x436926
mov eax, ecx
sub eax, 0x3c
je 0x4366ed
dec eax
je 0x4366d5
dec eax
jne 0x436836
movzx eax, byte [esi + 1]
cmp eax, 0x3d
jne 0x4366ba
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x49
jmp 0x4366ff
cmp eax, 0x3e
mov eax, dword [ebp + 0xc]
jne 0x4366ca
mov dword [eax], 0x4e
jmp 0x4366ff
mov dword [eax], 0x46
jmp 0x43649b
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x45
xor eax, eax
cmp byte [esi + 1], 0x3d
sete al
inc eax
jmp 0x436928
movzx eax, byte [esi + 1]
cmp eax, 0x3d
jne 0x436707
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x47
push 2
pop eax
jmp 0x436928
cmp eax, 0x3e
jne 0x436717
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x44
jmp 0x4366ff
cmp eax, 0x3c
mov eax, dword [ebp + 0xc]
jne 0x436727
mov dword [eax], 0x4d
jmp 0x4366ff
mov dword [eax], 0x48
jmp 0x43649b
mov eax, dword [ebp + 0xc]
xor edi, edi
mov dword [eax], 0x81
movzx eax, byte [esi + 1]
inc edi
push eax
jmp 0x43674b
inc edi
movzx ecx, byte [edi + esi]
push ecx
call fcn.004bca89
pop ecx
test eax, eax
jne 0x436745
jmp 0x436926
mov eax, ecx
sub eax, 0x40
je 0x436533
sub eax, 0x18
je 0x436828
sub eax, 3
je 0x436804
sub eax, 5
je 0x4367bf
sub eax, 0x18
je 0x436828
sub eax, 4
je 0x4367a0
dec eax
dec eax
jne 0x436836
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x58
jmp 0x43649b
cmp byte [esi + 1], 0x7c
mov eax, dword [ebp + 0xc]
je 0x4367b4
mov dword [eax], 0x4c
jmp 0x43649b
mov dword [eax], 0x54
jmp 0x4366ff
movzx edi, byte [esi + 1]
xor edx, edx
inc edx
test edi, edi
je 0x4367f6
cmp edi, ecx
jne 0x4367d8
movzx eax, byte [esi + edx + 1]
cmp eax, ecx
jne 0x4367e1
inc edx
inc edx
movzx edi, byte [edx + esi]
test edi, edi
jne 0x4367ca
test edi, edi
je 0x4367f6
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x59
lea eax, [edx + 1]
jmp 0x436928
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0x91
jmp 0x43648b
xor eax, eax
inc eax
cmp dl, 0x5d
je 0x43681a
movzx ecx, byte [eax + esi]
test ecx, ecx
je 0x43681a
inc eax
cmp ecx, 0x5d
jne 0x43680c
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0x17
jmp 0x436928
movzx ebx, byte [esi + 1]
cmp ebx, 0x27
je 0x436885
cmp ebx, 0x22
je 0x436885
test cl, cl
js 0x436856
cmp ecx, 0x1f
jle 0x436848
cmp byte [ecx + 0x4eeb10], 0
jne 0x436856
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x91
jmp 0x43649b
xor edi, edi
inc edi
movzx eax, byte [edi + esi]
test al, al
js 0x43686f
cmp eax, 0x1f
jle 0x436872
cmp byte [eax + 0x4eeb10], 0
je 0x436872
inc edi
jmp 0x436859
push edi
push esi
call fcn.0043692d
pop ecx
pop ecx
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x436926
mov edx, dword [ebp + 0xc]
push 2
mov dword [edx], 0x7f
movzx ecx, byte [esi + 2]
pop edi
jmp 0x4368ab
cmp ecx, ebx
je 0x4368bc
push ecx
call fcn.004bcb35
pop ecx
test eax, eax
je 0x4368b1
inc edi
movzx ecx, byte [edi + esi]
test ecx, ecx
jne 0x436897
jmp 0x436926
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x91
jmp 0x436926
mov eax, edi
and eax, 0x80000001
jns 0x4368ca
dec eax
or eax, 0xfffffffe
inc eax
je 0x4368d5
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x91
test ecx, ecx
je 0x436926
inc edi
jmp 0x436926
inc ecx
mov dword [ebp + 8], ecx
inc edi
movzx eax, byte [edi + esi]
test eax, eax
jne 0x43654d
jmp 0x43691c
inc edi
movzx ebx, byte [edi + esi]
test ebx, ebx
je 0x436908
push ebx
call fcn.004bcadf
pop ecx
test eax, eax
jne 0x436908
cmp ebx, 0x29
jne 0x4368ef
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
cmp ebx, 0x29
jne 0x436916
inc edi
jmp 0x43691c
mov dword [edx], 0x91
test ecx, ecx
jne 0x436926
mov dword [edx], 0x91
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
ret