Function at 0x615770
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov esi, edx
sub esp, 0x3c
mov dword [ebp - 0x2c], eax
mov eax, dword [ecx]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x20], eax
mov eax, edx
call fcn.005e56a9
test byte [ebp - 0x20], 0x40
mov ebx, eax
jne 0x6157a2
cmp dword [0x61e97a6c], 0
je 0x615b78
cmp ebx, 4
jle 0x615b78
mov dword [esp + 8], 5
mov dword [esp + 4], 0x61e9a126
mov dword [esp], esi
call fcn.0066e418
test eax, eax
jne 0x615b78
lea eax, [ebx + 2]
lea ecx, [esi + ebx]
mov edi, esi
cdq
mov dword [ebp - 0x1c], ecx
xor ecx, ecx
cmp byte [edi], 0x26
sete cl
xor ebx, ebx
add eax, ecx
adc edx, ebx
inc edi
cmp edi, dword [ebp - 0x1c]
jne 0x6157d7
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.005f7cfe
test eax, eax
mov dword [ebp - 0x1c], eax
jne 0x615808
mov eax, 7
jmp 0x615c0b
mov eax, dword [ebp - 0x20]
mov ebx, 5
or eax, 0x40
cmp byte [esi + 5], 0x2f
mov dword [ebp - 0x24], eax
je 0x615828
mov dword [ebp - 0x20], 0
jmp 0x61591c
cmp byte [esi + 6], 0x2f
jne 0x61581c
mov ebx, 7
mov al, byte [esi + ebx]
test al, al
je 0x615841
cmp al, 0x2f
je 0x615841
inc ebx
jmp 0x615833
cmp ebx, 7
je 0x61581c
cmp ebx, 0x10
lea edi, [esi + 7]
jne 0x61586a
mov dword [esp + 8], 9
mov dword [esp + 4], edi
mov dword [esp], 0x61e9a12c
call fcn.0066e418
test eax, eax
je 0x61581c
sub ebx, 7
mov dword [esp + 8], edi
mov dword [esp], 0x61e9a136
mov dword [esp + 4], ebx
jmp 0x615a9a
cmp ecx, 1
jne 0x61592b
cmp al, 0x3d
jne 0x615923
mov dl, byte [esi + ebx]
test dl, dl
je 0x6159d2
cmp dl, 0x23
je 0x6159d2
lea eax, [ebx + 1]
cmp dl, 0x25
mov dword [ebp - 0x28], eax
jne 0x61593c
movzx edi, byte [esi + ebx + 1]
test byte [edi + 0x61ea9360], 8
mov eax, edi
je 0x61593c
movzx edi, byte [esi + ebx + 2]
test byte [edi + 0x61ea9360], 8
je 0x61593c
movsx eax, al
call fcn.005de6e0
movzx eax, al
shl eax, 4
mov edi, eax
lea eax, [ebx + 3]
mov dword [ebp - 0x28], eax
movsx eax, byte [esi + ebx + 2]
call fcn.005de6e0
movzx edx, al
add edx, edi
jne 0x6159bb
mov ebx, dword [ebp - 0x28]
mov al, byte [esi + ebx]
cmp al, 0x23
je 0x615892
test al, al
je 0x615892
test ecx, ecx
jne 0x615881
cmp al, 0x3f
jne 0x615881
xor ecx, ecx
jmp 0x615892
cmp al, 0x26
je 0x615892
cmp ecx, 2
je 0x615933
inc ebx
jmp 0x615901
cmp al, 0x26
jne 0x615930
jmp 0x615892
cmp ecx, 1
jne 0x61598d
cmp dl, 0x26
je 0x61594b
cmp dl, 0x3d
jne 0x61598d
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x1c]
cmp byte [edi + eax - 1], 0
jne 0x61597c
mov ebx, dword [ebp - 0x28]
mov al, byte [esi + ebx]
test al, al
je 0x615892
cmp al, 0x23
je 0x615892
cmp byte [esi + ebx - 1], 0x26
je 0x615892
inc ebx
jmp 0x61595b
cmp dl, 0x26
jne 0x6159ad
mov edi, dword [ebp - 0x1c]
inc dword [ebp - 0x20]
mov byte [edi + eax], 0
jmp 0x6159b9
test ecx, ecx
jne 0x615996
cmp dl, 0x3f
je 0x6159b4
cmp ecx, 2
jne 0x6159bb
cmp dl, 0x26
mov eax, 1
cmove ecx, eax
mov al, 0
cmove edx, eax
jmp 0x6159bb
mov ecx, 2
jmp 0x6159b9
mov ecx, 1
xor edx, edx
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x28]
mov byte [eax + edi], dl
mov eax, edi
inc eax
mov dword [ebp - 0x20], eax
jmp 0x615892
dec ecx
jne 0x6159e5
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov byte [eax + ecx], 0
mov eax, ecx
inc eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
mov byte [eax + esi], 0
mov byte [eax + esi + 1], 0
call fcn.005e56a9
mov esi, dword [ebp - 0x1c]
jmp 0x615aea
cmp ebx, 5
je 0x615af8
cmp ebx, 4
jne 0x615ae7
mov dword [esp + 8], 4
mov dword [esp + 4], edx
mov dword [esp], 0x61e9a156
call fcn.0066e418
test eax, eax
jne 0x615ae7
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], 0x87
mov edi, 0x61e9a119
mov ebx, 0x61e97220
and eax, 0x87
mov dword [ebp - 0x30], eax
mov edx, dword [ebx]
test edx, edx
je 0x615a8b
mov eax, edx
call fcn.005e56a9
cmp dword [ebp - 0x20], eax
jne 0x615b31
mov eax, dword [ebp - 0x20]
mov dword [esp + 4], edx
mov dword [esp], esi
mov dword [esp + 8], eax
call fcn.0066e418
test eax, eax
jne 0x615b31
mov eax, dword [ebx + 4]
test eax, eax
jne 0x615b39
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], 0x61e9a15b
call fcn.006146a2
jmp 0x615bdd
mov eax, edx
call fcn.005e56a9
lea esi, [edx + eax + 1]
mov ebx, eax
mov eax, esi
call fcn.005e56a9
cmp ebx, 3
mov dword [ebp - 0x20], eax
jne 0x615a01
mov dword [esp + 8], 3
mov dword [esp + 4], edx
mov dword [esp], 0x61e9a152
call fcn.0066e418
test eax, eax
mov eax, dword [ebp - 0x2c]
cmove eax, esi
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x20]
lea edx, [esi + eax + 1]
cmp byte [edx], 0
jne 0x615aa4
jmp 0x615bb4
mov dword [esp + 8], 5
mov dword [esp + 4], edx
mov dword [esp], 0x61e9a120
call fcn.0066e418
test eax, eax
jne 0x615ae7
mov dword [ebp - 0x30], 0x60000
mov dword [ebp - 0x28], 0x60000
mov edi, 0x61e9a120
mov ebx, 0x61e97248
jmp 0x615a4f
add ebx, 8
jmp 0x615a4f
mov ecx, eax
and cl, 0x7f
cmp ecx, dword [ebp - 0x30]
jle 0x615b66
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov ebx, 3
mov dword [esp], 0x61e9a16f
call fcn.006146a2
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
jmp 0x615be7
mov edi, dword [ebp - 0x28]
not edi
and edi, dword [ebp - 0x24]
or eax, edi
mov dword [ebp - 0x24], eax
jmp 0x615ae7
lea eax, [ebx + 2]
mov dword [esp], eax
sar eax, 0x1f
mov dword [esp + 4], eax
call fcn.005f7cfe
test eax, eax
mov dword [ebp - 0x1c], eax
je 0x6157fe
test ebx, ebx
je 0x615b9f
mov edi, eax
mov ecx, ebx
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x1c]
mov byte [eax + ebx], 0
mov byte [eax + ebx + 1], 0
mov eax, dword [ebp - 0x20]
and eax, 0xffffffbf
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x2c]
xor ebx, ebx
mov dword [esp], eax
call fcn.005f564d
mov edx, dword [ebp + 8]
test eax, eax
mov dword [edx], eax
jne 0x615bf9
mov eax, dword [ebp - 0x2c]
mov dword [esp], 0x61e9a187
mov dword [esp + 4], eax
call fcn.006146a2
mov esi, dword [ebp + 0x10]
mov ebx, 1
mov dword [esi], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call fcn.005e686f
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x1c]
mov dword [eax], esi
mov eax, dword [ebp + 0xc]
mov dword [eax], edi
mov eax, ebx
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret