Function at 0x300df845
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
mov eax, dword [section..cdata]
push ebx
push esi
push edi
push dword [ebp + 8]
xor esi, esi
mov dword [ebp - 4], eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x30], esi
call fcn.30031b23
test eax, eax
je 0x300dfbdd
cmp dword [0x301df188], esi
jne 0x300df880
mov dword [0x301df188], 1
call fcn.3000bbab
inc dword [0x301e43d0]
push esi
call fcn.30049b64
cmp dword [ebp + 8], 0xf0
je 0x300df89f
call fcn.3000b1a3
push esi
call fcn.300155d3
mov eax, dword [0x301e4918]
mov dword [ebp - 0x14], eax
mov eax, dword [0x301e4ae8]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x7c]
push esi
push eax
mov dword [0x301e4ae8], eax
call fcn.3005644c
test eax, eax
pop ecx
pop ecx
jne 0x300dfb96
mov ebx, dword [ebp + 8]
mov eax, ebx
and eax, 0xf000
cmp eax, 0x5000
jne 0x300df909
and dword [ebp + 0x14], 0
movzx eax, bl
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push 0x5c
mov dword [ebp - 0x3c], eax
pop ebx
lea eax, [ebp - 0x3c]
mov dword [ebp - 8], 0x800
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x10], 1
cmp ebx, 0x3e
jg 0x300df923
cmp ebx, 0x3d
jge 0x300df944
mov eax, ebx
sub eax, 4
je 0x300df944
dec eax
dec eax
je 0x300df944
sub eax, 3
jmp 0x300df93d
cmp ebx, 0x40
jl 0x300df93f
cmp ebx, 0x41
jle 0x300df944
cmp ebx, 0x42
jle 0x300df93f
cmp ebx, 0x44
jle 0x300df944
cmp ebx, 0xd9
je 0x300df944
call fcn.3000f393
cmp dword [0x301e489c], 0
je 0x300df959
mov dword [ebp - 0x30], 1
call fcn.30119100
and dword [ebp - 0x2c], 0
mov esi, ebx
and esi, 0xfff
imul esi, esi, 0xc
add esi, 0x30032af8
lea edi, [ebp - 0x28]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor edi, edi
cmp dword [0x301df308], edi
jne 0x300df996
cmp dword [0x301df2d0], edi
jne 0x300df996
cmp dword [0x301e4794], edi
jne 0x300df996
cmp dword [0x301e489c], edi
je 0x300df9a2
test byte [ebp - 0x21], 1
je 0x300dfb9e
xor edi, edi
mov eax, dword [0x301e42f8]
cmp eax, dword [0x301e46e4]
jne 0x300df9bb
test byte [ebp - 0x24], 1
je 0x300dfb9e
xor edi, edi
test byte [ebp - 0x22], 0x10
je 0x300df9cc
push dword [0x301e42ec]
call fcn.30056045
mov eax, dword [0x301e4914]
cmp eax, dword [0x301e4524]
jne 0x300df9f0
call fcn.3002cece
test eax, eax
jne 0x300df9f0
push ebx
call fcn.3015806d
test eax, eax
jne 0x300dfb96
cmp dword [0x301e4794], edi
jne 0x300dfae2
cmp dword [0x301e489c], edi
jne 0x300dfae2
test byte [ebp - 0x22], 4
jne 0x300dfa41
cmp ebx, 0xd
je 0x300dfa28
cmp ebx, 0x30
je 0x300dfa28
cmp ebx, 0xd9
jle 0x300dfa35
cmp ebx, 0xdc
jg 0x300dfa35
mov eax, dword [0x301e46e4]
cmp dword [0x301e4914], eax
je 0x300dfa41
mov dword [ebp - 0x2c], 1
call fcn.3002cb44
test byte [ebp - 0x22], 1
je 0x300dfae2
cmp ebx, 0xd
je 0x300dfa6d
cmp ebx, 0x30
je 0x300dfa6d
cmp ebx, 0xd7
je 0x300dfa6d
cmp ebx, 0xd9
jle 0x300dfa7a
cmp ebx, 0xdc
jg 0x300dfa7a
mov eax, dword [0x301e46e4]
cmp dword [0x301e4914], eax
je 0x300dfae2
mov dword [0x301e36cc], 1
call fcn.301590aa
test eax, eax
je 0x300dfb96
mov eax, dword [0x301de694]
cmp eax, edi
je 0x300dfa9d
mov dword [eax + 4], ebx
call fcn.30033f79
test eax, eax
jle 0x300dfab8
push edi
call fcn.300f2ae6
cmp dword [0x301e36cc], edi
je 0x300dfb96
cmp dword [0x301e36cc], edi
je 0x300dfae2
test byte [ebp - 0x24], 0x40
je 0x300dfacb
call fcn.300df656
cmp dword [0x301e36cc], edi
je 0x300dfae2
mov eax, dword [ebp - 0x14]
push ebx
push edi
mov dword [0x301e3fa4], eax
call fcn.3002c693
call fcn.30046ff2
mov eax, dword [0x301e51b8]
push edi
push dword [0x301e4ae8]
mov dword [ebp - 0x1c], eax
mov dword [0x301e51b8], ebx
call fcn.3005644c
test eax, eax
mov esi, dword [ebp + 8]
pop ecx
pop ecx
jne 0x300dfb40
test byte [ebp - 0x22], 0x20
je 0x300dfb1e
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call dword [ebp - 0x28]
jmp 0x300dfb3d
mov eax, esi
sub eax, 0xd
je 0x300dfb3a
dec eax
dec eax
je 0x300dfb3a
sub eax, 0x21
je 0x300dfb3a
mov dword [ebp - 0x18], 1
call dword [ebp - 0x28]
jmp 0x300dfb40
call dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
cmp esi, 0x2f
jne 0x300dfb4b
mov dword [0x301df30c], edi
mov eax, dword [ebp - 0x1c]
and dword [0x301de688], 0xfffffffb
test byte [ebp - 0x22], 0x10
mov dword [0x301e51b8], eax
mov dword [0x301e36cc], edi
je 0x300dfb6e
push dword [ebp - 0x14]
call fcn.30056045
cmp dword [ebp - 0x30], edi
je 0x300dfb78
call fcn.3011910e
mov eax, dword [0x301e5140]
cmp eax, 0xffffffff
je 0x300dfb9e
or dword [0x301e5140], 0xffffffff
mov ebx, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp + 8], ebx
jmp 0x300df8d1
push dword [ebp - 0x14]
call fcn.30056045
and dword [0x301e36cc], 0
and dword [0x301de688], 0xfffffffb
cmp dword [ebp - 0x2c], 0
je 0x300dfbbd
cmp dword [ebp - 0x18], 1
je 0x300dfbbd
call fcn.3002cb44
mov eax, dword [ebp - 0x34]
mov dword [0x301e4ae8], eax
call fcn.3003fb4d
dec dword [0x301e43d0]
mov eax, dword [ebp - 0x18]
mov dword [0x301e479c], 1
mov ecx, dword [ebp - 4]
call fcn.30056b36
pop edi
pop esi
pop ebx
leave
ret 0x10