Function at 0x100a50c0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x100a55a5
lea edi, [esi + 8]
nop word [eax + eax]
cmp eax, 0x7c
je 0x100a55a5
cmp eax, 0x29
jne 0x100a510a
cmp dword [esi + 0x10], 0
jne 0x100a55a5
test dword [esi + 0x50], 0x10000000
je 0x100a55b5
jmp 0x100a553f
cmp eax, 0x2e
jne 0x100a5179
push 5
lea ecx, [esi + 0x24]
call fcn.100a55d0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x100a5586
cmp byte [eax], 0x5c
jne 0x100a537b
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x100a516f
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x100a514f
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x100a5164
cmp cl, 0x29
je 0x100a5164
mov ecx, eax
test bl, 0x10
jne 0x100a516f
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x100a5164
mov edx, ecx
cmp bl, 0x7d
jne 0x100a516f
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x100a5586
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x100a5586
cmp eax, 0x5c
jne 0x100a52c8
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x100a51ce
cmp byte [eax], 0x5c
jne 0x100a51cb
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x100a51c9
test byte [esi + 0x50], 8
jne 0x100a51ae
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x100a51c4
cmp cl, 0x29
je 0x100a51c4
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x100a51c9
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x100a51c4
mov edx, ecx
cmp bl, 0x7d
jne 0x100a51c9
lea eax, [edx + 1]
jmp 0x100a51cb
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100a40a0
test byte [esi + 0x50], 0x80
je 0x100a52bc
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x100a5255
push 4
lea ecx, [esi + 0x24]
call fcn.100a55d0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x100a5249
cmp byte [eax], 0x5c
jne 0x100a5246
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x100a5244
test byte [esi + 0x50], 8
jne 0x100a521c
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x100a5232
cmp cl, 0x29
je 0x100a5232
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x100a5244
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x100a5232
mov edx, ecx
cmp bl, 0x7d
jne 0x100a5244
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.100a40a0
jmp 0x100a5597
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100a40a0
jmp 0x100a5597
cmp al, 0x42
jne 0x100a52bc
push 4
lea ecx, [esi + 0x24]
call fcn.100a55d0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100a52b0
cmp byte [eax], 0x5c
jne 0x100a52ad
lea ebx, [eax + 1]
cmp ebx, ecx
je 0x100a52ad
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100a5297
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x28
je 0x100a52aa
cmp dl, 0x29
je 0x100a52aa
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x100a52ad
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x7b
je 0x100a52aa
cmp dl, 0x7d
jne 0x100a52ad
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100a40a0
jmp 0x100a5597
mov ecx, esi
call fcn.100a5b90
jmp 0x100a558d
cmp eax, 0x5b
jne 0x100a5383
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100a5319
cmp byte [eax], 0x5c
jne 0x100a5316
lea edx, [eax + 1]
cmp edx, ecx
je 0x100a5316
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x100a5300
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x100a5313
cmp byte [ebp - 1], 0x29
je 0x100a5313
test bl, 0x10
jne 0x100a5316
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x100a5313
cmp dl, 0x7d
jne 0x100a5316
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100a40a0
mov ecx, esi
call fcn.100a5a50
cmp dword [esi + 0x4c], 0x5d
jne 0x100a55c3
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x100a5586
cmp byte [eax], 0x5c
jne 0x100a537b
lea edx, [eax + 1]
cmp edx, ecx
je 0x100a537b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x100a5365
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x100a5378
cmp byte [ebp - 1], 0x29
je 0x100a5378
test bl, 0x10
jne 0x100a537b
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x100a5378
cmp dl, 0x7d
jne 0x100a537b
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x100a5586
cmp eax, 0x28
jne 0x100a5447
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100a53d2
cmp byte [eax], 0x5c
jne 0x100a53cf
lea edx, [eax + 1]
cmp edx, ecx
je 0x100a53cf
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100a53b9
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x100a53cc
cmp bl, 0x29
je 0x100a53cc
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x100a53cf
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x100a53cc
cmp dl, 0x7d
jne 0x100a53cf
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100a40a0
mov ecx, esi
call fcn.100a5ce0
cmp dword [esi + 0x4c], 0x29
mov bh, al
jne 0x100a55b5
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x100a5433
cmp byte [eax], 0x5c
jne 0x100a5430
lea edx, [eax + 1]
cmp edx, ecx
je 0x100a5430
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100a541a
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x100a542d
cmp bl, 0x29
je 0x100a542d
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x100a5430
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x100a542d
cmp dl, 0x7d
jne 0x100a5430
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100a40a0
test bh, bh
je 0x100a5597
jmp 0x100a558d
cmp eax, 0x5e
jne 0x100a549e
push 2
lea ecx, [esi + 0x24]
call fcn.100a55d0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100a5492
cmp byte [eax], 0x5c
jne 0x100a5490
inc eax
cmp eax, ecx
je 0x100a5490
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100a547f
mov dl, byte [eax]
cmp dl, 0x28
je 0x100a548e
cmp dl, 0x29
je 0x100a548e
test cl, 0x10
jne 0x100a5490
mov al, byte [eax]
cmp al, 0x7b
je 0x100a548e
cmp al, 0x7d
jne 0x100a5490
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.100a40a0
jmp 0x100a5597
cmp eax, 0x24
jne 0x100a54f5
push 3
lea ecx, [esi + 0x24]
call fcn.100a55d0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100a54e9
cmp byte [eax], 0x5c
jne 0x100a54e7
inc eax
cmp eax, ecx
je 0x100a54e7
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100a54d6
mov dl, byte [eax]
cmp dl, 0x28
je 0x100a54e5
cmp dl, 0x29
je 0x100a54e5
test cl, 0x10
jne 0x100a54e7
mov al, byte [eax]
cmp al, 0x7b
je 0x100a54e5
cmp al, 0x7d
jne 0x100a54e7
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.100a40a0
jmp 0x100a5597
cmp eax, 0x2a
je 0x100a55ae
cmp eax, 0x2b
je 0x100a55ae
cmp eax, 0x3f
je 0x100a55ae
cmp eax, 0x7b
je 0x100a55ae
cmp eax, 0x7d
jne 0x100a552d
test dword [esi + 0x50], 0x10000000
je 0x100a55bc
jmp 0x100a553f
cmp eax, 0x5d
jne 0x100a553f
test dword [esi + 0x50], 0x10000000
je 0x100a55c3
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.100a6090
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x100a5586
cmp byte [eax], 0x5c
jne 0x100a5584
inc eax
cmp eax, ecx
je 0x100a5584
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100a5573
mov dl, byte [eax]
cmp dl, 0x28
je 0x100a5582
cmp dl, 0x29
je 0x100a5582
test cl, 0x10
jne 0x100a5584
mov al, byte [eax]
cmp al, 0x7b
je 0x100a5582
cmp al, 0x7d
jne 0x100a5584
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.100a40a0
mov ecx, esi
call fcn.100a5e60
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x100a50e0
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.100a4090
push 5
call fcn.100a4090
push 6
call fcn.100a4090
push 4
call fcn.100a4090
int3