Function at 0x300dd0c3
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x301e77e0]
mov ecx, dword [eax + 0x38]
mov dword [ebp - 4], ecx
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xc], ecx
xor ecx, ecx
cmp dword [eax + 0x18], ecx
push edi
mov edi, dword [eax + 0x34]
mov dword [ebp - 8], edi
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x1c], ecx
je 0x300dd117
and dword [eax + 0x18], ecx
jmp 0x300dd0fc
mov edi, dword [ebp - 8]
cmp edi, dword [ebp - 4]
je 0x300dd16c
movzx eax, byte [edi]
inc edi
cmp eax, 0xd
mov dword [ebp - 8], edi
je 0x300dd112
cmp eax, 0xa
jne 0x300dd0fc
mov eax, dword [0x301e77e0]
push ebx
xor ebx, ebx
push esi
cmp edi, dword [ebp - 4]
je 0x300dd147
movzx esi, byte [edi]
inc edi
cmp esi, 0xd
mov dword [ebp - 8], edi
je 0x300dd194
cmp esi, 0xa
je 0x300dd194
xor ecx, ecx
cmp esi, 0x20
je 0x300dd142
cmp esi, 9
je 0x300dd142
cmp esi, 0xd
jne 0x300dd1a6
cmp edi, dword [ebp - 4]
jne 0x300dd199
push dword [ebp - 0xc]
push dword [eax + 0x2c]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
call fcn.300dca49
test eax, eax
je 0x300dd54e
mov edi, dword [ebp - 8]
mov eax, dword [0x301e77e0]
jmp 0x300dd11b
push dword [ebp - 0xc]
mov eax, dword [0x301e77e0]
push dword [eax + 0x2c]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
call fcn.300dca49
test eax, eax
jne 0x300dd0f9
push 0xfffffffffffffffe
pop eax
jmp 0x300dd553
xor ecx, ecx
inc ecx
jmp 0x300dd142
cmp ecx, ebx
je 0x300dd11b
inc dword [eax + 0x1c]
jmp 0x300dd165
mov ecx, dword [ebp - 0xc]
sub ecx, edi
cmp ecx, 0x466
jge 0x300dd1ce
push dword [ebp - 0xc]
push dword [eax + 0x2c]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
call fcn.300dca49
mov edi, dword [ebp - 8]
mov eax, dword [0x301e77e0]
inc dword [eax + 0x1c]
cmp esi, 0x49
mov dword [ebp - 8], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [0x301e7800], ebx
mov dword [ebp - 0x20], esi
jg 0x300dd20c
je 0x300dd202
cmp esi, 0x42
jl 0x300dd220
cmp esi, 0x43
jle 0x300dd2c5
cmp esi, 0x44
jle 0x300dd220
cmp esi, 0x46
jmp 0x300dd21a
mov al, byte [edi]
inc edi
cmp al, 0x44
jmp 0x300dd2bf
cmp esi, 0x4e
je 0x300dd2aa
jle 0x300dd220
cmp esi, 0x50
jle 0x300dd2c5
cmp edi, dword [ebp - 4]
jbe 0x300dd226
dec edi
mov eax, dword [0x301e77e0]
or dword [ebp - 0x20], 0xffffffff
mov dword [eax + 0x18], 1
mov eax, dword [0x301e77e0]
mov ecx, dword [ebp - 4]
mov dword [eax + 0x34], edi
mov eax, dword [0x301e77e0]
mov dword [eax + 0x38], ecx
mov eax, dword [0x301e77e0]
mov ecx, dword [ebp - 0x2c]
mov dword [eax + 0x3c], ecx
mov eax, dword [0x301e77e0]
mov ecx, dword [ebp - 0x30]
push 0
mov dword [eax + 0x40], ecx
mov eax, dword [0x301e77e0]
mov esi, 0xfa1
push esi
push 1
add eax, 4
push eax
push 0x17
call fcn.300dcbc9
test eax, eax
je 0x300dd285
mov eax, dword [0x301e77e0]
dec dword [eax + 4]
push 0
push esi
push 1
push dword [0x301e77e0]
push 0x18
call fcn.300dcbc9
test eax, eax
je 0x300dd2a2
mov eax, dword [0x301e77e0]
dec dword [eax]
mov eax, dword [ebp - 0x20]
jmp 0x300dd551
movzx eax, byte [edi]
inc edi
cmp eax, 0x45
jne 0x300dd2bc
mov dword [ebp - 0x20], 0x58
jmp 0x300dd2c5
cmp eax, 0x4e
jne 0x300dd220
movzx eax, byte [edi]
cmp eax, 0x20
je 0x300dd2d2
cmp eax, 9
jne 0x300dd2d5
inc edi
jmp 0x300dd2c5
cmp edi, dword [ebp - 4]
jae 0x300dd2ed
cmp eax, 0x3b
je 0x300dd2ed
cmp eax, 0xd
je 0x300dd2ed
cmp eax, 0xa
jne 0x300dd220
and dword [ebp - 0x28], 0
and dword [ebp - 0x34], 0
mov esi, dword [ebp - 0x14]
xor edx, edx
mov ebx, edi
inc edx
movzx ecx, byte [edi]
inc edi
cmp ecx, 0xd
mov dword [ebp - 0x18], ecx
jg 0x300dd33d
test ecx, ecx
je 0x300dd31f
cmp ecx, 0xa
je 0x300dd334
cmp ecx, 0xd
jne 0x300dd33d
cmp byte [edi], 0xa
jne 0x300dd334
inc edi
jmp 0x300dd334
mov eax, dword [ebp - 4]
inc eax
cmp edi, eax
jne 0x300dd33d
mov eax, dword [ebp - 4]
dec edi
cmp eax, dword [ebp - 0xc]
je 0x300dd220
mov dword [ebp - 0x34], 1
jmp 0x300dd377
mov eax, edx
sub eax, 0
je 0x300dd51f
dec eax
je 0x300dd4c1
dec eax
je 0x300dd4a1
dec eax
je 0x300dd487
dec eax
je 0x300dd44e
dec eax
je 0x300dd415
dec eax
jne 0x300dd2fd
cmp ecx, 0x3b
je 0x300dd43d
xor eax, eax
cmp dword [ebp - 0x28], eax
je 0x300dd393
dec ebx
cmp byte [ebx], 0x22
mov dword [ebp - 0x28], eax
jne 0x300dd38c
cmp ebx, dword [ebp - 0x24]
jae 0x300dd38d
inc ebx
mov edx, dword [ebp - 8]
or dword [ebp - 0x2c], edx
cmp dword [ebp - 8], eax
je 0x300dd3c8
mov eax, dword [0x301e77e0]
mov edx, dword [ebp - 0x1c]
mov dword [eax + edx*4 + 0xc0], ebx
mov edx, dword [ebp - 0x24]
mov al, bl
sub al, dl
cmp al, 0xff
mov byte [edx - 1], al
ja 0x300dd3bb
mov eax, dword [ebp - 8]
or dword [ebp - 0x30], eax
mov eax, dword [ebp - 8]
or dword [0x301e7800], eax
mov byte [ebx], 0
inc ebx
cmp dword [ebp - 0x34], 0
jne 0x300dd236
add ecx, 0xffffffbf
mov dword [ebp - 0x1c], ecx
js 0x300dd407
cmp ecx, 0x1a
jge 0x300dd407
xor eax, eax
inc eax
shl eax, cl
test dword [0x301e7800], eax
mov dword [ebp - 8], eax
jne 0x300dd220
mov eax, dword [0x301e77e0]
inc ebx
mov esi, ebx
mov dword [ebp - 0x24], ebx
mov dword [eax + ecx*4 + 0x58], ebx
mov dword [ebp - 0x14], esi
jmp 0x300dd40e
and dword [ebp - 8], 0
mov esi, dword [ebp - 0x14]
xor edx, edx
jmp 0x300dd2fd
cmp dword [ebp - 0x10], 1
je 0x300dd47e
mov eax, dword [ebp - 0x10]
lea eax, [eax + 0x301e51bc]
movzx edx, byte [eax]
add edx, eax
push edx
inc eax
push eax
lea eax, [ebp - 0x18]
push eax
push ecx
call fcn.300dc6ca
test eax, eax
je 0x300dd47e
mov ecx, dword [ebp - 0x18]
xor edx, edx
inc edx
lea ebx, [esi + 1]
mov byte [esi], cl
inc esi
mov dword [ebp - 0x14], esi
jmp 0x300dd2fd
cmp ecx, 0x40
jl 0x300dd466
cmp ecx, 0x50
jge 0x300dd466
movzx eax, byte [ecx + 0x301e51f0]
mov dword [ebp - 0x10], eax
push 5
jmp 0x300dd4a8
push 0x301e5292
push 0x301e5240
lea eax, [ebp - 0x18]
push eax
push ecx
call fcn.300dc6ca
test eax, eax
jne 0x300dd43a
xor edx, edx
inc edx
dec edi
jmp 0x300dd2fd
mov eax, ecx
and ax, 0xf0
cmp al, 0x30
jne 0x300dd47e
mov eax, dword [ebp - 0x10]
and eax, 0xf
shl eax, 4
and ecx, 0xf
or ecx, eax
jmp 0x300dd43d
cmp ecx, 0x4e
jne 0x300dd4ae
push 4
pop edx
jmp 0x300dd2fd
mov eax, ecx
and al, 0xf0
cmp al, 0x20
jne 0x300dd47e
push 3
pop edx
mov dword [ebp - 0x10], ecx
jmp 0x300dd2fd
cmp ecx, 9
je 0x300dd443
cmp ecx, 0x1b
je 0x300dd51b
cmp ecx, 0x20
je 0x300dd443
cmp ecx, 0x3b
je 0x300dd517
cmp ecx, 0x5c
jne 0x300dd440
cmp dword [ebp - 0x20], 0x50
jne 0x300dd440
cmp dword [ebp - 0x1c], 0xf
jne 0x300dd440
cmp byte [edi], 0x1b
je 0x300dd440
mov byte [esi], cl
mov al, byte [edi]
lea ebx, [esi + 2]
inc esi
mov byte [esi], al
inc esi
mov dword [ebp - 0x14], esi
inc edi
jmp 0x300dd2fd
push 6
jmp 0x300dd4a8
push 2
jmp 0x300dd4a8
sub ecx, 9
je 0x300dd2fd
sub ecx, 0x17
je 0x300dd2fd
dec ecx
dec ecx
jne 0x300dd47e
cmp dword [ebp - 0x1c], 0xa
jne 0x300dd47e
xor edx, edx
inc edx
mov dword [ebp - 0x28], edx
jmp 0x300dd2fd
push 0xfffffffffffffffe
pop eax
pop esi
pop ebx
pop edi
leave
ret