Function at 0x10006270
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0xc38
push ebx
push ebp
mov ebp, dword [esp + 0xc44]
push esi
push edi
xor eax, eax
mov ecx, 0x100
lea edi, [esp + 0x48]
rep stosd dword es:[edi], eax
mov ecx, 0x100
lea edi, [esp + 0x848]
rep stosd dword es:[edi], eax
xor esi, esi
mov ecx, 0x100
lea edi, [esp + 0x448]
rep stosd dword es:[edi], eax
xor ebx, ebx
xor dl, dl
xor edi, edi
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x24], esi
cmp dword [esp + 0xc50], eax
jbe 0x100063c5
mov dword [esp + 0x28], 1
jmp 0x100062e0
mov al, byte [edi + ebp]
movzx ecx, al
inc dword [esp + ecx*4 + 0x48]
lea ecx, [esp + ecx*4 + 0x48]
mov byte [esp + 0x1b], 0
cmp al, 0x23
jb 0x10006365
cmp al, 0x7e
ja 0x10006365
cmp al, 0x27
je 0x10006365
cmp al, 0x28
je 0x10006365
cmp al, 0x29
je 0x10006365
cmp al, 0x2c
je 0x10006365
cmp al, 0x2e
je 0x10006365
cmp al, 0x2f
je 0x10006365
cmp al, 0x3a
je 0x10006365
cmp al, 0x3b
je 0x10006365
cmp al, 0x3d
je 0x10006365
cmp al, 0x3f
je 0x10006365
cmp al, 0x5c
je 0x10006365
cmp al, 0x60
je 0x10006365
cmp al, 0x7c
je 0x10006365
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esp + 0xc50]
jae 0x1000636e
cmp byte [edi + ebp + 1], 0
jne 0x1000636e
test ebx, ebx
jbe 0x10006352
test dl, dl
jne 0x10006354
mov byte [esp + 0x1b], 1
jmp 0x10006354
mov dl, 1
inc dword [esp + 0x28]
mov byte [esi + ebp], al
inc ebx
inc esi
inc edi
cmp byte [esp + 0x1b], 0
je 0x100063b3
cmp ebx, 2
ja 0x100063a1
sub esi, ebx
jmp 0x100063af
test dl, dl
je 0x1000639a
cmp ebx, 2
ja 0x10006387
mov dl, byte [edi + ebp]
sub esi, ebx
mov byte [esi + ebp], dl
mov ebx, 1
inc esi
jmp 0x100063b1
mov byte [esi + ebp], 9
mov dl, byte [edi + ebp]
inc esi
mov byte [esi + ebp], dl
mov ebx, 1
inc esi
jmp 0x100063b1
inc ebx
mov byte [esi + ebp], al
inc esi
jmp 0x100063b3
neg dl
sbb dl, dl
and dl, 0xe9
add dl, 0x20
mov byte [esi + ebp], dl
inc esi
xor ebx, ebx
xor dl, dl
inc dword [esp + 0x28]
inc edi
cmp edi, dword [esp + 0xc50]
jb 0x100062e0
mov byte [esp + 0x1b], 0
test esi, esi
jbe 0x100063e8
mov al, byte [esi + ebp - 1]
cmp al, 0x20
je 0x100063e8
cmp al, 9
je 0x100063e8
neg dl
sbb dl, dl
and dl, 0xe9
add dl, 0x20
mov byte [esi + ebp], dl
inc esi
mov ebx, dword [esp + 0x20]
xor edx, edx
mov edi, ebx
test esi, esi
jbe 0x10006449
mov eax, esi
sub eax, edx
mov cl, byte [eax + ebp - 1]
dec eax
cmp cl, 0x20
jne 0x1000640d
inc dword [esp + 0x24]
mov byte [esp + 0x1b], 0
jmp 0x1000643c
cmp cl, 9
jne 0x1000641d
inc dword [esp + 0x14]
mov byte [esp + 0x1b], 1
jmp 0x1000643c
cmp byte [esp + 0x1b], 0
movzx eax, byte [eax + ebp]
je 0x10006432
inc ebx
lea eax, [esp + eax*4 + 0x848]
jmp 0x1000643a
inc edi
lea eax, [esp + eax*4 + 0x448]
inc dword [eax]
inc edx
cmp edx, esi
jb 0x100063f4
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], ebx
fldz
fst qword [esp + 0x28]
fld st(0)
fst qword [esp + 0x30]
fxch st(1)
fst qword [esp + 0x40]
fst qword [esp + 0x38]
test edi, edi
jbe 0x1000648b
mov ebx, dword [esp + 0x1c]
fstp st(1)
lea edi, [esp + 0x448]
fstp st(0)
call fcn.100061a0
fstp qword [esp + 0x28]
fldz
mov ebx, dword [esp + 0x20]
fld qword [esp + 0x30]
mov edi, dword [esp + 0x1c]
fxch st(1)
test ebx, ebx
jbe 0x100064a9
mov ebx, dword [esp + 0x20]
fstp st(1)
lea edi, [esp + 0x848]
fstp st(0)
call fcn.100061a0
fldz
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
test ecx, ecx
jbe 0x100064dd
mov eax, edi
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
test eax, eax
jge 0x100064c5
fadd qword [0x101c8c38]
mov edx, ecx
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
test edx, edx
jge 0x100064d9
fadd qword [0x101c8c38]
fdivp st(1)
jmp 0x100064e1
fld qword [esp + 0x38]
mov eax, dword [esp + 0x14]
test eax, eax
jbe 0x10006515
mov edx, ebx
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
test edx, edx
jge 0x100064fd
fadd qword [0x101c8c38]
mov edx, eax
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
test edx, edx
jge 0x10006511
fadd qword [0x101c8c38]
fdivp st(1)
jmp 0x10006519
fld qword [esp + 0x40]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
test ecx, ecx
jge 0x1000652b
fadd qword [0x101c8c38]
mov edx, dword [esp + 0xc54]
mov dword [esp + 0x14], edi
fstp qword [edx + 0x8c0]
fild dword [esp + 0x14]
test edi, edi
jge 0x1000654a
fadd qword [0x101c8c38]
fstp qword [edx + 0x8c8]
mov dword [esp + 0x14], eax
fld qword [esp + 0x28]
fstp qword [edx + 0x8d0]
fxch st(1)
fstp qword [edx + 0x8d8]
fild dword [esp + 0x14]
test eax, eax
jge 0x10006574
fadd qword [0x101c8c38]
mov dword [esp + 0x14], ebx
fstp qword [edx + 0x8e0]
fild dword [esp + 0x14]
test ebx, ebx
jge 0x1000658c
fadd qword [0x101c8c38]
fstp qword [edx + 0x8e8]
xor eax, eax
fxch st(2)
fstp qword [edx + 0x8f0]
fxch st(1)
fstp qword [edx + 0x8f8]
fld st(0)
mov ecx, dword [esp + eax*4 + 0x48]
fild dword [esp + eax*4 + 0x48]
test ecx, ecx
jge 0x100065b8
fadd qword [0x101c8c38]
mov ecx, dword [esp + eax*4 + 0x4c]
faddp st(1)
fild dword [esp + eax*4 + 0x4c]
test ecx, ecx
jge 0x100065cc
fadd qword [0x101c8c38]
mov ecx, dword [esp + eax*4 + 0x50]
faddp st(1)
fild dword [esp + eax*4 + 0x50]
test ecx, ecx
jge 0x100065e0
fadd qword [0x101c8c38]
mov ecx, dword [esp + eax*4 + 0x54]
faddp st(1)
fild dword [esp + eax*4 + 0x54]
test ecx, ecx
jge 0x100065f4
fadd qword [0x101c8c38]
mov ecx, dword [esp + eax*4 + 0x58]
faddp st(1)
fild dword [esp + eax*4 + 0x58]
test ecx, ecx
jge 0x10006608
fadd qword [0x101c8c38]
mov ecx, dword [esp + eax*4 + 0x5c]
faddp st(1)
fild dword [esp + eax*4 + 0x5c]
test ecx, ecx
jge 0x1000661c
fadd qword [0x101c8c38]
mov ecx, dword [esp + eax*4 + 0x60]
faddp st(1)
fild dword [esp + eax*4 + 0x60]
test ecx, ecx
jge 0x10006630
fadd qword [0x101c8c38]
mov ecx, dword [esp + eax*4 + 0x64]
faddp st(1)
fild dword [esp + eax*4 + 0x64]
test ecx, ecx
jge 0x10006644
fadd qword [0x101c8c38]
add eax, 8
faddp st(1)
cmp eax, 0x100
jb 0x100065a6
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x10006731
xor eax, eax
lea ecx, [edx + 0x908]
mov esi, dword [esp + eax*4 + 0x48]
fild dword [esp + eax*4 + 0x48]
test esi, esi
jge 0x1000667b
fadd qword [0x101c8c38]
fdiv st(1)
mov esi, dword [esp + eax*4 + 0x4c]
fstp qword [ecx - 8]
fild dword [esp + eax*4 + 0x4c]
test esi, esi
jge 0x10006692
fadd qword [0x101c8c38]
fdiv st(1)
mov esi, dword [esp + eax*4 + 0x50]
fstp qword [ecx]
fild dword [esp + eax*4 + 0x50]
test esi, esi
jge 0x100066a8
fadd qword [0x101c8c38]
fdiv st(1)
mov esi, dword [esp + eax*4 + 0x54]
fstp qword [ecx + 8]
fild dword [esp + eax*4 + 0x54]
test esi, esi
jge 0x100066bf
fadd qword [0x101c8c38]
fdiv st(1)
mov esi, dword [esp + eax*4 + 0x58]
fstp qword [ecx + 0x10]
fild dword [esp + eax*4 + 0x58]
test esi, esi
jge 0x100066d6
fadd qword [0x101c8c38]
fdiv st(1)
mov esi, dword [esp + eax*4 + 0x5c]
fstp qword [ecx + 0x18]
fild dword [esp + eax*4 + 0x5c]
test esi, esi
jge 0x100066ed
fadd qword [0x101c8c38]
fdiv st(1)
mov esi, dword [esp + eax*4 + 0x60]
fstp qword [ecx + 0x20]
fild dword [esp + eax*4 + 0x60]
test esi, esi
jge 0x10006704
fadd qword [0x101c8c38]
fdiv st(1)
mov esi, dword [esp + eax*4 + 0x64]
fstp qword [ecx + 0x28]
fild dword [esp + eax*4 + 0x64]
test esi, esi
jge 0x1000671b
fadd qword [0x101c8c38]
fdiv st(1)
add eax, 8
add ecx, 0x40
fstp qword [ecx - 0x10]
cmp eax, 0x100
jb 0x10006669
fxch st(1)
fcom qword [edx + 0x8c8]
fnstsw ax
test ah, 5
jp 0x10006752
fld qword [edx + 0x8e8]
fdiv qword [edx + 0x8c8]
fstp qword [edx + 0x7e8]
fxch st(1)
mov eax, 0x23
fstp qword [edx + 0x838]
lea ecx, [edx + 0x1108]
lea esi, [eax - 0x23]
cmp esi, 0x5b
ja 0x100067e6
cmp eax, 0x27
je 0x100067e6
cmp eax, 0x28
je 0x100067e6
cmp eax, 0x29
je 0x100067e6
cmp eax, 0x2c
je 0x100067e6
cmp eax, 0x2e
je 0x100067e6
cmp eax, 0x2f
je 0x100067e6
cmp eax, 0x3a
je 0x100067e6
cmp eax, 0x3b
je 0x100067e6
cmp eax, 0x3d
je 0x100067e6
cmp eax, 0x3f
je 0x100067e6
cmp eax, 0x5c
je 0x100067e6
cmp eax, 0x60
je 0x100067e6
cmp eax, 0x7c
je 0x100067e6
mov esi, dword [esp + eax*4 + 0x448]
fild dword [esp + eax*4 + 0x448]
test esi, esi
jge 0x100067c6
fadd qword [0x101c8c38]
mov esi, dword [esp + eax*4 + 0x848]
fstp qword [ecx - 8]
fild dword [esp + eax*4 + 0x848]
test esi, esi
jge 0x100067e1
fadd qword [0x101c8c38]
fstp qword [ecx]
add ecx, 0x10
inc eax
cmp eax, 0x7e
jbe 0x10006765
fld st(0)
mov eax, 0x220
fadd qword [edx + eax*8]
add eax, 2
fadd qword [edx + eax*8 - 8]
cmp eax, 0x2be
jb 0x100067f7
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x10006835
mov eax, 0x220
fld qword [edx + eax*8]
add eax, 2
fdiv st(1)
fstp qword [edx + eax*8 - 0x10]
fld qword [edx + eax*8 - 8]
fdiv st(1)
fstp qword [edx + eax*8 - 8]
cmp eax, 0x2be
jb 0x10006818
pop edi
fstp st(0)
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xc38
ret