Function at 0x15578d0
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x1557d37
lea edi, [esi + 8]
cmp eax, 0x7c
je 0x1557d37
cmp eax, 0x29
jne 0x1557910
cmp dword [esi + 0x10], 0
jne 0x1557d37
test dword [esi + 0x50], 0x10000000
je 0x1557d44
jmp 0x1557cd0
cmp eax, 0x2e
jne 0x1557963
push 5
lea ecx, [esi + 0x24]
call fcn.01557d60
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1557d18
cmp byte [eax], 0x5c
jne 0x1557b1f
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1557b1f
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x155795b
mov dl, byte [ecx]
cmp dl, 0x28
je 0x1557b1d
cmp dl, 0x29
je 0x1557b1d
test bl, 0x10
jmp 0x1557b0f
cmp eax, 0x5c
jne 0x1557a81
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x15579aa
cmp byte [eax], 0x5c
jne 0x15579a7
lea ecx, [eax + 1]
cmp ecx, edx
je 0x15579a7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1557994
mov dl, byte [ecx]
cmp dl, 0x28
je 0x15579a5
cmp dl, 0x29
je 0x15579a5
test bl, 0x10
jne 0x15579a7
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x15579a5
cmp dl, 0x7d
jne 0x15579a7
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.01554740
test byte [esi + 0x50], 0x80
je 0x1557a75
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x1557a16
push 4
lea ecx, [esi + 0x24]
call fcn.01557d60
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1557a0a
cmp byte [eax], 0x5c
jne 0x1557a07
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1557a07
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x15579f4
mov dl, byte [ecx]
cmp dl, 0x28
je 0x1557a05
cmp dl, 0x29
je 0x1557a05
test bl, 0x10
jne 0x1557a07
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1557a05
cmp dl, 0x7d
jne 0x1557a07
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.01554740
jmp 0x1557d29
cmp al, 0x42
jne 0x1557a75
push 4
lea ecx, [esi + 0x24]
call fcn.01557d60
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1557a69
cmp byte [eax], 0x5c
jne 0x1557a66
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1557a66
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1557a53
mov al, byte [ecx]
cmp al, 0x28
je 0x1557a64
cmp al, 0x29
je 0x1557a64
mov eax, dword [esi]
test dl, 0x10
jne 0x1557a66
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1557a64
cmp dl, 0x7d
jne 0x1557a66
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.01554740
jmp 0x1557d29
mov ecx, esi
call fcn.01559280
jmp 0x1557d1f
cmp eax, 0x5b
jne 0x1557b27
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1557ac8
cmp byte [eax], 0x5c
jne 0x1557ac5
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1557ac5
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1557ab2
mov al, byte [ecx]
cmp al, 0x28
je 0x1557ac3
cmp al, 0x29
je 0x1557ac3
mov eax, dword [esi]
test dl, 0x10
jne 0x1557ac5
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1557ac3
cmp dl, 0x7d
jne 0x1557ac5
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.01554740
mov ecx, esi
call fcn.01559150
cmp dword [esi + 0x4c], 0x5d
jne 0x1557d52
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1557d18
cmp byte [eax], 0x5c
jne 0x1557b1f
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1557b1f
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1557b0c
mov al, byte [ecx]
cmp al, 0x28
je 0x1557b1d
cmp al, 0x29
je 0x1557b1d
mov eax, dword [esi]
test dl, 0x10
jne 0x1557b1f
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1557b1d
cmp dl, 0x7d
jne 0x1557b1f
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x1557d18
cmp eax, 0x28
jne 0x1557bda
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1557b6e
cmp byte [eax], 0x5c
jne 0x1557b6b
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1557b6b
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1557b58
mov al, byte [ecx]
cmp al, 0x28
je 0x1557b69
cmp al, 0x29
je 0x1557b69
mov eax, dword [esi]
test dl, 0x10
jne 0x1557b6b
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1557b69
cmp dl, 0x7d
jne 0x1557b6b
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.01554740
mov ecx, esi
call fcn.015593d0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1557d44
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1557bc6
cmp byte [eax], 0x5c
jne 0x1557bc3
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1557bc3
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1557bb0
mov al, byte [ecx]
cmp al, 0x28
je 0x1557bc1
cmp al, 0x29
je 0x1557bc1
mov eax, dword [esi]
test dl, 0x10
jne 0x1557bc3
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1557bc1
cmp dl, 0x7d
jne 0x1557bc3
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.01554740
test bl, bl
je 0x1557d29
jmp 0x1557d1f
cmp eax, 0x5e
jne 0x1557c30
push 2
lea ecx, [esi + 0x24]
call fcn.01557d60
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1557c24
cmp byte [eax], 0x5c
jne 0x1557c22
inc eax
cmp eax, ecx
je 0x1557c22
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1557c0f
mov dl, byte [eax]
cmp dl, 0x28
je 0x1557c20
cmp dl, 0x29
je 0x1557c20
test cl, 0x10
jne 0x1557c22
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1557c20
cmp cl, 0x7d
jne 0x1557c22
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.01554740
jmp 0x1557d29
cmp eax, 0x24
jne 0x1557c86
push 3
lea ecx, [esi + 0x24]
call fcn.01557d60
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1557c7a
cmp byte [eax], 0x5c
jne 0x1557c78
inc eax
cmp eax, ecx
je 0x1557c78
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1557c65
mov dl, byte [eax]
cmp dl, 0x28
je 0x1557c76
cmp dl, 0x29
je 0x1557c76
test cl, 0x10
jne 0x1557c78
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1557c76
cmp cl, 0x7d
jne 0x1557c78
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.01554740
jmp 0x1557d29
cmp eax, 0x2a
je 0x1557d3d
cmp eax, 0x2b
je 0x1557d3d
cmp eax, 0x3f
je 0x1557d3d
cmp eax, 0x7b
je 0x1557d3d
cmp eax, 0x7d
jne 0x1557cbe
test dword [esi + 0x50], 0x10000000
je 0x1557d4b
jmp 0x1557cd0
cmp eax, 0x5d
jne 0x1557cd0
test dword [esi + 0x50], 0x10000000
je 0x1557d52
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.01559860
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1557d18
cmp byte [eax], 0x5c
jne 0x1557d16
inc eax
cmp eax, ecx
je 0x1557d16
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1557d03
mov dl, byte [eax]
cmp dl, 0x28
je 0x1557d14
cmp dl, 0x29
je 0x1557d14
test cl, 0x10
jne 0x1557d16
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1557d14
cmp cl, 0x7d
jne 0x1557d16
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.01554740
mov ecx, esi
call fcn.01559630
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x15578e6
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.01554730
push 5
call fcn.01554730
push 6
call fcn.01554730
push 4
call fcn.01554730
int3