Function at 0x3005f1c2
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x78
push esi
push dword [ebp + 8]
xor esi, esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], esi
call fcn.3005fc52
test eax, eax
je 0x3005f27a
cmp dword [0x30179414], esi
push edi
push ebx
jne 0x3005f1f5
mov dword [0x30179414], 1
push esi
call fcn.3002467a
cmp dword [ebp + 8], 0xf0
je 0x3005f209
call fcn.3001b905
push esi
call fcn.30006726
mov eax, dword [0x3017e4d0]
mov dword [ebp - 4], eax
mov eax, dword [0x3017f120]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x78]
push esi
mov dword [0x3017f120], eax
lea eax, [ebp - 0x78]
push eax
call fcn.30001d18
pop ecx
test eax, eax
pop ecx
je 0x3005f27f
push dword [ebp - 4]
call fcn.300025b4
and dword [0x3017fa10], 0
and dword [0x3017e2e4], 0xfffffffb
cmp dword [ebp - 0x14], 0
je 0x3005f25e
cmp dword [ebp - 8], 1
je 0x3005f25e
call fcn.30063bd1
mov eax, dword [ebp - 0x18]
mov dword [0x3017f120], eax
call fcn.30025fdd
mov eax, dword [ebp - 8]
pop ebx
mov dword [0x3017945c], 1
pop edi
pop esi
leave
ret 0x10
mov ebx, dword [ebp + 8]
mov eax, ebx
and eax, 0xf000
cmp eax, 0x5000
jne 0x3005f2ba
movzx eax, bl
push 0x5c
and dword [ebp + 0x14], 0
mov dword [ebp - 0x38], eax
pop ebx
lea eax, [ebp - 0x38]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
mov dword [ebp - 0x30], 0x800
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x10], 1
cmp ebx, 0x3e
jg 0x3005f4bb
cmp ebx, 0x3d
jge 0x3005f2dd
mov eax, ebx
sub eax, 4
je 0x3005f2dd
dec eax
dec eax
je 0x3005f2dd
sub eax, 3
je 0x3005f2dd
call fcn.30014c58
cmp dword [0x3017d604], 0
je 0x3005f2f2
mov dword [ebp - 0x10], 1
call fcn.3008dd4f
call fcn.300028df
mov eax, ebx
and eax, 0xfff
lea edi, [ebp - 0x2c]
lea eax, [eax + eax*2]
and dword [ebp - 0x14], 0
lea esi, [eax*4 + 0x3016c460]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor edi, edi
cmp dword [0x3017dbf8], edi
jne 0x3005f334
cmp dword [0x3017f83c], edi
jne 0x3005f334
cmp dword [0x30179bb4], edi
jne 0x3005f334
cmp dword [0x3017d604], edi
je 0x3005f33e
test byte [ebp - 0x25], 1
je 0x3005f23f
mov eax, dword [0x3017f740]
cmp eax, dword [0x3017f8a8]
jne 0x3005f355
test byte [ebp - 0x28], 1
je 0x3005f23f
test byte [ebp - 0x26], 0x10
je 0x3005f366
push dword [0x301793d0]
call fcn.300025b4
mov eax, dword [0x3017f3f0]
cmp eax, dword [0x301793cc]
jne 0x3005f38a
call fcn.300036d3
test eax, eax
jne 0x3005f38a
push ebx
call fcn.300c5ab4
test eax, eax
jne 0x3005f566
cmp dword [0x30179bb4], edi
jne 0x3005f47c
cmp dword [0x3017d604], edi
jne 0x3005f47c
test byte [ebp - 0x26], 4
jne 0x3005f3db
cmp ebx, 0xd
je 0x3005f3c2
cmp ebx, 0x30
je 0x3005f3c2
cmp ebx, 0xd9
jle 0x3005f3cf
cmp ebx, 0xdc
jg 0x3005f3cf
mov eax, dword [0x3017f8a8]
cmp dword [0x3017f3f0], eax
je 0x3005f3db
mov dword [ebp - 0x14], 1
call fcn.30063bd1
test byte [ebp - 0x26], 1
je 0x3005f47c
cmp ebx, 0xd
je 0x3005f407
cmp ebx, 0x30
je 0x3005f407
cmp ebx, 0xd7
je 0x3005f407
cmp ebx, 0xd9
jle 0x3005f414
cmp ebx, 0xdc
jg 0x3005f414
mov eax, dword [0x3017f8a8]
cmp dword [0x3017f3f0], eax
je 0x3005f47c
mov dword [0x3017fa10], 1
call fcn.300c5bd7
test eax, eax
je 0x3005f566
mov eax, dword [0x3017e2f0]
cmp eax, edi
je 0x3005f437
mov dword [eax + 4], ebx
call fcn.3000358c
test eax, eax
jle 0x3005f452
push edi
call fcn.300729e4
cmp dword [0x3017fa10], edi
je 0x3005f566
cmp dword [0x3017fa10], edi
je 0x3005f47c
test byte [ebp - 0x28], 0x40
je 0x3005f465
call fcn.3005fb3f
cmp dword [0x3017fa10], edi
je 0x3005f47c
mov eax, dword [ebp - 4]
push ebx
mov dword [0x3017f7d8], eax
push edi
call fcn.3005f07a
call fcn.3007e33b
mov eax, dword [0x30179458]
push edi
push dword [0x3017f120]
mov dword [ebp - 0xc], eax
mov dword [0x30179458], ebx
call fcn.30001d18
mov esi, dword [ebp + 8]
pop ecx
test eax, eax
pop ecx
jne 0x3005f504
test byte [ebp - 0x26], 0x20
je 0x3005f4ea
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call dword [ebp - 0x2c]
mov dword [ebp - 8], eax
jmp 0x3005f504
cmp ebx, 0x40
jl 0x3005f2d8
cmp ebx, 0x41
jle 0x3005f2dd
cmp ebx, 0x42
jle 0x3005f2d8
cmp ebx, 0x44
jle 0x3005f2dd
cmp ebx, 0xd9
jmp 0x3005f2d6
mov eax, esi
sub eax, 0xd
je 0x3005f55e
dec eax
dec eax
je 0x3005f55e
sub eax, 0x21
je 0x3005f55e
mov dword [ebp - 8], 1
call dword [ebp - 0x2c]
cmp esi, 0x2f
jne 0x3005f50f
mov dword [0x30179a58], edi
mov eax, dword [ebp - 0xc]
and dword [0x3017e2e4], 0xfffffffb
test byte [ebp - 0x26], 0x10
mov dword [0x30179458], eax
mov dword [0x3017fa10], edi
je 0x3005f532
push dword [ebp - 4]
call fcn.300025b4
cmp dword [ebp - 0x10], edi
je 0x3005f53c
call fcn.3008dd5d
mov eax, dword [0x301792d4]
cmp eax, 0xffffffff
je 0x3005f23f
or dword [0x301792d4], 0xffffffff
mov ebx, eax
mov dword [ebp - 0xc], esi
mov dword [ebp + 8], ebx
jmp 0x3005f282
call dword [ebp - 0x2c]
jmp 0x3005f4b6
push dword [ebp - 4]
jmp 0x3005f23a