Function at 0x4081d0
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 0x408637
lea edi, [esi + 8]
cmp eax, 0x7c
je 0x408637
cmp eax, 0x29
jne 0x408210
cmp dword [esi + 0x10], 0
jne 0x408637
test dword [esi + 0x50], 0x10000000
je 0x408644
jmp 0x4085d0
cmp eax, 0x2e
jne 0x408263
push 5
lea ecx, [esi + 0x24]
call fcn.00408660
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x408618
cmp byte [eax], 0x5c
jne 0x40841f
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40841f
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40825b
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40841d
cmp dl, 0x29
je 0x40841d
test bl, 0x10
jmp 0x40840f
cmp eax, 0x5c
jne 0x408381
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4082aa
cmp byte [eax], 0x5c
jne 0x4082a7
lea ecx, [eax + 1]
cmp ecx, edx
je 0x4082a7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x408294
mov dl, byte [ecx]
cmp dl, 0x28
je 0x4082a5
cmp dl, 0x29
je 0x4082a5
test bl, 0x10
jne 0x4082a7
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x4082a5
cmp dl, 0x7d
jne 0x4082a7
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004072d0
test byte [esi + 0x50], 0x80
je 0x408375
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x408316
push 4
lea ecx, [esi + 0x24]
call fcn.00408660
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40830a
cmp byte [eax], 0x5c
jne 0x408307
lea ecx, [eax + 1]
cmp ecx, edx
je 0x408307
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4082f4
mov dl, byte [ecx]
cmp dl, 0x28
je 0x408305
cmp dl, 0x29
je 0x408305
test bl, 0x10
jne 0x408307
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x408305
cmp dl, 0x7d
jne 0x408307
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004072d0
jmp 0x408629
cmp al, 0x42
jne 0x408375
push 4
lea ecx, [esi + 0x24]
call fcn.00408660
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x408369
cmp byte [eax], 0x5c
jne 0x408366
lea ecx, [eax + 1]
cmp ecx, edx
je 0x408366
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x408353
mov al, byte [ecx]
cmp al, 0x28
je 0x408364
cmp al, 0x29
je 0x408364
mov eax, dword [esi]
test dl, 0x10
jne 0x408366
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x408364
cmp dl, 0x7d
jne 0x408366
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004072d0
jmp 0x408629
mov ecx, esi
call fcn.004096b0
jmp 0x40861f
cmp eax, 0x5b
jne 0x408427
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4083c8
cmp byte [eax], 0x5c
jne 0x4083c5
lea ecx, [eax + 1]
cmp ecx, edx
je 0x4083c5
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x4083b2
mov al, byte [ecx]
cmp al, 0x28
je 0x4083c3
cmp al, 0x29
je 0x4083c3
mov eax, dword [esi]
test dl, 0x10
jne 0x4083c5
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x4083c3
cmp dl, 0x7d
jne 0x4083c5
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004072d0
mov ecx, esi
call fcn.00409580
cmp dword [esi + 0x4c], 0x5d
jne 0x408652
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x408618
cmp byte [eax], 0x5c
jne 0x40841f
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40841f
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40840c
mov al, byte [ecx]
cmp al, 0x28
je 0x40841d
cmp al, 0x29
je 0x40841d
mov eax, dword [esi]
test dl, 0x10
jne 0x40841f
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40841d
cmp dl, 0x7d
jne 0x40841f
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x408618
cmp eax, 0x28
jne 0x4084da
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40846e
cmp byte [eax], 0x5c
jne 0x40846b
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40846b
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x408458
mov al, byte [ecx]
cmp al, 0x28
je 0x408469
cmp al, 0x29
je 0x408469
mov eax, dword [esi]
test dl, 0x10
jne 0x40846b
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x408469
cmp dl, 0x7d
jne 0x40846b
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004072d0
mov ecx, esi
call fcn.00409800
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x408644
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4084c6
cmp byte [eax], 0x5c
jne 0x4084c3
lea ecx, [eax + 1]
cmp ecx, edx
je 0x4084c3
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x4084b0
mov al, byte [ecx]
cmp al, 0x28
je 0x4084c1
cmp al, 0x29
je 0x4084c1
mov eax, dword [esi]
test dl, 0x10
jne 0x4084c3
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x4084c1
cmp dl, 0x7d
jne 0x4084c3
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004072d0
test bl, bl
je 0x408629
jmp 0x40861f
cmp eax, 0x5e
jne 0x408530
push 2
lea ecx, [esi + 0x24]
call fcn.00408660
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x408524
cmp byte [eax], 0x5c
jne 0x408522
inc eax
cmp eax, ecx
je 0x408522
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40850f
mov dl, byte [eax]
cmp dl, 0x28
je 0x408520
cmp dl, 0x29
je 0x408520
test cl, 0x10
jne 0x408522
mov cl, byte [eax]
cmp cl, 0x7b
je 0x408520
cmp cl, 0x7d
jne 0x408522
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004072d0
jmp 0x408629
cmp eax, 0x24
jne 0x408586
push 3
lea ecx, [esi + 0x24]
call fcn.00408660
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40857a
cmp byte [eax], 0x5c
jne 0x408578
inc eax
cmp eax, ecx
je 0x408578
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x408565
mov dl, byte [eax]
cmp dl, 0x28
je 0x408576
cmp dl, 0x29
je 0x408576
test cl, 0x10
jne 0x408578
mov cl, byte [eax]
cmp cl, 0x7b
je 0x408576
cmp cl, 0x7d
jne 0x408578
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004072d0
jmp 0x408629
cmp eax, 0x2a
je 0x40863d
cmp eax, 0x2b
je 0x40863d
cmp eax, 0x3f
je 0x40863d
cmp eax, 0x7b
je 0x40863d
cmp eax, 0x7d
jne 0x4085be
test dword [esi + 0x50], 0x10000000
je 0x40864b
jmp 0x4085d0
cmp eax, 0x5d
jne 0x4085d0
test dword [esi + 0x50], 0x10000000
je 0x408652
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00409d80
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x408618
cmp byte [eax], 0x5c
jne 0x408616
inc eax
cmp eax, ecx
je 0x408616
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x408603
mov dl, byte [eax]
cmp dl, 0x28
je 0x408614
cmp dl, 0x29
je 0x408614
test cl, 0x10
jne 0x408616
mov cl, byte [eax]
cmp cl, 0x7b
je 0x408614
cmp cl, 0x7d
jne 0x408616
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004072d0
mov ecx, esi
call fcn.00409b50
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x4081e6
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.004072c0
push 5
call fcn.004072c0
push 6
call fcn.004072c0
push 4
call fcn.004072c0
int3