Function at 0x4876f0
Capabilities:
Parse credit card information

Disassembly:
push 0xffffffffffffffff
push 0x64e87f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xd8
push ebx
mov ebx, dword [esp + 0xf8]
cmp ebx, 0x30
push ebp
push esi
mov esi, dword [esp + 0xf4]
push edi
mov edi, dword [esp + 0x108]
mov ebp, ebx
jne 0x487732
cmp edi, 0xffffffff
je 0x487732
mov ebp, edi
cmp ecx, 0xff
je 0x487748
push ecx
mov edx, ecx
lea eax, [esp + 0x50]
call fcn.005643d0
jmp 0x487772
fldz
fcomp dword [esp + 0x10c]
fnstsw ax
test ah, 5
jp 0x487782
push 0xff
mov edx, 0x80
push 0x80
mov ecx, edx
lea eax, [esp + 0x54]
call fcn.005643f0
mov ecx, esi
call fcn.00586cc0
mov cl, 1
mov eax, esi
call fcn.00586d10
cmp ebx, 0x30
jne 0x48778b
xor ecx, ecx
jmp 0x4877fb
jmp 0x7c3300
fld1
mov dword [esp + 0x24], ecx
fcomp dword [esi + 0x10]
fnstsw ax
fld qword [0x679300]
test ah, 5
mov eax, esi
jp 0x487841
fld dword [esi + 0x14]
mov ecx, dword [0x6a7430]
fmul st(1)
sub esp, 8
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp + 4]
fmul dword [esi + 0x10]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp]
push 0
push 0
jmp 0x48785c
fstp st(0)
sub esp, 8
fld dword [esi + 0x14]
fstp dword [esp + 4]
fld dword [esi + 0x10]
fstp dword [esp]
push 0
push ecx
mov ecx, dword [0x6a73e0]
fld dword [esp + 0x110]
sub esp, 8
fstp dword [esp + 4]
fld dword [esp + 0x114]
fstp dword [esp]
call fcn.00512880
fld dword [0x6793c0]
add esp, 0x18
cmp ebp, 0x17
fst dword [esp + 0x14]
fld dword [0x679674]
mov byte [esp + 0x23], 1
fst dword [esp + 0x1c]
fld dword [0x6796f4]
fst dword [esp + 0x18]
jne 0x4878c9
fstp st(2)
fstp st(1)
fstp st(0)
fld dword [0x6795cc]
fstp dword [esp + 0x14]
fld dword [0x679388]
fstp dword [esp + 0x1c]
fld dword [0x679aac]
jmp 0x487d14
cmp ebp, 0x23
jne 0x4878ef
fstp st(2)
fstp st(1)
fstp st(0)
fld dword [0x679fa4]
fstp dword [esp + 0x14]
fldz
fstp dword [esp + 0x1c]
fld dword [0x679988]
jmp 0x487d14
cmp ebp, 0x2f
jne 0x487919
fstp st(2)
fstp st(1)
fstp st(0)
fld dword [0x679fa0]
fstp dword [esp + 0x14]
fld dword [0x679320]
fstp dword [esp + 0x1c]
fld dword [0x679aac]
jmp 0x487d14
cmp ebp, 0x1a
jne 0x487939
fstp st(2)
fstp st(1)
fstp st(0)
fld dword [0x679988]
fstp dword [esp + 0x1c]
fld dword [0x679944]
jmp 0x487d14
cmp ebp, 4
je 0x487cfc
cmp ebp, 0x1f
jne 0x487952
fstp st(2)
fstp st(1)
fstp st(0)
jmp 0x487d0e
cmp ebp, 0xa
je 0x487cfc
cmp ebp, 0x1e
je 0x487cfc
cmp ebp, 6
je 0x487cfc
cmp ebp, 0xf
je 0x487cfc
cmp ebp, 0x11
je 0x487cfc
cmp ebp, 0xc
je 0x487cfc
cmp ebp, 0x15
je 0x487cfc
cmp ebp, 0x2e
je 0x487cfc
cmp ebp, 0x19
je 0x487cfc
cmp ebp, 0x16
je 0x487cfc
cmp ebp, 0x13
je 0x487cfc
cmp ebp, 0x29
jne 0x4879df
fstp st(2)
fstp st(1)
fstp st(0)
fld dword [0x67963c]
fstp dword [esp + 0x14]
fld dword [0x679b0c]
fstp dword [esp + 0x1c]
fld dword [0x679748]
jmp 0x487d14
cmp ebp, 0x2a
je 0x4879ba
cmp ebp, 0x2b
jne 0x487a06
fstp st(2)
fstp st(0)
fld dword [0x67963c]
fstp dword [esp + 0x14]
fstp dword [esp + 0x1c]
fld dword [0x679944]
jmp 0x487d14
cmp ebp, 0x25
jne 0x487a22
fstp st(0)
fxch st(1)
fstp dword [esp + 0x14]
fstp dword [esp + 0x1c]
fld dword [0x679678]
jmp 0x487d14
cmp ebp, 0x22
jne 0x487a4c
fstp st(2)
fstp st(1)
fstp st(0)
fld dword [0x664a5c]
fstp dword [esp + 0x14]
fld dword [0x679944]
fstp dword [esp + 0x1c]
fld dword [0x679748]
jmp 0x487d14
cmp ebp, 0x20
jne 0x487a76
fstp st(2)
fstp st(1)
fstp st(0)
fld dword [0x664a5c]
fstp dword [esp + 0x14]
fld dword [0x67967c]
fstp dword [esp + 0x1c]
fld dword [0x679748]
jmp 0x487d14
cmp ebp, 0x27
je 0x487cda
cmp ebp, 0x2c
je 0x487cda
cmp ebp, 0xb
jne 0x487ab2
fstp st(2)
fstp st(1)
fstp st(0)
fld dword [0x664a5c]
fstp dword [esp + 0x14]
fld dword [0x679678]
fstp dword [esp + 0x1c]
fld dword [0x67967c]
jmp 0x487d14
cmp ebp, 0x1c
jne 0x487ad6
fstp st(2)
fstp st(1)
fstp st(0)
fld dword [0x67963c]
fstp dword [esp + 0x14]
fld dword [0x679388]
fst dword [esp + 0x1c]
jmp 0x487d14
cmp ebp, 0x1b
jne 0x487af8
fstp st(2)
fstp st(0)
fld dword [0x664a5c]
fstp dword [esp + 0x14]
fstp dword [esp + 0x1c]
fld dword [0x679f9c]
jmp 0x487d14
cmp ebp, 0x1d
jne 0x487b14
fstp st(1)
fxch st(1)
fstp dword [esp + 0x14]
fld dword [0x679320]
fstp dword [esp + 0x1c]
jmp 0x487d14
cmp ebp, 0x12
je 0x487a0b
cmp ebp, 0x28
fstp st(1)
jne 0x487b39
fxch st(1)
fstp dword [esp + 0x14]
fld dword [0x6793e0]
fstp dword [esp + 0x1c]
jmp 0x487d14
cmp ebp, 0x3c
fstp st(1)
fstp st(0)
je 0x487cbe
cmp ebp, 0x3d
je 0x487cbe
cmp ebp, 0x3f
je 0x487cbe
cmp ebp, 0x48
je 0x487cbe
cmp ebp, 0x3e
jne 0x487b85
fld dword [0x6797d0]
fstp dword [esp + 0x14]
fld dword [0x6799e8]
fstp dword [esp + 0x1c]
fld dword [0x679f98]
jmp 0x487d14
cmp ebp, 0x40
je 0x487ca2
cmp ebp, 0x41
je 0x487ca2
cmp ebp, 0x45
je 0x487ca2
cmp ebp, 0x47
je 0x487ca2
cmp ebp, 0x42
jne 0x487bc9
fld dword [0x6795cc]
fstp dword [esp + 0x14]
fld1
fstp dword [esp + 0x1c]
fld dword [0x679378]
jmp 0x487d14
cmp ebp, 0x43
jne 0x487bed
fld dword [0x679614]
fstp dword [esp + 0x14]
fld dword [0x679a10]
fstp dword [esp + 0x1c]
fld dword [0x679a04]
jmp 0x487d14
cmp ebp, 0x44
jne 0x487c11
fld dword [0x6797d0]
fstp dword [esp + 0x14]
fld dword [0x679a24]
fstp dword [esp + 0x1c]
fld dword [0x679f94]
jmp 0x487d14
cmp ebp, 0x4a
jne 0x487c35
fld dword [0x664a5c]
fstp dword [esp + 0x14]
fld dword [0x679f98]
fstp dword [esp + 0x1c]
fld dword [0x679f90]
jmp 0x487d14
cmp ebp, 0x46
jne 0x487c59
fld dword [0x679670]
fstp dword [esp + 0x14]
fld dword [0x679388]
fstp dword [esp + 0x1c]
fld dword [0x6798ac]
jmp 0x487d14
cmp ebp, 0x49
jne 0x487c7d
fld dword [0x679670]
fstp dword [esp + 0x14]
fld dword [0x679828]
fstp dword [esp + 0x1c]
fld dword [0x6798ac]
jmp 0x487d14
cmp ebp, 0x36
je 0x487c9b
cmp ebp, 0x37
je 0x487c9b
cmp ebp, 0x38
je 0x487c9b
cmp ebp, 0x39
je 0x487c9b
cmp ebp, 0x3a
je 0x487c9b
cmp ebp, 0x3b
jne 0x487d18
mov byte [esp + 0x23], 0
jmp 0x487d18
fld dword [0x6797d0]
fstp dword [esp + 0x14]
fld dword [0x679a24]
fstp dword [esp + 0x1c]
fld dword [0x679568]
jmp 0x487d14
fld dword [0x6797d0]
fstp dword [esp + 0x14]
fld dword [0x679a24]
fstp dword [esp + 0x1c]
fld dword [0x679a10]
jmp 0x487d14
fstp st(2)
fstp st(1)
fstp st(0)
fld dword [0x6797d0]
fstp dword [esp + 0x14]
fld dword [0x6795c4]
fstp dword [esp + 0x1c]
fld dword [0x679a9c]
jmp 0x487d14
fstp st(2)
fstp st(0)
fld dword [0x664a5c]
fstp dword [esp + 0x14]
fstp dword [esp + 0x1c]
fld dword [0x679388]
fstp dword [esp + 0x18]
mov eax, dword [0x6a9f38]
cmp dword [eax + 0x7f8], 0x27
jne 0x487d49
cmp ebp, 3
je 0x487d35
cmp ebp, 1
je 0x487d35
cmp ebp, 0x26
jne 0x487d49
fld dword [0x679798]
fstp dword [esp + 0x1c]
fld dword [0x679f3c]
fstp dword [esp + 0x18]
cmp ebp, 0x32
jne 0x487d70
fld dword [esp + 0x14]
fmul qword [0x6794a0]
fstp dword [esp + 0x14]
fld dword [0x679a0c]
fstp dword [esp + 0x1c]
fld dword [0x6798fc]
fstp dword [esp + 0x18]
cmp byte [esp + 0x23], 0
fld dword [esi + 0x10]
fmul dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x18]
fadd qword [0x65b8f8]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fmul dword [esi + 0x14]
fstp dword [esp + 0x18]
je 0x487dd8
fld dword [esp + 0x14]
sub esp, 0xc
fstp dword [esp + 8]
fld dword [esp + 0x24]
fstp dword [esp + 4]
fld dword [esp + 0x28]
fstp dword [esp]
push ebx
fld dword [esp + 0x110]
sub esp, 8
fstp dword [esp + 4]
mov ebx, edi
fld dword [esp + 0x114]
fstp dword [esp]
call fcn.00487380
add esp, 0x18
fldz
fld dword [esp + 0x10c]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x487f33
fmul qword [0x6795a8]
fstp dword [esp + 0x5c]
fld dword [esp + 0x5c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x487e0f
fadd qword [0x679300]
jmp 0x487e15
fsub qword [0x679300]
call fcn.006397d0
mov ebx, dword [esp + 0xf8]
push ebx
lea edi, [esp + 0x80]
lea esi, [eax + 2]
call fcn.005869b0
push 0xff
mov edx, 0x40
push 0x40
mov ecx, edx
lea eax, [esp + 0x54]
mov dword [esp + 0xf8], 0
call fcn.005643f0
mov ecx, edi
call fcn.00586cc0
mov cl, 1
mov eax, edi
call fcn.00586d10
fld dword [esp + 0x100]
push esi
push 0x32
call fcn.006397d0
fld dword [esp + 0x104]
push eax
call fcn.006397d0
push eax
mov esi, edi
call fcn.00587840
fld dword [ebx + 0x14]
mov ecx, dword [esp + 0x24]
sub esp, 8
fstp dword [esp + 4]
mov eax, edi
fld dword [ebx + 0x10]
fstp dword [esp]
push 0
fld dword [esp + 0x10c]
push ecx
mov ecx, dword [0x6a73e0]
sub esp, 8
fstp dword [esp + 4]
fld dword [esp + 0x114]
fstp dword [esp]
call fcn.00512880
add esp, 0x18
cmp byte [esp + 0x23], 0
je 0x487f16
fld dword [esp + 0x14]
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0x108]
sub esp, 0xc
fstp dword [esp + 8]
fld dword [esp + 0x24]
fstp dword [esp + 4]
fld dword [esp + 0x28]
fstp dword [esp]
push edx
fld dword [esp + 0x110]
sub esp, 8
fstp dword [esp + 4]
fld dword [esp + 0x114]
fstp dword [esp]
call fcn.00487380
add esp, 0x18
lea ecx, [esp + 0x7c]
mov dword [esp + 0xf0], 0xffffffff
call fcn.00586b10
mov edi, dword [esp + 0x108]
jmp 0x487f37
fstp st(0)
fstp st(0)
cmp byte [esp + 0x110], 0
je 0x4881f5
mov dword [esp + 0x78], 0xf
mov dword [esp + 0x74], 0
mov byte [esp + 0x64], 0
mov dword [esp + 0xf0], 1
mov esi, dword [0x6a9ec0]
mov eax, dword [esi + 0x768]
test eax, eax
mov ebx, 0x10
je 0x48800f
push eax
mov eax, ebp
call fcn.0041da90
test al, al
je 0x48800f
cmp byte [esp + 0x114], 0
mov eax, dword [esp + 0x104]
je 0x487fcd
mov edx, dword [esp + 0x108]
mov edi, dword [esi + 0x768]
call fcn.0041dae0
push eax
push 0x657b78
lea esi, [esp + 0x30]
call fcn.005b0ca0
add esp, 8
mov byte [esp + 0xf0], 2
jmp 0x487fee
mov edx, edi
call fcn.00467b00
push eax
push 0x66d7ec
lea esi, [esp + 0x30]
call fcn.005b0ca0
add esp, 8
mov byte [esp + 0xf0], 3
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x6c]
call fcn.00403e20
lea ecx, [esp + 0x28]
mov byte [esp + 0xf0], 1
call fcn.00404420
jmp 0x488060
mov eax, dword [esp + 0x104]
mov edx, edi
call fcn.00467b00
push eax
push 0x657b78
lea esi, [esp + 0x30]
call fcn.005b0ca0
add esp, 8
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x6c]
mov byte [esp + 0xfc], 4
call fcn.00403e20
mov byte [esp + 0xf0], 1
cmp dword [esp + 0x40], ebx
jb 0x488060
mov eax, dword [esp + 0x2c]
push eax
call fcn.0061c19a
add esp, 4
mov ecx, dword [0x6a7498]
mov edx, dword [ecx]
mov edx, dword [edx + 0x1c]
lea eax, [esp + 0x60]
push eax
call edx
mov ecx, dword [0x6a7498]
mov esi, eax
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
fld1
mov ecx, 0x20
fld st(0)
sub ecx, esi
mov esi, dword [esp + 0xf8]
fcomp dword [esi + 0x10]
add eax, 0x36
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], ecx
fnstsw ax
test ah, 0x44
jp 0x48815b
fcom dword [esi + 0x14]
fnstsw ax
test ah, 0x44
jp 0x48815b
mov edx, dword [0x7228ac]
fstp st(0)
mov eax, dword [0x7228b0]
mov ecx, dword [0x7228b4]
mov esi, dword [0x6a7498]
mov dword [esp + 0x4c], edx
mov edx, dword [0x7228b8]
mov dword [esp + 0x58], edx
lea edx, [esp + 0x60]
lea edi, [esp + 0x28]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
call fcn.00519520
fild dword [esp + 0x14]
mov edi, dword [esp + 0xf8]
lea eax, [edi + 0x20]
fadd dword [esp + 0x100]
push eax
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x30]
mov byte [esp + 0xf8], 5
mov ebp, dword [esi]
push edx
call fcn.006397d0
fild dword [esp + 0x30]
push eax
fadd dword [esp + 0x10c]
call fcn.006397d0
push eax
mov eax, dword [ebp + 0x28]
push edi
mov ecx, esi
call eax
cmp dword [esp + 0x40], ebx
jb 0x4881e2
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.0061c19a
add esp, 4
jmp 0x4881e2
fld dword [esi + 0x10]
fstp dword [esp + 0x28]
fldz
fst dword [esp + 0x34]
fst dword [esp + 0x40]
fst dword [esp + 0x2c]
fld dword [esi + 0x14]
fstp dword [esp + 0x38]
fstp dword [esp + 0x44]
fild dword [esp + 0x24]
fmul dword [esi + 0x10]
fadd dword [esp + 0xfc]
fstp dword [esp + 0x30]
fild dword [esp + 0x14]
fmul dword [esi + 0x14]
fadd dword [esp + 0x100]
fstp dword [esp + 0x3c]
fstp dword [esp + 0x48]
fld dword [esi + 0x10]
fcomp qword [0x679f88]
fnstsw ax
test ah, 0x41
jne 0x4881bc
xor cl, cl
mov eax, esi
call fcn.00586d40
mov eax, dword [0x6a7498]
push 0x7228ac
lea edx, [esp + 0x2c]
push edx
push eax
push esi
lea edx, [esp + 0x70]
call fcn.00511e50
add esp, 0x10
mov cl, 1
mov eax, esi
call fcn.00586d40
cmp dword [esp + 0x78], ebx
jb 0x4881f5
mov ecx, dword [esp + 0x64]
push ecx
call fcn.0061c19a
add esp, 4
mov eax, dword [esp + 0xf8]
xor cl, cl
call fcn.00586d10
mov ecx, dword [esp + 0xe8]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xe4
ret